DataHub: Uma ferramenta versátil de pesquisa e descoberta de metadados.
Como operadora da maior rede profissional e gráfica econômica do mundo , a equipe de dados do LinkedIn está constantemente trabalhando para dimensionar sua infraestrutura para atender às demandas de nosso ecossistema de big data em constante crescimento. À medida que o volume e a variedade de dados aumentam, fica cada vez mais difícil para os cientistas e engenheiros de dados descobrir ativos de dados disponíveis, entender suas origens e tomar as medidas adequadas com base nos dados. Para nos ajudar a continuar a escalar o desempenho e inovar no banco de dados, criamos uma ferramenta abrangente de pesquisa e descoberta de metadados, DataHub.
Nota do editor: desde que esta postagem do blog foi publicada, a equipe abriu o DataHub com o código-fonte em fevereiro de 2020 . Saiba mais sobre como abrir o código da plataforma aqui .
Dimensionando metadados
Para melhorar a produtividade do grupo de dados do LinkedIn, desenvolvemos anteriormente o WhereHows, um repositório central de metadados e portal para conjuntos de dados. O tipo de metadados armazenados inclui metadados técnicos (por exemplo, localização, esquemas, seções, propriedade) e metadados de processo (por exemplo, origem, conclusão do trabalho). WhereHows também tem um mecanismo de busca que ajuda você a encontrar conjuntos de dados de interesse.
WhereHows 2016 , . , , , Dataportal AirBnb, Databook Uber, Metacat Netflix, Amundsen Lyft Data Catalog Google. LinkedIn . , WhereHows , . , WhereHows:
- Push , pull: . API . push .
- , : WhereHows , . API, . . , , , . , , , .
- , . , , , . — , Hadoop, . , . , , .
- . (, , ), , , , . .
- : , , ( ). , ( , , , , API , , , , , . .), .
DataHub
WhereHows , . LinkedIn , , . , , DataHub, : LinkedIn , .
WhereHows : . , . DataHub , 19 , , , , , , . , , , API .
- DataHub — , . Ember Framework Play. , -, ES9, ES.Next, TypeScript, Yarn with Yarn Workspaces, , Prettier ESLint. , , .
, - DataHub , , . Yarn Workspaces Ember Ember. , (, ) (, Ember npm / Yarn), - DataHub .
, . , , , , .
DataHub
: (1) , (2) (3) / . :
, , . , . , OR, NOT , .
DataHub , . , , . , « », .
— / — . « », . , , , , . , , , , , , , . . , , .
DataHub, , . :
- : .
- : API, .
- : , .
- : , .
, — «, ». , :
- — : , , , .
- : , . , , (ACL) , , , . , , .
, , Pegasus, , LinkedIn. Pegasus . , Pegasus , .
, Pegasus , , - (ERD).
— , — . , OwnedBy, HasMember HasAdmin. , , , , .
ERD, , . , « ». , , . : , . . , , . .
, , , , , firstName , firstName . , « » .
Pegasus, , Pegasus (PDSC). . -, PDSC User:
{
"type": "record",
"name": "User",
"fields": [
{
"name": "urn",
"type": "com.linkedin.common.UserUrn",
},
{
"name": "firstName",
"type": "string",
"optional": true
},
{
"name": "lastName",
"type": "string",
"optional": true
},
{
"name": "ldap",
"type": "com.linkedin.common.LDAP",
"optional": true
}
]
}
URN, GUID. User , , LDAP, .
PDSC OwnedBy:
{
"type": "record",
"name": "OwnedBy",
"fields": [
{
"name": "source",
"type": "com.linkedin.common.Urn",
},
{
"name": "destination",
"type": "com.linkedin.common.Urn",
},
{
"name": "type",
"type": "com.linkedin.common.OwnershipType",
}
],
"pairings": [
{
"source": "com.linkedin.common.urn.DatasetUrn",
"destination": "com.linkedin.common.urn.UserUrn"
}
]
}
, , «» « », URN. , , «». , «», URN. OwnedBy .
, . , type ldap. , PDSC. « — », .
{
"type": "record",
"name": "Ownership",
"fields": [
{
"name": "owners",
"type": {
"type": "array",
"items": {
"name": "owner",
"type": "record",
"fields": [
{
"name": "type",
"type": "com.linkedin.common.OwnershipType"
},
{
"name": "ldap",
"type": "string"
}
]
}
}
}
]
}
, , : , ERD. « » .
DataHub : API, Kafka. , , , .
API DataHub Rest.li, RESTful, LinkedIn. Rest.li Pegasus , , , . , API — API .
, Kafka (MCE), , URN . MCE Apache Avro, Pegasus.
LinkedIn Kafka - , . MCE , , , . , Apache Samza . Samza , . Avro Pegasus API Rest.li .
, , . DataHub :
- -
- ,
DataHub , . , Espresso — NoSQL LinkedIn, - CRUD. Galene . , , , . , , .
DataHub (DAO), DAO -, DAO DAO. DAO , - - DataHub. DataHub , LinkedIn.
DAO — (CDC). , DAO «-» (MAE). MAE URN , . -, MAE , . MCE, MAE .
— . , . - Samza, MAE. MAE. , .
, URN MAE .
DataHub, LinkedIn. .
DataHub LinkedIn . 1500 , , . LinkedIn , 23 , 25 , 500 , , LinkedIn, , .
Continuamos a melhorar o DataHub adicionando histórias de usuários mais interessantes e algoritmos de relevância ao produto. Também planejamos adicionar suporte a GraphQL integrado e usar Pegasus Domain Specific Language (PDL) para automatizar a geração de código em um futuro próximo. Nesse ínterim, estamos trabalhando ativamente para compartilhar esta evolução do WhereHows com a comunidade de código aberto e faremos um anúncio após o lançamento público do DataHub.