විවෘත මූලාශ්‍ර DataHub: LinkedIn's Metadata Search සහ Discovery Platform

විවෘත මූලාශ්‍ර DataHub: LinkedIn's Metadata Search සහ Discovery Platform

දත්ත මත පදනම් වූ තීරණ ගැනීම සඳහා විශාල දත්ත ප්‍රමාණයක් මත යැපෙන ඕනෑම සමාගමකට ඔබට අවශ්‍ය දත්ත ඉක්මනින් සොයා ගැනීම අත්‍යවශ්‍ය වේ. මෙය දත්ත භාවිතා කරන්නන්ගේ (විශ්ලේෂකයින්, යන්ත්‍ර ඉගෙනුම් සංවර්ධකයින්, දත්ත විද්‍යාඥයින් සහ දත්ත ඉංජිනේරුවන් ඇතුළුව) ඵලදායිතාවයට බලපානවා පමණක් නොව, ගුණාත්මක යන්ත්‍ර ඉගෙනුම් (ML) නල මාර්ගයක් මත රඳා පවතින අවසාන නිෂ්පාදන කෙරෙහි ද සෘජු බලපෑමක් ඇති කරයි. මීට අමතරව, යන්ත්‍ර ඉගෙනුම් වේදිකා ක්‍රියාවට නැංවීමේ හෝ ගොඩනැගීමේ ප්‍රවණතාවය ස්වභාවිකවම ප්‍රශ්නය මතු කරයි: විශේෂාංග, ආකෘති, ප්‍රමිතික, දත්ත කට්ටල ආදිය අභ්‍යන්තරව සොයා ගැනීම සඳහා ඔබේ ක්‍රමය කුමක්ද?

මෙම ලිපියෙන් අපි විවෘත බලපත්‍රයක් යටතේ දත්ත මූලාශ්‍රයක් ප්‍රකාශයට පත් කළ ආකාරය ගැන කතා කරමු DataHub අපගේ පාරදත්ත සෙවීම් සහ සොයාගැනීම් වේදිකාවේ, ව්‍යාපෘතියේ මුල් දිනවල සිට ආරම්භ වේ කොහෙද කොහොමද. LinkedIn විවෘත මූලාශ්‍ර අනුවාදයෙන් වෙනම DataHub හි තමන්ගේම අනුවාදයක් පවත්වාගෙන යයි. අපට වෙනම සංවර්ධන පරිසරයන් දෙකක් අවශ්‍ය වන්නේ මන්දැයි පැහැදිලි කිරීමෙන් අපි ආරම්භ කරන්නෙමු, ඉන්පසු විවෘත මූලාශ්‍රය WhereHows භාවිතා කිරීමට මුල් ප්‍රවේශයන් සාකච්ඡා කර අපගේ DataHub හි අභ්‍යන්තර (නිෂ්පාදන) අනුවාදය මත අනුවාදය සමඟ සංසන්දනය කරන්නෙමු. GitHub. අපි ගබඩා දෙකම සමමුහුර්තව තබා ගැනීමට විවෘත මූලාශ්‍ර යාවත්කාලීන තල්ලු කිරීම සහ ලබා ගැනීම සඳහා අපගේ නව ස්වයංක්‍රීය විසඳුම පිළිබඳ විස්තර ද බෙදා ගන්නෙමු. අවසාන වශයෙන්, අපි විවෘත මූලාශ්‍ර DataHub භාවිතයෙන් ආරම්භ කරන්නේ කෙසේද යන්න පිළිබඳ උපදෙස් සපයන අතර එහි ගෘහ නිර්මාණ ශිල්පය කෙටියෙන් සාකච්ඡා කරන්නෙමු.

විවෘත මූලාශ්‍ර DataHub: LinkedIn's Metadata Search සහ Discovery Platform

කොහෙද දැන් DataHub එකක්!

