DataHub de código aberto: plataforma de pesquisa e descoberta de metadados do LinkedIn
Encontrar os dados certos rapidamente é essencial para qualquer empresa que depende de grandes quantidades de dados para tomar decisões com base nesses dados. Isso não afeta apenas a produtividade dos usuários de dados (incluindo analistas, desenvolvedores de aprendizado de máquina, cientistas e engenheiros de dados), mas também tem um impacto direto nos produtos finais que dependem de um pipeline de aprendizado de máquina (ML) de qualidade. Além disso, a tendência de introduzir ou construir plataformas de aprendizado de máquina naturalmente levanta a questão: qual é o seu método de descobrir internamente recursos, modelos, métricas, conjuntos de dados etc.
Neste artigo, compartilharemos como publicamos a fonte de dados DataHub em nossa plataforma de pesquisa e descoberta de metadados sob a licença aberta , começando com os primeiros dias do projeto WhereHows . O LinkedIn mantém sua própria versão do DataHub separadamente da versão de código aberto. Começaremos explicando por que precisamos de dois ambientes de desenvolvimento separados, depois dos quais discutiremos as primeiras abordagens para usar o código aberto WhereHows e comparar nossa versão interna (produção) do DataHub com a versão no GitHub.... Também compartilharemos detalhes sobre nossa nova solução automatizada de upload e download de código aberto para manter os dois repositórios sincronizados. Por fim, forneceremos instruções sobre como começar a usar o DataHub de código aberto e discutiremos brevemente sua arquitetura.

WhereHows agora é DataHub!
LinkedIn DataHub ( WhereHows), LinkedIn, . - DataHub . , . DataHub GitHub.
WhereHows, LinkedIn , ; 2016 . — , LinkedIn, , LinkedIn, . , WhereHows (, . .), . WhereHows , . , .
: « »
« », , . , GitHub, . , . , .
, , , , . , , , , .
, , -. , , , WhereHows -. , , .
: « »
** « », , . , . , — , . . , , , , .
!
, WhereHows GitHub . , WhereHows LinkedIn , . — DataHub. .
LinkedIn , . , LinkedIn (ELR). , , , .
, DataHub, . , . , . ( DataHub), . .
DataHub , . :
- LinkedIn / , rsync.
- , Apache Rat.
- .
- , , .
, .
DataHub , GitHub, DataHub LinkedIn ( multiproducts). DataHub, , LinkedIn. DataHub .

1: LinkedIn DataHub DataHub
, , . , , .
{
"datahub-dao": [
"${datahub-frontend}/datahub-dao"
],
"gms/impl": [
"${dataset-gms}/impl",
"${user-gms}/impl"
],
"metadata-dao": [
"${metadata-models}/metadata-dao"
],
"metadata-builders": [
"${metadata-models}/metadata-builders"
]
}
— JSON, , — LinkedIn. . Bash. , , .
{
"${metadata-models}/metadata-builders/src/main/java/com/linkedin/Foo.java":
"metadata-builders/src/main/java/com/linkedin/Foo.java",
"${metadata-models}/metadata-builders/src/main/java/com/linkedin/Bar.java":
"metadata-builders/src/main/java/com/linkedin/Bar.java",
"${metadata-models}/metadata-builders/build.gradle": null,
}
; . 1: 1 LinkedIn . , :
- , , FQCN, . « ».
- «null» , .
- . .
metadata-models 29.0.0 -> 30.0.0
Added aspect model foo
Fixed issue bar
dataset-gms 2.3.0 -> 2.3.4
Added rest.li API to serve foo aspect
MP_VERSION=dataset-gms:2.3.4
MP_VERSION=metadata-models:30.0.0
LinkedIn , , . DataHub , - , , DataHub , .. , (, , ) , DataHub , . , , -, .
, , , . , , DataHub .
DataHub
DataHub, , . DataHub LinkedIn, .
, , LinkedIn's Offspring ( LinkedIn). Offspring , . ; DataHub .
. LinkedIn, LinkedIn . , . , DataHub . , , , .
DataHub. — . , () , .
— GMS ( ) , GMS. GMA ( ) — DataHub, GMS — GMA. GMA — , (, , . .) , , GMS . GMS, DataHub .
.
| Product Features | LinkedIn DataHub | Open Source DataHub |
|---|---|---|
| Supported Data Constructs | 1) Datasets 2) Users 3) Metrics 4) ML Features 5) Charts 6) Dashboards | 1) Datasets 2) Users |
| Supported Metadata Sources for Datasets | 1) Ambry 2) Couchbase 3) Dalids 4) Espresso 5) HDFS 6) Hive 7) Kafka 8) MongoDB 9) MySQL 10) Oracle 11) Pinot 12) Presto 12) Seas 13) Teradata 13) Vector 14) Venice | Hive Kafka RDBMS |
| Pub-sub | LinkedIn Kafka | Confluent Kafka |
| Stream Processing | Managed | Embedded (standalone) |
| Dependency Injection & Dynamic Configuration | LinkedIn Offspring | Spring |
| Build Tooling | Ligradle (LinkedIn’s internal Gradle wrapper) | Gradlew |
| CI/CD | CRT (LinkedIn’s internal CI/ CD) | TravisCI and Docker Hub |
| Metadata Stores | Distributed multiple GMS: 1) Dataset GMS 2) User GMS 3) Metric GMS 4) Feature GMS 5) Chart/Dashboard GMS | Single GMS for: 1) Datasets 2) Users |
Docker
Docker . DataHub , , Kafka, Elasticsearch, Neo4j MySQL, Docker. Docker Docker Compose.

2: DataHub * **
DataHub . , Docker:
datahub-gms:
datahub-frontend: Play, DataHub.
datahub-mce-consumer: Kafka Streams, (MCE) .
datahub-mae-consumer: Kafka Streams, (MAE) .
DataHub .
CI / CD DataHub
DataHub TravisCI Docker Hub . GitHub . , (, Confluent), Docker, Docker Hub . Docker, Docker Hub, docker pull.
DataHub Docker Docker Hub «latest». Docker Hub , Docker Hub.
DataHub
DataHub :
- Docker docker-compose docker-compose .
- , , , .
- DataHub .
Gitter . GitHub. , !
DataHub Docker, docker-compose. Kubernetes, Kubernetes .
Também planejamos fornecer uma solução pronta para implantar o DataHub em um serviço de nuvem pública, como Azure , AWS ou Google Cloud . Dado o recente anúncio da migração do LinkedIn para o Azure, isso se alinhará com as prioridades internas do grupo de metadados.
Por último, mas não menos importante, obrigado a todos os primeiros usuários do DataHub na comunidade de código aberto que apreciaram as versões alfa do DataHub e nos ajudaram a identificar problemas e melhorar a documentação.