DataHub: uma ferramenta versátil de pesquisa e descoberta de metadados

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:



  1. Push , pull: . API . push .
  2. , : WhereHows , . API, . . , , , . , , , .
  3. , . , , , . — , Hadoop, . , . , , .
  4. . (, , ), , , , . .
  5. : , , ( ). , ( , , , , 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, , . :



  1. : .
  2. : API, .
  3. : , .
  4. : , .




, — «, ». , :



  1. — : , , , .
  2. : , . , , (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.



API Kafka . , , , . .



LinkedIn Kafka - , . MCE , , , . , Apache Samza . Samza , . Avro Pegasus API Rest.li .







, , . DataHub :



  1. -
  2. ,


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.




All Articles