LinkedIn හි පාරදත්ත කණ්ඩායම කලින් ඉදිරිපත් කරන ලදී DataHub (WhereHows හි අනුප්‍රාප්තිකයා), LinkedIn හි සෙවුම් සහ පාර-දත්ත සොයාගැනීම් වේදිකාව සහ එය විවෘත කිරීමට සැලසුම් බෙදා ගත්හ. මෙම නිවේදනයෙන් ටික කලකට පසුව, අපි DataHub හි ඇල්ෆා අනුවාදයක් නිකුත් කර එය ප්‍රජාව සමඟ බෙදා ගත්තෙමු. එතැන් සිට, අපි අඛණ්ඩව ගබඩාවට දායක වී ඇති අතර වඩාත්ම ඉල්ලූ විශේෂාංග එකතු කිරීමට සහ ගැටළු විසඳීමට උනන්දුවක් දක්වන පරිශීලකයින් සමඟ කටයුතු කර ඇත. නිල නිකුතුව නිවේදනය කිරීමට අපි දැන් සතුටු වෙමු GitHub මත DataHub.

විවෘත මූලාශ්ර ප්රවේශයන්

WhereHows, දත්ත සෙවීම සඳහා LinkedIn හි මුල් ද්වාරය සහ එය පැමිණෙන්නේ කොහෙන්ද, අභ්‍යන්තර ව්‍යාපෘතියක් ලෙස ආරම්භ කරන ලදී; පාරදත්ත කණ්ඩායම එය විවෘත කළේය 2016 දී මූල කේතය. එතැන් සිට, කණ්ඩායම සෑම විටම විවිධ කේත පදනම් දෙකක් පවත්වා ගෙන ගොස් ඇත - එකක් විවෘත මූලාශ්‍ර සඳහා සහ එකක් LinkedIn හි අභ්‍යන්තර භාවිතය සඳහා - LinkedIn භාවිත අවස්ථා සඳහා සංවර්ධනය කරන ලද සියලුම නිෂ්පාදන විශේෂාංග සාමාන්‍යයෙන් පුළුල් ප්‍රේක්ෂකයන්ට අදාළ නොවේ. අතිරේකව, WhereHows හට විවෘත මූලාශ්‍ර නොවන සමහර අභ්‍යන්තර පරායත්තතා (යටිතල පහසුකම්, පුස්තකාල, ආදිය) ඇත. පසු ගිය වසරවලදී, WhereHows බොහෝ පුනරාවර්තන සහ සංවර්ධන චක්‍ර හරහා ගමන් කළ අතර, කේත පදනම් දෙක සමමුහුර්තව තබා ගැනීම විශාල අභියෝගයක් විය. අභ්‍යන්තර සහ විවෘත මූලාශ්‍ර සංවර්ධනය සමමුහුර්තව තබා ගැනීමට පාරදත්ත කණ්ඩායම වසර ගණනාවක් පුරා විවිධ ප්‍රවේශයන් උත්සාහ කර ඇත.

පළමු උත්සාහය: "මුලින්ම විවෘත මූලාශ්‍රය"

අපි මුලින් "විවෘත මූලාශ්‍ර ප්‍රථම" සංවර්ධන ආකෘතියක් අනුගමනය කළෙමු, එහිදී බොහෝ සංවර්ධනය විවෘත මූලාශ්‍ර ගබඩාවක සිදුවන අතර අභ්‍යන්තර යෙදවීම සඳහා වෙනස්කම් සිදු කෙරේ. මෙම ප්‍රවේශයේ ඇති ගැටළුව නම් කේතය අභ්‍යන්තරව සම්පුර්ණයෙන් සමාලෝචනය කිරීමට පෙර සෑම විටම GitHub වෙත තල්ලු කිරීමයි. විවෘත මූලාශ්‍ර ගබඩාවෙන් වෙනස්කම් සිදු කර නව අභ්‍යන්තර යෙදවීමක් සිදු කරන තුරු, අපට නිෂ්පාදන ගැටළු කිසිවක් සොයාගත නොහැක. දුර්වල යෙදවීමකදී, කණ්ඩායම් වශයෙන් වෙනස්කම් සිදු කරන ලද බැවින් වැරදිකරු තීරණය කිරීම ද ඉතා අපහසු විය.

