DataHub: una herramienta versátil de búsqueda y descubrimiento de metadatos

DataHub: una herramienta versátil de búsqueda y descubrimiento de metadatos.



Como operador de la red profesional y gráficos económicos más grandes del mundo , el equipo de datos de LinkedIn trabaja constantemente para escalar su infraestructura para satisfacer las demandas de nuestro ecosistema de big data en constante crecimiento. A medida que crece el volumen y la variedad de datos, se vuelve cada vez más difícil para los científicos e ingenieros de datos descubrir los activos de datos disponibles, comprender sus orígenes y tomar las medidas adecuadas en función de los datos. Para ayudarnos a continuar escalando el rendimiento e innovando la base de datos, creamos una herramienta versátil de búsqueda y descubrimiento de metadatos, DataHub.



Nota del editor: Desde que se publicó esta publicación de blog, el equipo abrió DataHub con el código fuente en febrero de 2020 . Obtenga más información sobre cómo abrir la plataforma aquí .



Escalar metadatos



Para mejorar la productividad del grupo de datos de LinkedIn, previamente desarrollamos y de código abierto WhereHows, un repositorio central de metadatos y un portal para conjuntos de datos. El tipo de metadatos almacenados incluye tanto metadatos técnicos (por ejemplo, ubicación, esquemas, secciones, propiedad) como metadatos de proceso (por ejemplo, origen, finalización del trabajo). WhereHows también tiene un motor de búsqueda que le ayuda a encontrar conjuntos de datos de interés.



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 mejorando DataHub agregando más historias de usuarios interesantes y algoritmos de relevancia al producto. También planeamos agregar soporte GraphQL incorporado y usar el lenguaje específico de dominio (PDL) de Pegasus para automatizar la generación de código en un futuro cercano. Mientras tanto, estamos trabajando activamente para compartir esta evolución de WhereHows con la comunidad de código abierto, y haremos un anuncio después del lanzamiento público de DataHub.




All Articles