DataHub: أداة بحث واكتشاف بيانات وصفية متعددة الاستخدامات

DataHub: أداة بحث واكتشاف بيانات وصفية متعددة الاستخدامات.



بصفته المشغل لأكبر شبكة احترافية ورسومات اقتصادية في العالم ، يعمل فريق البيانات في LinkedIn باستمرار لتوسيع نطاق بنيته التحتية لتلبية متطلبات النظام البيئي للبيانات الضخمة المتزايد باستمرار. مع نمو حجم البيانات وتنوعها ، يصبح من الصعب على علماء ومهندسي البيانات اكتشاف أصول البيانات المتاحة وفهم أصولها واتخاذ الإجراءات المناسبة بناءً على البيانات. لمساعدتنا على مواصلة توسيع نطاق الأداء وابتكار قاعدة البيانات ، أنشأنا أداة بحث واكتشاف بيانات وصفية شاملة ، DataHub.



ملاحظة المحرر: منذ نشر منشور المدونة هذا ، فتح الفريق DataHub برمز المصدر في فبراير 2020 . تعرف على المزيد حول كيفية فتح مصدر النظام الأساسي هنا .



قياس البيانات الوصفية



لتحسين إنتاجية LinkedIn Data Group ، قمنا سابقًا بتطوير وفتح WhereHows ، وهو مستودع مركزي للبيانات الوصفية وبوابة لمجموعات البيانات. يتضمن نوع البيانات الوصفية المخزنة كلاً من البيانات الوصفية التقنية (مثل الموقع والمخططات والأقسام والملكية) والبيانات الوصفية للعملية (مثل الأصل وإكمال المهمة). يحتوي WhereHows أيضًا على محرك بحث يساعدك في العثور على مجموعات البيانات التي تهمك.



منذ إصدارنا الأول لـ WhereHows في عام 2016 ، كان هناك اهتمام متزايد في الصناعة لتحسين إنتاجية علماء البيانات باستخدام البيانات الوصفية. على سبيل المثال ، الأدوات التي تم تطويرها في هذا المجال تشمل Dataportal AirBnb و Databook Uber و Metacat Netflix و Amundsen Lyft ومؤخرًا كتالوج بيانات 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, , .



نواصل تحسين DataHub من خلال إضافة المزيد من قصص المستخدمين المثيرة للاهتمام وخوارزميات الصلة بالمنتج. نخطط أيضًا لإضافة دعم GraphQL الأصلي واستخدام لغة Pegasus Domain Specific Language (PDL) لأتمتة إنشاء الكود في المستقبل القريب. في غضون ذلك ، نحن نعمل بنشاط لمشاركة تطور WhereHows هذا مع مجتمع المصادر المفتوحة ، وسنصدر إعلانًا بعد الإصدار العام لـ DataHub.




All Articles