මීට අමතරව, මෙම ආකෘතිය මඟින් වේගවත් පුනරාවර්තන අවශ්‍ය වන නව විශේෂාංග සංවර්ධනය කිරීමේදී කණ්ඩායමේ ඵලදායිතාව අඩු කරන ලදී, මන්ද එය සියලු වෙනස්කම් පළමුව විවෘත මූලාශ්‍ර ගබඩාවකට තල්ලු කර පසුව අභ්‍යන්තර ගබඩාවකට තල්ලු කිරීමට බල කළ බැවිනි. සැකසුම් කාලය අඩු කිරීම සඳහා, අවශ්‍ය නිවැරදි කිරීම හෝ වෙනස් කිරීම ප්‍රථමයෙන් අභ්‍යන්තර ගබඩාව තුළ සිදු කළ හැකි නමුත්, ගබඩා දෙක සමමුහුර්ත නොවීම නිසා එම වෙනස්කම් නැවත විවෘත කේත ගබඩාවට ඒකාබද්ධ කිරීමේදී මෙය විශාල ගැටලුවක් විය.

මෙම ආකෘතිය සම්පූර්ණ විශේෂාංග සහිත අභිරුචි වෙබ් යෙදුම් සඳහා වඩා හවුල් වේදිකා, පුස්තකාල හෝ යටිතල පහසුකම් ව්‍යාපෘති සඳහා ක්‍රියාත්මක කිරීම වඩාත් පහසු වේ. මීට අමතරව, මෙම ආකෘතිය පළමු දිනයේ සිට විවෘත මූලාශ්‍ර ආරම්භ කරන ව්‍යාපෘති සඳහා වඩාත් සුදුසු වේ, නමුත් WhereHows සම්පුර්ණයෙන්ම අභ්‍යන්තර වෙබ් යෙදුමක් ලෙස ගොඩනගා ඇත. සියලුම අභ්‍යන්තර පරායත්තතා සම්පූර්ණයෙන් ඉවත් කිරීම ඇත්තෙන්ම අපහසු විය, එබැවින් අපට අභ්‍යන්තර දෙබල තබා ගැනීමට අවශ්‍ය විය, නමුත් අභ්‍යන්තර දෙබල තබා ගැනීම සහ බොහෝ දුරට විවෘත මූලාශ්‍ර සංවර්ධනය කිරීම එතරම් සාර්ථක වූයේ නැත.

දෙවන උත්සාහය: "අභ්යන්තර පළමු"

**දෙවන ප්‍රයත්නයක් ලෙස, අපි "අභ්‍යන්තර පළමු" සංවර්ධන ආකෘතියකට ගියෙමු, එහිදී බොහෝ සංවර්ධනය ගෘහස්ථව සිදු වන අතර නිතිපතා විවෘත කේත කේතයට වෙනස්කම් සිදු කෙරේ. මෙම ආකෘතිය අපගේ භාවිතය සඳහා වඩාත් සුදුසු වුවද, එය ආවේනික ගැටළු ඇත. සියලුම වෙනස්කම් විවෘත මූලාශ්‍ර ගබඩාව වෙත කෙලින්ම තල්ලු කර පසුව ඒකාබද්ධ ගැටුම් විසඳීමට උත්සාහ කිරීම විකල්පයකි, නමුත් එය කාලය ගත වේ. බොහෝ අවස්ථාවලදී සංවර්ධකයින් ඔවුන්ගේ කේතය සමාලෝචනය කරන සෑම අවස්ථාවකම මෙය නොකිරීමට උත්සාහ කරයි. එහි ප්‍රතිඵලයක් වශයෙන්, මෙය ඉතා අඩු වාර ගණනක්, කණ්ඩායම් වශයෙන් සිදු කෙරෙනු ඇති අතර, එමගින් ඒකාබද්ධ ගැටුම් පසුව විසඳීමට අපහසු වේ.

තුන්වෙනි වතාවට වැඩ කළා!

ඉහත සඳහන් කළ අසාර්ථක උත්සාහයන් දෙකේ ප්‍රතිඵලයක් ලෙස, WhereHows GitHub ගබඩාව දිගු කාලයක් කල් ඉකුත්ව පැවතීමට හේතු විය. කණ්ඩායම නිෂ්පාදනයේ විශේෂාංග සහ ගෘහ නිර්මාණ ශිල්පය වැඩිදියුණු කිරීම දිගටම කරගෙන ගිය අතර, LinkedIn සඳහා WhereHows හි අභ්‍යන්තර අනුවාදය විවෘත මූලාශ්‍ර අනුවාදයට වඩා දියුණු විය. එයට නව නමක් පවා තිබුණි - DataHub. පෙර අසාර්ථක උත්සාහයන් මත පදනම්ව, කණ්ඩායම පරිමාණය කළ හැකි, දිගුකාලීන විසඳුමක් සංවර්ධනය කිරීමට තීරණය කළේය.

ඕනෑම නව විවෘත මූලාශ්‍ර ව්‍යාපෘතියක් සඳහා, LinkedIn හි විවෘත මූලාශ්‍ර කණ්ඩායම ව්‍යාපෘතියේ මොඩියුල සම්පූර්ණයෙන්ම විවෘත මූලාශ්‍රයෙන් සංවර්ධනය කරන ලද සංවර්ධන ආකෘතියකට උපදෙස් සහ සහාය දක්වයි. අනුවාදිත කෞතුක වස්තු පොදු ගබඩාවකට යොදවා පසුව අභ්‍යන්තර LinkedIn කෞතුක වස්තුව වෙත නැවත පරීක්ෂා කරනු ලැබේ බාහිර පුස්තකාල ඉල්ලීම (ELR). මෙම සංවර්ධන ආකෘතිය අනුගමනය කිරීම විවෘත මූලාශ්‍ර භාවිතා කරන අයට හොඳ පමණක් නොව, වඩාත් මොඩියුලර්, විස්තීරණ සහ ප්ලග් කළ හැකි ගෘහ නිර්මාණ ශිල්පයක් ද ඇති කරයි.

කෙසේ වෙතත්, DataHub වැනි පරිණත පසුගාමී යෙදුමකට මෙම තත්ත්වයට පැමිණීමට සැලකිය යුතු කාලයක් අවශ්‍ය වේ. සියලුම අභ්‍යන්තර පරායත්තතා සම්පූර්ණයෙන් වියුක්ත වීමට පෙර විවෘත මූලාශ්‍ර සම්පූර්ණයෙන් ක්‍රියාත්මක කිරීමේ හැකියාව මෙයින් වළක්වයි. ඒ නිසා අපි විවෘත මූලාශ්‍ර දායකත්වයන් වේගවත් සහ ඉතා අඩු වේදනාවකින් සිදු කිරීමට උපකාර වන මෙවලම් සකස් කර ඇත. මෙම විසඳුම පාරදත්ත කණ්ඩායම (DataHub සංවර්ධක) සහ විවෘත මූලාශ්‍ර ප්‍රජාව යන දෙකටම ප්‍රතිලාභ ලබයි. පහත කොටස් මෙම නව ප්‍රවේශය සාකච්ඡා කරනු ඇත.

විවෘත මූලාශ්‍ර ප්‍රකාශන ස්වයංක්‍රීයකරණය

විවෘත මූලාශ්‍ර DataHub වෙත Metadata කණ්ඩායමේ නවතම ප්‍රවේශය වන්නේ අභ්‍යන්තර කේත පදනම සහ විවෘත මූලාශ්‍ර ගබඩාව ස්වයංක්‍රීයව සමමුහුර්ත කරන මෙවලමක් සංවර්ධනය කිරීමයි. මෙම මෙවලම් කට්ටලයේ ඉහළ මට්ටමේ විශේෂාංග ඇතුළත් වේ:

  1. LinkedIn කේතය විවෘත මූලාශ්‍ර වෙත/එමෙන්ම සමමුහුර්ත කරන්න rsync.
  2. බලපත්‍ර ශීර්ෂ උත්පාදනය, සමාන වේ Apache Rat.
  3. අභ්‍යන්තර කැපවීම් ලොග වලින් විවෘත මූලාශ්‍ර කැපවීම් ලොග ස්වයංක්‍රීයව ජනනය කරන්න.
  4. විවෘත මූලාශ්‍ර ගොඩනැගීම් බිඳ දමන අභ්‍යන්තර වෙනස්කම් වළක්වන්න යැපුම් පරීක්ෂාව.

පහත සඳහන් උපවගන්ති සිත් ඇදගන්නාසුළු ගැටළු ඇති ඉහත සඳහන් කළ කාර්යයන් ගැන සොයා බලනු ඇත.

මූලාශ්ර කේත සමමුහුර්තකරණය

තනි GitHub ගබඩාවක් වන DataHub හි විවෘත මූලාශ්‍ර අනුවාදය මෙන් නොව, DataHub හි LinkedIn අනුවාදය බහු ගබඩාවල (අභ්‍යන්තරව හැඳින්වෙන) එකතුවකි. බහු නිෂ්පාදන) DataHub අතුරුමුහුණත, පාර-දත්ත ආකෘති පුස්තකාලය, පාර-දත්ත ගබඩා පසුබිම් සේවාව සහ ප්‍රවාහ රැකියා LinkedIn හි වෙනම ගබඩාවල පවතී. කෙසේ වෙතත්, විවෘත මූලාශ්‍ර භාවිතා කරන්නන්ට පහසු කිරීම සඳහා, DataHub හි විවෘත මූලාශ්‍ර අනුවාදය සඳහා අපට තනි ගබඩාවක් ඇත.

විවෘත මූලාශ්‍ර DataHub: LinkedIn's Metadata Search සහ Discovery Platform

රූපය 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,
}

ගොනු මට්ටමේ සිතියම්කරණය මෙවලම් මගින් ස්වයංක්‍රීයව නිර්මාණය වේ; කෙසේ වෙතත්, එය පරිශීලකයාට අතින් යාවත්කාලීන කළ හැක. මෙය විවෘත මූලාශ්‍ර ගබඩාවේ ඇති ගොනුවකට LinkedIn මූලාශ්‍ර ගොනුවක් 1:1 සිතියම්ගත කිරීමකි. ගොනු සංගම් ස්වයංක්‍රීයව නිර්මාණය කිරීම හා සම්බන්ධ නීති කිහිපයක් තිබේ:

  • විවෘත මූලාශ්‍රයේ ඉලක්ක මොඩියුලයක් සඳහා බහු මූලාශ්‍ර මොඩියුල සම්බන්ධයෙන්, ගැටුම් ඇති විය හැක, උදා. 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 හි අභ්‍යන්තර පරායත්ත එන්නත් රාමුව) වැනි තවමත් විවෘත මූලාශ්‍ර නොමැති කේතයන් මත යැපීම් ඇති බැවින් විෂමතාවයේ එක් මූලාශ්‍රයක් පැන නගී. ගතික වින්‍යාසය කළමනා කිරීම සඳහා වඩාත් කැමති ක්‍රමය වන බැවින් දරුවන් අභ්‍යන්තර කේත පදනමේ බහුලව භාවිතා වේ. නමුත් එය විවෘත මූලාශ්‍ර නොවේ; එබැවින් අපට විවෘත මූලාශ්‍ර DataHub සඳහා විවෘත මූලාශ්‍ර විකල්ප සොයා ගැනීමට අවශ්‍ය විය.

වෙනත් හේතු ද ඇත. අපි LinkedIn හි අවශ්‍යතා සඳහා පාර-දත්ත ආකෘතියට දිගු නිර්මාණය කරන විට, මෙම දිගු සාමාන්‍යයෙන් LinkedIn සඳහා ඉතා විශේෂිත වන අතර අනෙකුත් පරිසරයන්ට සෘජුවම අදාළ නොවේ. උදාහරණයක් ලෙස, අපට සහභාගිවන්නන්ගේ හැඳුනුම්පත් සහ වෙනත් වර්ග ගැළපෙන පාර-දත්ත සඳහා ඉතා නිශ්චිත ලේබල ඇත. එබැවින්, අපි දැන් මෙම දිගු DataHub හි විවෘත මූලාශ්‍ර පාරදත්ත ආකෘතියෙන් බැහැර කර ඇත. අපි ප්‍රජාව සමඟ සම්බන්ධ වී ඔවුන්ගේ අවශ්‍යතා අවබෝධ කර ගන්නා විට, අවශ්‍ය තැන්වලදී අපි මෙම දිගුවල පොදු විවෘත මූලාශ්‍ර අනුවාදවල වැඩ කරන්නෙමු.

භාවිතයේ පහසුව සහ විවෘත මූලාශ්‍ර ප්‍රජාව සඳහා පහසුවෙන් අනුවර්තනය වීම DataHub හි අනුවාද දෙක අතර යම් යම් වෙනස්කම් ඇති කිරීමට ද හේතු විය. ප්‍රවාහ සැකසුම් යටිතල පහසුකම්වල වෙනස්කම් මෙයට හොඳ උදාහරණයකි. අපගේ අභ්‍යන්තර අනුවාදය කළමනාකරණය කළ ප්‍රවාහ සැකසුම් රාමුවක් භාවිත කළද, අපි විවෘත මූලාශ්‍ර අනුවාදය සඳහා ගොඩනඟන ලද (ස්වාධීන) ප්‍රවාහ සැකසුම් භාවිතා කිරීමට තෝරා ගත්තේ එය වෙනත් යටිතල පහසුකම් මත යැපීම වැළකෙන බැවිනි.

වෙනස සඳහා තවත් උදාහරණයක් වන්නේ බහු GMS වලට වඩා විවෘත මූලාශ්‍ර ක්‍රියාත්මක කිරීමක තනි GMS (සාමාන්‍යකරණය වූ පාරදත්ත ගබඩාවක්) තිබීමයි. GMA (Generalized Metadata Architecture) යනු DataHub සඳහා පසුපස-අන්ත ගෘහ නිර්මාණ ශිල්පයේ නම වන අතර GMS යනු GMA හි සන්දර්භය තුළ පාර-දත්ත ගබඩාවයි. GMA යනු ඉතා නම්‍යශීලී ගෘහ නිර්මාණ ශිල්පයක් වන අතර එමඟින් එක් එක් දත්ත නිර්මාණය (උදා. දත්ත කට්ටල, පරිශීලකයන්, ආදිය) එහිම පාර-දත්ත ගබඩාවකට බෙදා හැරීමට හෝ දත්ත ව්‍යුහය සිතියම්ගත කිරීම අඩංගු රෙජිස්ට්‍රි එකක බහු දත්ත ගොඩනැගීම් ගබඩා කිරීමට ඔබට ඉඩ සලසයි. GMS යාවත්කාලීන කර ඇත. භාවිතයේ පහසුව සඳහා, අපි විවෘත මූලාශ්‍ර DataHub හි සියලුම විවිධ දත්ත ගොඩනැගීම් ගබඩා කරන තනි GMS අවස්ථාවක් තෝරා ගත්තෙමු.

ක්‍රියාත්මක කිරීම් දෙක අතර ඇති වෙනස්කම් පිළිබඳ සම්පූර්ණ ලැයිස්තුවක් පහත වගුවේ දක්වා ඇත.

නිෂ්පාදන විශේෂාංග
LinkedIn DataHub
විවෘත මූලාශ්‍ර DataHub

සහාය දක්වන දත්ත නිර්මාණය
1) දත්ත කට්ටල 2) පරිශීලකයන් 3) ප්‍රමිතික 4) ML විශේෂාංග 5) ප්‍රස්ථාර 6) උපකරණ පුවරු
1) දත්ත කට්ටල 2) පරිශීලකයන්

දත්ත කට්ටල සඳහා සහය දක්වන පාරදත්ත මූලාශ්‍ර
1) ඇම්බ්රි 2) කූච්බේස් 3) දාලිඩ් 4) එස්ප්රෙසෝ 5) HDFS 6) Hive 7) Kafka 8) MongoDB 9) MySQL 10) Oracle 11) පිනොට් 12) ප්‍රෙස්ටෝ 12) වෙන්න 13) Teradata 13) දෛශික 14) වෙනීසිය
Hive Kafka RDBMS

පබ්-උප
LinkedIn Kafka
සංගම කෆ්කා

ප්‍රවාහ සැකසීම
කළමනාකරණය
කාවැද්දූ (තනි)

යැපුම් එන්නත් සහ ගතික වින්‍යාසය
LinkedIn Offspring
වසන්තය

මෙවලම් ගොඩනැගීම
Ligradle (LinkedIn හි අභ්‍යන්තර Gradle wrapper)
ග්රේඩ්ල්ව්

සීඅයි / සීඩී
CRT (LinkedIn හි අභ්‍යන්තර CI/CD)
ට්‍රැවිස්සීඅයි සහ ඩෝකර් හබ්

පාරදත්ත ගබඩා
බෙදා හරින ලද බහු GMS: 1) දත්ත කට්ටලය GMS 2) පරිශීලක GMS 3) මෙට්‍රික් GMS 4) විශේෂාංගය GMS 5) ප්‍රස්ථාරය/උපකරණ පුවරුව GMS
සඳහා තනි GMS: 1) දත්ත කට්ටල 2) පරිශීලකයන්

ඩොකර් බහාලුම්වල ක්ෂුද්‍ර සේවා

Docker සමඟ යෙදුම් යෙදවීම සහ බෙදා හැරීම සරල කරයි බහාලුම්කරණය. DataHub හි සේවාවේ සෑම කොටසක්ම Kafka වැනි යටිතල පහසුකම් සංරචක ඇතුළුව විවෘත මූලාශ්‍ර වේ. Elasticsearch, neo4j и MySQL, එහිම ඩොකර් රූපයක් ඇත. අපි භාවිතා කළ Docker බහාලුම් සංවිධානය කිරීමට ඩොක්රා සෑදීම.

විවෘත මූලාශ්‍ර DataHub: LinkedIn's Metadata Search සහ Discovery Platform

රූපය 2: ගෘහ නිර්මාණ ශිල්පය DataHub *විවෘත මූලාශ්‍ර**

ඔබට ඉහත රූපයේ DataHub හි ඉහළ මට්ටමේ ගෘහ නිර්මාණ ශිල්පය දැකිය හැක. යටිතල පහසුකම් සංරචක වලට අමතරව, එහි විවිධ ඩොකර් බහාලුම් හතරක් ඇත:

datahub-gms: පාරදත්ත ගබඩා සේවාව

datahub-frontend: යෙදුම play, DataHub අතුරුමුහුණත සේවය කිරීම.

datahub-mce-consumer: යෙදුම කෆ්කා ධාරා, පාර-දත්ත වෙනස් කිරීමේ සිදුවීම (MCE) ප්‍රවාහය භාවිතා කරන අතර පාර-දත්ත ගබඩාව යාවත්කාලීන කරයි.

datahub-mae-consumer: යෙදුම කෆ්කා ධාරා, පාර-දත්ත විගණන සිදුවීම් ප්‍රවාහයක් (MAE) භාවිතා කරන අතර සෙවුම් දර්ශකයක් සහ ප්‍රස්තාර දත්ත සමුදායක් නිර්මාණය කරයි.

විවෘත මූලාශ්‍ර ගබඩා ලේඛන සහ මුල් DataHub බ්ලොග් සටහන විවිධ සේවාවන්හි කාර්යයන් පිළිබඳ වඩාත් සවිස්තරාත්මක තොරතුරු අඩංගු වේ.

DataHub හි CI/CD විවෘත මූලාශ්‍ර වේ

විවෘත මූලාශ්‍ර DataHub ගබඩාව භාවිතා කරයි ට්‍රැවිස්සීඅයි අඛණ්ඩ ඒකාබද්ධ කිරීම සඳහා සහ ඩෝකර් හබ් අඛණ්ඩ යෙදවීම සඳහා. දෙකම හොඳ GitHub ඒකාබද්ධතාවයක් ඇති අතර සැකසීමට පහසුය. බොහෝ විවෘත මූලාශ්‍ර යටිතල පහසුකම් සඳහා ප්‍රජාව හෝ පෞද්ගලික සමාගම් (උදා. සංග්‍රහය), ප්‍රජාවගේ භාවිතයේ පහසුව සඳහා Docker පින්තූර නිර්මාණය කර Docker Hub වෙත යොදවනු ලැබේ. Docker Hub හි ඇති ඕනෑම Docker රූපයක් සරල විධානයකින් පහසුවෙන් භාවිතා කළ හැක docker අදින්න.

DataHub විවෘත මූලාශ්‍ර ගබඩාව සඳහා වන සෑම කැපවීමකින්ම, සියලුම Docker පින්තූර ස්වයංක්‍රීයව ගොඩනගා "නවතම" ටැගය සමඟ Docker Hub වෙත යොදවනු ලැබේ. Docker Hub සමහරක් සමඟ වින්‍යාස කර ඇත්නම් නිත්‍ය ප්‍රකාශන ශාඛා නම් කිරීම, විවෘත මූලාශ්‍ර ගබඩාවේ ඇති සියලුම ටැග් ද ඩොකර් හබ් හි අනුරූප ටැග් නම් සමඟ මුදා හරිනු ලැබේ.

DataHub භාවිතා කිරීම

DataHub පිහිටුවීම ඉතා සරල වන අතර සරල පියවර තුනකින් සමන්විත වේ:

  1. විවෘත මූලාශ්‍ර ගබඩාව ක්ලෝන කර ඉක්මන් ආරම්භයක් සඳහා සපයා ඇති ඩොකර්-කොම්පොස් ස්ක්‍රිප්ට් භාවිතයෙන් සියලුම ඩොකර් බහාලුම් ඩොකර්-රචනය සමඟ ධාවනය කරන්න.
  2. සපයා ඇති විධාන රේඛා මෙවලම භාවිතයෙන් ගබඩාවේ සපයා ඇති නියැදි දත්ත බාගන්න.
  3. ඔබගේ බ්‍රවුසරයේ DataHub බ්‍රවුස් කරන්න.

සක්‍රියව නිරීක්ෂණය කර ඇත ගිටර් කතාබස් ඉක්මන් ප්‍රශ්න සඳහා ද වින්‍යාස කර ඇත. පරිශීලකයින්ට සෘජුවම GitHub ගබඩාවේ ගැටළු නිර්මාණය කළ හැකිය. වැදගත්ම දෙය නම්, අපි සියලු ප්‍රතිපෝෂණ සහ යෝජනා සාදරයෙන් පිළිගනිමු!

අනාගතය සඳහා සැලසුම්

දැනට, විවෘත මූලාශ්‍ර DataHub සඳහා වන සෑම යටිතල ව්‍යුහයක්ම හෝ ක්ෂුද්‍ර සේවාවක්ම ඩොකර් කන්ටේනරයක් ලෙස ගොඩනගා ඇති අතර, සමස්ත පද්ධතියම සංවිධානය කර ඇත්තේ docker-compose. ජනප්රියත්වය සහ පුලුල්ව පැතිරීම සැලකිල්ලට ගනී කුබර්නෙට්ස්, අපි නුදුරු අනාගතයේ දී Kubernetes පදනම් වූ විසඳුමක් ලබා දීමට ද කැමැත්තෙමු.

වැනි පොදු ක්ලවුඩ් සේවාවක් මත DataHub යෙදවීම සඳහා හැරවුම් යතුරක් ලබා දීමට ද අපි සැලසුම් කරමු Azure, AWS හෝ Google වලාකුළු. LinkedIn හි Azure වෙත සංක්‍රමණය වීම පිළිබඳ මෑත නිවේදනය සැලකිල්ලට ගෙන, මෙය පාරදත්ත කණ්ඩායමේ අභ්‍යන්තර ප්‍රමුඛතා සමඟ සමපාත වේ.

අවසාන වශයෙන් නොව අවම වශයෙන්, DataHub alphas ශ්‍රේණිගත කර ඇති සහ ගැටළු හඳුනා ගැනීමට සහ ලේඛන වැඩිදියුණු කිරීමට අපට උදවු කළ විවෘත මූලාශ්‍ර ප්‍රජාව තුළ DataHub භාවිතා කරන සියලුම දෙනාට ස්තූතියි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න