ఓపెన్ సోర్స్ డేటాహబ్: లింక్డ్ఇన్ యొక్క మెటాడేటా శోధన మరియు డిస్కవరీ ప్లాట్‌ఫారమ్

ఓపెన్ సోర్స్ డేటాహబ్: లింక్డ్ఇన్ యొక్క మెటాడేటా శోధన మరియు డిస్కవరీ ప్లాట్‌ఫారమ్

డేటా ఆధారిత నిర్ణయాలు తీసుకోవడానికి పెద్ద మొత్తంలో డేటాపై ఆధారపడే ఏ కంపెనీకైనా మీకు అవసరమైన డేటాను త్వరగా కనుగొనడం చాలా అవసరం. ఇది డేటా వినియోగదారుల (విశ్లేషకులు, మెషిన్ లెర్నింగ్ డెవలపర్‌లు, డేటా సైంటిస్టులు మరియు డేటా ఇంజనీర్‌లతో సహా) ఉత్పాదకతను ప్రభావితం చేయడమే కాకుండా, నాణ్యమైన మెషీన్ లెర్నింగ్ (ML) పైప్‌లైన్‌పై ఆధారపడే తుది ఉత్పత్తులపై కూడా ఇది ప్రత్యక్ష ప్రభావాన్ని చూపుతుంది. అదనంగా, మెషీన్ లెర్నింగ్ ప్లాట్‌ఫారమ్‌లను అమలు చేయడం లేదా నిర్మించడం అనే ధోరణి సహజంగానే ప్రశ్నను లేవనెత్తుతుంది: లక్షణాలు, మోడల్‌లు, కొలమానాలు, డేటాసెట్‌లు మొదలైన వాటిని అంతర్గతంగా కనుగొనడానికి మీ పద్ధతి ఏమిటి.

ఈ కథనంలో మేము ఓపెన్ లైసెన్స్ క్రింద డేటా సోర్స్‌ను ఎలా ప్రచురించాము అనే దాని గురించి మాట్లాడుతాము డేటాహబ్ ప్రాజెక్ట్ ప్రారంభ రోజుల నుండి మా మెటాడేటా శోధన మరియు ఆవిష్కరణ ప్లాట్‌ఫారమ్‌లో ఎక్కడ ఎలా. లింక్డ్‌ఇన్ దాని స్వంత డేటాహబ్ వెర్షన్‌ను ఓపెన్ సోర్స్ వెర్షన్ నుండి విడిగా నిర్వహిస్తుంది. మనకు రెండు వేర్వేరు డెవలప్‌మెంట్ ఎన్విరాన్‌మెంట్‌లు ఎందుకు అవసరమో వివరించడం ద్వారా మేము ప్రారంభిస్తాము, ఆపై ఓపెన్ సోర్స్ వేర్‌హౌస్‌ని ఉపయోగించడం కోసం ముందస్తు విధానాలను చర్చించి, డేటాహబ్ యొక్క మా అంతర్గత (ఉత్పత్తి) వెర్షన్‌ను ఆన్ వెర్షన్‌తో సరిపోల్చండి గ్యాలరీలు. మేము రెండు రిపోజిటరీలను సమకాలీకరించడానికి ఓపెన్ సోర్స్ అప్‌డేట్‌లను పుష్ చేయడం మరియు స్వీకరించడం కోసం మా కొత్త ఆటోమేటెడ్ సొల్యూషన్ గురించిన వివరాలను కూడా షేర్ చేస్తాము. చివరగా, మేము ఓపెన్ సోర్స్ డేటాహబ్‌ని ఉపయోగించడం ఎలా ప్రారంభించాలో సూచనలను అందిస్తాము మరియు దాని నిర్మాణాన్ని క్లుప్తంగా చర్చిస్తాము.

ఓపెన్ సోర్స్ డేటాహబ్: లింక్డ్ఇన్ యొక్క మెటాడేటా శోధన మరియు డిస్కవరీ ప్లాట్‌ఫారమ్

వేర్‌హౌస్ ఇప్పుడు డేటాహబ్!

లింక్డ్ఇన్ యొక్క మెటాడేటా బృందం గతంలో అందించబడింది డేటాహబ్ (WhereHows యొక్క వారసుడు), లింక్డ్ఇన్ యొక్క శోధన మరియు మెటాడేటా ఆవిష్కరణ ప్లాట్‌ఫారమ్ మరియు దానిని తెరవడానికి ప్రణాళికలను పంచుకుంది. ఈ ప్రకటన తర్వాత కొద్దిసేపటికే, మేము DataHub యొక్క ఆల్ఫా వెర్షన్‌ను విడుదల చేసాము మరియు దానిని సంఘంతో భాగస్వామ్యం చేసాము. అప్పటి నుండి, మేము నిరంతరం రిపోజిటరీకి సహకారం అందించాము మరియు ఎక్కువగా అభ్యర్థించిన ఫీచర్‌లను జోడించడానికి మరియు సమస్యలను పరిష్కరించడానికి ఆసక్తిగల వినియోగదారులతో కలిసి పని చేస్తున్నాము. మేము ఇప్పుడు అధికారిక విడుదలను ప్రకటించడానికి సంతోషిస్తున్నాము GitHubలో డేటాహబ్.

ఓపెన్ సోర్స్ అప్రోచ్‌లు

వేర్‌హౌస్, డేటాను కనుగొనడానికి లింక్డ్‌ఇన్ యొక్క అసలైన పోర్టల్ మరియు అది ఎక్కడ నుండి వస్తుంది, అంతర్గత ప్రాజెక్ట్‌గా ప్రారంభించబడింది; మెటాడేటా బృందం దానిని తెరిచింది 2016లో సోర్స్ కోడ్. అప్పటి నుండి, బృందం ఎల్లప్పుడూ రెండు విభిన్న కోడ్‌బేస్‌లను నిర్వహిస్తోంది-ఒకటి ఓపెన్ సోర్స్ కోసం మరియు ఒకటి లింక్డ్‌ఇన్ అంతర్గత ఉపయోగం కోసం- లింక్డ్‌ఇన్ వినియోగ కేసుల కోసం అభివృద్ధి చేయబడిన అన్ని ఉత్పత్తి లక్షణాలు సాధారణంగా విస్తృత ప్రేక్షకులకు వర్తించవు. అదనంగా, WhereHows ఓపెన్ సోర్స్ కాని కొన్ని అంతర్గత డిపెండెన్సీలను (మౌలిక సదుపాయాలు, లైబ్రరీలు మొదలైనవి) కలిగి ఉంది. తరువాతి సంవత్సరాల్లో, వేర్‌హౌస్ అనేక పునరావృత్తులు మరియు అభివృద్ధి చక్రాల ద్వారా వెళ్ళింది, రెండు కోడ్‌బేస్‌లను సమకాలీకరణలో ఉంచడం పెద్ద సవాలుగా మారింది. అంతర్గత మరియు ఓపెన్ సోర్స్ డెవలప్‌మెంట్‌ను సింక్‌లో ఉంచడానికి మెటాడేటా బృందం సంవత్సరాలుగా విభిన్న విధానాలను ప్రయత్నించింది.

మొదటి ప్రయత్నం: "మొదట ఓపెన్ సోర్స్"

మేము ప్రారంభంలో "ఓపెన్ సోర్స్ ఫస్ట్" డెవలప్‌మెంట్ మోడల్‌ను అనుసరించాము, ఇక్కడ చాలా అభివృద్ధి ఓపెన్ సోర్స్ రిపోజిటరీలో జరుగుతుంది మరియు అంతర్గత విస్తరణ కోసం మార్పులు చేయబడతాయి. ఈ విధానంలో సమస్య ఏమిటంటే, కోడ్ ఎల్లప్పుడూ అంతర్గతంగా పూర్తిగా సమీక్షించబడే ముందు GitHubకి నెట్టబడుతుంది. ఓపెన్ సోర్స్ రిపోజిటరీ నుండి మార్పులు చేయబడి, కొత్త అంతర్గత విస్తరణ జరిగే వరకు, మేము ఉత్పత్తి సమస్యలను కనుగొనలేము. పేలవమైన విస్తరణ విషయంలో, బ్యాచ్‌లలో మార్పులు చేసినందున అపరాధిని గుర్తించడం కూడా చాలా కష్టం.

అదనంగా, వేగవంతమైన పునరావృత్తులు అవసరమయ్యే కొత్త ఫీచర్‌లను అభివృద్ధి చేస్తున్నప్పుడు ఈ మోడల్ బృందం యొక్క ఉత్పాదకతను తగ్గించింది, ఎందుకంటే ఇది అన్ని మార్పులను ముందుగా ఓపెన్ సోర్స్ రిపోజిటరీలోకి నెట్టి ఆపై అంతర్గత రిపోజిటరీకి నెట్టబడుతుంది. ప్రాసెసింగ్ సమయాన్ని తగ్గించడానికి, అవసరమైన పరిష్కారాన్ని లేదా మార్పును ముందుగా అంతర్గత రిపోజిటరీలో చేయవచ్చు, అయితే రెండు రిపోజిటరీలు సమకాలీకరించబడనందున ఆ మార్పులను తిరిగి ఓపెన్ సోర్స్ రిపోజిటరీలో విలీనం చేయడానికి వచ్చినప్పుడు ఇది చాలా పెద్ద సమస్యగా మారింది.

పూర్తి ఫీచర్ చేసిన అనుకూల వెబ్ అప్లికేషన్‌ల కంటే షేర్డ్ ప్లాట్‌ఫారమ్‌లు, లైబ్రరీలు లేదా ఇన్‌ఫ్రాస్ట్రక్చర్ ప్రాజెక్ట్‌ల కోసం ఈ మోడల్ అమలు చేయడం చాలా సులభం. అదనంగా, ఈ మోడల్ మొదటి రోజు నుండి ఓపెన్ సోర్స్‌ను ప్రారంభించే ప్రాజెక్ట్‌లకు అనువైనది, అయితే వేర్‌హౌస్ పూర్తిగా అంతర్గత వెబ్ అప్లికేషన్‌గా నిర్మించబడింది. అన్ని అంతర్గత డిపెండెన్సీలను పూర్తిగా విడదీయడం చాలా కష్టం, కాబట్టి మేము అంతర్గత ఫోర్క్‌ను ఉంచుకోవాల్సిన అవసరం ఉంది, అయితే అంతర్గత ఫోర్క్‌ను ఉంచడం మరియు ఎక్కువగా ఓపెన్ సోర్స్‌ను అభివృద్ధి చేయడం చాలా పని చేయలేదు.

రెండవ ప్రయత్నం: "ఇన్నర్ ఫస్ట్"

**రెండవ ప్రయత్నంగా, మేము "అంతర్గత మొదటి" డెవలప్‌మెంట్ మోడల్‌కి మార్చాము, ఇక్కడ చాలా అభివృద్ధి ఇంట్లోనే జరుగుతుంది మరియు ఓపెన్ సోర్స్ కోడ్‌లో క్రమం తప్పకుండా మార్పులు చేయబడతాయి. ఈ మోడల్ మా వినియోగ సందర్భానికి బాగా సరిపోయేది అయినప్పటికీ, దీనికి స్వాభావిక సమస్యలు ఉన్నాయి. అన్ని తేడాలను నేరుగా ఓపెన్ సోర్స్ రిపోజిటరీకి నెట్టడం మరియు తర్వాత విలీన వైరుధ్యాలను పరిష్కరించడానికి ప్రయత్నించడం ఒక ఎంపిక, కానీ ఇది సమయం తీసుకుంటుంది. డెవలపర్లు చాలా సందర్భాలలో తమ కోడ్‌ని సమీక్షించిన ప్రతిసారీ దీన్ని చేయకూడదని ప్రయత్నిస్తారు. ఫలితంగా, ఇది చాలా తక్కువ తరచుగా, బ్యాచ్‌లలో చేయబడుతుంది మరియు తద్వారా విలీన వైరుధ్యాలను తర్వాత పరిష్కరించడం మరింత కష్టతరం చేస్తుంది.

మూడోసారి పని చేసింది!

పైన పేర్కొన్న రెండు విఫల ప్రయత్నాల ఫలితంగా WhereHows GitHub రిపోజిటరీ చాలా కాలం పాటు గడువు ముగిసింది. బృందం ఉత్పత్తి యొక్క లక్షణాలు మరియు నిర్మాణాన్ని మెరుగుపరచడం కొనసాగించింది, తద్వారా లింక్డ్‌ఇన్ కోసం వేర్‌హౌస్ యొక్క అంతర్గత వెర్షన్ ఓపెన్ సోర్స్ వెర్షన్ కంటే మరింత అధునాతనంగా మారింది. దీనికి కొత్త పేరు కూడా ఉంది - DataHub. మునుపటి విఫల ప్రయత్నాల ఆధారంగా, బృందం స్కేలబుల్, దీర్ఘకాలిక పరిష్కారాన్ని అభివృద్ధి చేయాలని నిర్ణయించుకుంది.

ఏదైనా కొత్త ఓపెన్ సోర్స్ ప్రాజెక్ట్ కోసం, లింక్డ్‌ఇన్ యొక్క ఓపెన్ సోర్స్ బృందం ప్రాజెక్ట్ యొక్క మాడ్యూల్స్ పూర్తిగా ఓపెన్ సోర్స్‌లో అభివృద్ధి చేయబడిన డెవలప్‌మెంట్ మోడల్‌కు సలహా ఇస్తుంది మరియు మద్దతు ఇస్తుంది. సంస్కరణ చేయబడిన కళాఖండాలు పబ్లిక్ రిపోజిటరీకి అమర్చబడి, ఆపై ఉపయోగించి అంతర్గత లింక్డ్ఇన్ కళాఖండంలోకి తిరిగి తనిఖీ చేయబడతాయి బాహ్య లైబ్రరీ అభ్యర్థన (ELR). ఈ డెవలప్‌మెంట్ మోడల్‌ని అనుసరించడం ఓపెన్ సోర్స్‌ని ఉపయోగించే వారికి మాత్రమే మంచిది కాదు, కానీ మరింత మాడ్యులర్, ఎక్స్‌టెన్సిబుల్ మరియు ప్లగ్ చేయదగిన ఆర్కిటెక్చర్‌ను కూడా కలిగిస్తుంది.

అయితే, DataHub వంటి మెచ్యూర్ బ్యాక్-ఎండ్ అప్లికేషన్‌కు ఈ స్థితికి చేరుకోవడానికి గణనీయమైన సమయం అవసరం. ఇది అన్ని అంతర్గత డిపెండెన్సీలు పూర్తిగా సంగ్రహించబడటానికి ముందు ఓపెన్ సోర్సింగ్ పూర్తిగా పని చేసే అవకాశాన్ని కూడా నిరోధిస్తుంది. అందుకే మేము ఓపెన్ సోర్స్ కంట్రిబ్యూషన్‌లను వేగంగా మరియు చాలా తక్కువ నొప్పితో చేయడంలో మాకు సహాయపడే సాధనాలను అభివృద్ధి చేసాము. ఈ పరిష్కారం మెటాడేటా బృందం (డేటాహబ్ డెవలపర్) మరియు ఓపెన్ సోర్స్ కమ్యూనిటీ రెండింటికీ ప్రయోజనం చేకూరుస్తుంది. కింది విభాగాలు ఈ కొత్త విధానాన్ని చర్చిస్తాయి.

ఓపెన్ సోర్స్ పబ్లిషింగ్ ఆటోమేషన్

ఓపెన్ సోర్స్ డేటాహబ్‌కి మెటాడేటా బృందం యొక్క తాజా విధానం అంతర్గత కోడ్‌బేస్ మరియు ఓపెన్ సోర్స్ రిపోజిటరీని స్వయంచాలకంగా సమకాలీకరించే సాధనాన్ని అభివృద్ధి చేయడం. ఈ టూల్‌కిట్ యొక్క ఉన్నత స్థాయి లక్షణాలు:

  1. లింక్డ్‌ఇన్ కోడ్‌ను ఓపెన్ సోర్స్‌కు/నుండి సమకాలీకరించండి rsync.
  2. లైసెన్స్ హెడర్ జనరేషన్, ఇలాంటివి అపాచీ ఎలుక.
  3. అంతర్గత కమిట్ లాగ్‌ల నుండి ఓపెన్ సోర్స్ కమిట్ లాగ్‌లను స్వయంచాలకంగా రూపొందించండి.
  4. ఓపెన్ సోర్స్ బిల్డ్‌లను విచ్ఛిన్నం చేసే అంతర్గత మార్పులను నిరోధించండి డిపెండెన్సీ పరీక్ష.

కింది ఉపవిభాగాలు ఆసక్తికరమైన సమస్యలను కలిగి ఉన్న పైన పేర్కొన్న ఫంక్షన్‌లను పరిశీలిస్తాయి.

సోర్స్ కోడ్ సింక్రొనైజేషన్

ఒకే GitHub రిపోజిటరీ అయిన DataHub యొక్క ఓపెన్ సోర్స్ వెర్షన్ కాకుండా, DataHub యొక్క లింక్డ్‌ఇన్ వెర్షన్ బహుళ రిపోజిటరీల కలయిక (అంతర్గతంగా పిలుస్తారు బహుళ ఉత్పత్తులు) డేటాహబ్ ఇంటర్‌ఫేస్, మెటాడేటా మోడల్ లైబ్రరీ, మెటాడేటా వేర్‌హౌస్ బ్యాకెండ్ సర్వీస్ మరియు స్ట్రీమింగ్ జాబ్‌లు లింక్డ్‌ఇన్‌లోని ప్రత్యేక రిపోజిటరీలలో ఉంటాయి. అయినప్పటికీ, ఓపెన్ సోర్స్ వినియోగదారులకు సులభతరం చేయడానికి, మేము డేటాహబ్ యొక్క ఓపెన్ సోర్స్ వెర్షన్ కోసం ఒకే రిపోజిటరీని కలిగి ఉన్నాము.

ఓపెన్ సోర్స్ డేటాహబ్: లింక్డ్ఇన్ యొక్క మెటాడేటా శోధన మరియు డిస్కవరీ ప్లాట్‌ఫారమ్

మూర్తి 1: రిపోజిటరీల మధ్య సమకాలీకరణ లింక్డ్ఇన్ డేటాహబ్ మరియు ఒకే రిపోజిటరీ డేటాహబ్ ఓపెన్ సోర్స్

ఆటోమేటెడ్ బిల్డ్, పుష్ మరియు పుల్ వర్క్‌ఫ్లోలకు మద్దతు ఇవ్వడానికి, మా కొత్త సాధనం స్వయంచాలకంగా ప్రతి సోర్స్ ఫైల్‌కు సంబంధించిన ఫైల్-స్థాయి మ్యాపింగ్‌ను సృష్టిస్తుంది. అయినప్పటికీ, టూల్‌కిట్‌కు ప్రారంభ కాన్ఫిగరేషన్ అవసరం మరియు వినియోగదారులు దిగువ చూపిన విధంగా అధిక-స్థాయి మాడ్యూల్ మ్యాపింగ్‌ను అందించాలి.

{
  "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, దీని కీలు ఓపెన్ సోర్స్ రిపోజిటరీలో టార్గెట్ మాడ్యూల్‌లు మరియు విలువలు లింక్డ్ఇన్ రిపోజిటరీలలోని సోర్స్ మాడ్యూల్‌ల జాబితా. ఓపెన్ సోర్స్ రిపోజిటరీలోని ఏదైనా టార్గెట్ మాడ్యూల్‌ని ఎన్ని సోర్స్ మాడ్యూల్‌ల ద్వారా అయినా అందించవచ్చు. సోర్స్ మాడ్యూల్స్‌లో రిపోజిటరీల అంతర్గత పేర్లను సూచించడానికి, ఉపయోగించండి స్ట్రింగ్ ఇంటర్పోలేషన్ బాష్ శైలిలో. మాడ్యూల్-స్థాయి మ్యాపింగ్ ఫైల్‌ను ఉపయోగించి, అనుబంధ డైరెక్టరీలలోని అన్ని ఫైల్‌లను స్కాన్ చేయడం ద్వారా సాధనాలు ఫైల్-స్థాయి మ్యాపింగ్ ఫైల్‌ను సృష్టిస్తాయి.

{
  "${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 మ్యాపింగ్. ఫైల్ అసోసియేషన్ల యొక్క ఈ స్వయంచాలక సృష్టికి సంబంధించి అనేక నియమాలు ఉన్నాయి:

  • ఓపెన్ సోర్స్‌లో టార్గెట్ మాడ్యూల్ కోసం బహుళ సోర్స్ మాడ్యూల్‌ల విషయంలో, వైరుధ్యాలు తలెత్తవచ్చు, ఉదా. 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

డిపెండెన్సీ పరీక్ష

లింక్డ్ఇన్ ఉంది డిపెండెన్సీ టెస్టింగ్ ఇన్‌ఫ్రాస్ట్రక్చర్, ఇది అంతర్గత బహుళ ఉత్పత్తికి మార్పులు డిపెండెంట్ మల్టీప్రొడక్ట్‌ల అసెంబ్లీని విచ్ఛిన్నం చేయకుండా ఉండేలా సహాయపడుతుంది. ఓపెన్ సోర్స్ డేటాహబ్ రిపోజిటరీ బహుళ-ఉత్పత్తి కాదు మరియు ఇది ఏ బహుళ-ఉత్పత్తికి ప్రత్యక్షంగా ఆధారపడదు, కానీ ఓపెన్ సోర్స్ డేటాహబ్ సోర్స్ కోడ్‌ను పొందే బహుళ-ఉత్పత్తి రేపర్ సహాయంతో, మేము ఇప్పటికీ ఈ డిపెండెన్సీ టెస్టింగ్‌ని ఉపయోగించవచ్చు సిస్టమ్ కాబట్టి, ఓపెన్ సోర్స్ డేటాహబ్ రిపోజిటరీని అందించే మల్టీప్రొడక్ట్‌లలో ఏదైనా మార్పు (తర్వాత బహిర్గతం కావచ్చు) షెల్ మల్టీప్రొడక్ట్‌లో బిల్డ్ ఈవెంట్‌ను ప్రేరేపిస్తుంది. అందువల్ల, రేపర్ ఉత్పత్తిని రూపొందించడంలో విఫలమైన ఏదైనా మార్పు అసలు ఉత్పత్తిని చేయడానికి ముందు పరీక్షలలో విఫలమవుతుంది మరియు తిరిగి మార్చబడుతుంది.

ఇది ఓపెన్ సోర్స్ బిల్డ్‌ను విచ్ఛిన్నం చేసే మరియు కమిట్ సమయంలో గుర్తించే ఏదైనా అంతర్గత నిబద్ధతను నిరోధించడంలో సహాయపడే ఉపయోగకరమైన మెకానిజం. ఇది లేకుండా, ఓపెన్ సోర్స్ రిపోజిటరీ బిల్డ్ విఫలం కావడానికి ఏ అంతర్గత కమిట్ కారణమైందో గుర్తించడం చాలా కష్టం, ఎందుకంటే మేము డేటాహబ్ ఓపెన్ సోర్స్ రిపోజిటరీకి అంతర్గత మార్పులను బ్యాచ్ చేస్తాము.

ఓపెన్ సోర్స్ డేటాహబ్ మరియు మా ప్రొడక్షన్ వెర్షన్ మధ్య తేడాలు

ఈ సమయం వరకు, మేము డేటాహబ్ రిపోజిటరీల యొక్క రెండు వెర్షన్‌లను సమకాలీకరించడానికి మా పరిష్కారాన్ని చర్చించాము, అయితే మనకు రెండు వేర్వేరు డెవలప్‌మెంట్ స్ట్రీమ్‌లు ఎందుకు అవసరమో మేము ఇంకా కారణాలను వివరించలేదు. ఈ విభాగంలో, మేము డేటాహబ్ యొక్క పబ్లిక్ వెర్షన్ మరియు లింక్డ్‌ఇన్ సర్వర్‌లలో ప్రొడక్షన్ వెర్షన్ మధ్య తేడాలను జాబితా చేస్తాము మరియు ఈ తేడాలకు గల కారణాలను వివరిస్తాము.

లింక్డ్‌ఇన్ ఆఫ్‌స్ప్రింగ్ (లింక్డ్‌ఇన్ యొక్క అంతర్గత డిపెండెన్సీ ఇంజెక్షన్ ఫ్రేమ్‌వర్క్) వంటి ఇంకా ఓపెన్ సోర్స్ కాని కోడ్‌పై మా ప్రొడక్షన్ వెర్షన్ డిపెండెన్సీలను కలిగి ఉన్నందున వ్యత్యాసానికి మూలం. అంతర్గత కోడ్‌బేస్‌లలో సంతానం విస్తృతంగా ఉపయోగించబడుతుంది ఎందుకంటే ఇది డైనమిక్ కాన్ఫిగరేషన్‌ను నిర్వహించడానికి ఇష్టపడే పద్ధతి. కానీ అది ఓపెన్ సోర్స్ కాదు; కాబట్టి మేము ఓపెన్ సోర్స్ డేటాహబ్‌కి ఓపెన్ సోర్స్ ప్రత్యామ్నాయాలను కనుగొనవలసి ఉంటుంది.

ఇతర కారణాలు కూడా ఉన్నాయి. మేము లింక్డ్‌ఇన్ అవసరాల కోసం మెటాడేటా మోడల్‌కు పొడిగింపులను సృష్టించినప్పుడు, ఈ పొడిగింపులు సాధారణంగా లింక్డ్‌ఇన్‌కి చాలా నిర్దిష్టంగా ఉంటాయి మరియు ఇతర వాతావరణాలకు నేరుగా వర్తించకపోవచ్చు. ఉదాహరణకు, పార్టిసిపెంట్ IDలు మరియు ఇతర రకాల మ్యాచింగ్ మెటాడేటా కోసం మేము చాలా నిర్దిష్ట లేబుల్‌లను కలిగి ఉన్నాము. కాబట్టి, మేము ఇప్పుడు ఈ పొడిగింపులను DataHub యొక్క ఓపెన్ సోర్స్ మెటాడేటా మోడల్ నుండి మినహాయించాము. మేము సంఘంతో నిమగ్నమై మరియు వారి అవసరాలను అర్థం చేసుకున్నప్పుడు, అవసరమైన చోట ఈ పొడిగింపుల యొక్క సాధారణ ఓపెన్ సోర్స్ వెర్షన్‌లపై మేము పని చేస్తాము.

వాడుకలో సౌలభ్యం మరియు ఓపెన్ సోర్స్ కమ్యూనిటీ కోసం సులభంగా స్వీకరించడం కూడా DataHub యొక్క రెండు వెర్షన్‌ల మధ్య కొన్ని తేడాలను ప్రేరేపించింది. స్ట్రీమ్ ప్రాసెసింగ్ ఇన్‌ఫ్రాస్ట్రక్చర్‌లో తేడాలు దీనికి మంచి ఉదాహరణ. మా అంతర్గత సంస్కరణ నిర్వహించబడే స్ట్రీమ్ ప్రాసెసింగ్ ఫ్రేమ్‌వర్క్‌ను ఉపయోగిస్తున్నప్పటికీ, మేము ఓపెన్ సోర్స్ వెర్షన్ కోసం అంతర్నిర్మిత (స్వతంత్ర) స్ట్రీమ్ ప్రాసెసింగ్‌ను ఉపయోగించాలని ఎంచుకున్నాము ఎందుకంటే ఇది మరొక ఇన్‌ఫ్రాస్ట్రక్చర్ డిపెండెన్సీని సృష్టించకుండా చేస్తుంది.

బహుళ GMSల కంటే ఓపెన్ సోర్స్ అమలులో ఒకే GMS (జనరలైజ్డ్ మెటాడేటా స్టోర్)ను కలిగి ఉండటం వ్యత్యాసానికి మరొక ఉదాహరణ. GMA (జనరలైజ్డ్ మెటాడేటా ఆర్కిటెక్చర్) అనేది డేటాహబ్ కోసం బ్యాక్-ఎండ్ ఆర్కిటెక్చర్ పేరు, మరియు GMS అనేది GMA సందర్భంలో మెటాడేటా స్టోర్. GMA అనేది చాలా అనువైన ఆర్కిటెక్చర్, ఇది ప్రతి డేటా నిర్మాణాన్ని (ఉదా. డేటాసెట్‌లు, వినియోగదారులు మొదలైనవి) దాని స్వంత మెటాడేటా స్టోర్‌లో పంపిణీ చేయడానికి లేదా డేటా స్ట్రక్చర్ మ్యాపింగ్‌ను కలిగి ఉన్న రిజిస్ట్రీ ఉన్నంత వరకు ఒకే మెటాడేటా స్టోర్‌లో బహుళ డేటా నిర్మాణాలను నిల్వ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. GMS నవీకరించబడింది. వాడుకలో సౌలభ్యం కోసం, మేము ఓపెన్ సోర్స్ డేటాహబ్‌లో అన్ని విభిన్న డేటా నిర్మాణాలను నిల్వ చేసే ఒకే GMS ఉదాహరణను ఎంచుకున్నాము.

రెండు అమలుల మధ్య తేడాల పూర్తి జాబితా క్రింది పట్టికలో ఇవ్వబడింది.

ఉత్పత్తి లక్షణాలు
లింక్డ్ఇన్ డేటాహబ్
ఓపెన్ సోర్స్ డేటాహబ్

మద్దతు ఉన్న డేటా నిర్మాణాలు
1) డేటాసెట్‌లు 2) వినియోగదారులు 3) మెట్రిక్‌లు 4) ML ఫీచర్‌లు 5) చార్ట్‌లు 6) డ్యాష్‌బోర్డ్‌లు
1) డేటాసెట్‌లు 2) వినియోగదారులు

డేటాసెట్‌ల కోసం మద్దతు ఉన్న మెటాడేటా సోర్సెస్
1) అంబ్రీ 2) కౌచ్‌బేస్ 3) దాలిడ్స్ 4) ఎస్ప్రెస్సో 5) HDFS 6) అందులో నివశించే తేనెటీగలు 7) కాఫ్కా 8) మొంగోడిబి 9) MySQL 10) ఒరాకిల్ 11) పినోట్ 12) ప్రెస్టో 12) సీస్ 13) టెరాడేటా 13) వెక్టర్ 14) వెనిస్
హైవ్ కాఫ్కా RDBMS

పబ్-సబ్
లింక్డ్ఇన్ కాఫ్కా
సంగమం కాఫ్కా

స్ట్రీమ్ ప్రాసెసింగ్
నిర్వహించేది
పొందుపరిచిన (స్వతంత్ర)

డిపెండెన్సీ ఇంజెక్షన్ & డైనమిక్ కాన్ఫిగరేషన్
లింక్డ్ఇన్ సంతానం
స్ప్రింగ్

బిల్డ్ టూలింగ్
లిగ్రాడిల్ (లింక్డ్ఇన్ యొక్క అంతర్గత గ్రాడిల్ రేపర్)
గ్రాడ్లేవ్

CI/CD
CRT (లింక్డ్ఇన్ యొక్క అంతర్గత CI/CD)
ట్రావిస్‌సిఐ మరియు డాకర్ హబ్

మెటాడేటా దుకాణాలు
బహుళ GMS పంపిణీ చేయబడింది: 1) డేటాసెట్ GMS 2) వినియోగదారు GMS 3) మెట్రిక్ GMS 4) ఫీచర్ GMS 5) చార్ట్/డ్యాష్‌బోర్డ్ GMS
దీని కోసం ఒకే GMS: 1) డేటాసెట్‌లు 2) వినియోగదారులు

డాకర్ కంటైనర్లలో మైక్రోసర్వీసెస్

డాకర్ అప్లికేషన్ విస్తరణ మరియు పంపిణీని సులభతరం చేస్తుంది కంటెయినరైజేషన్. డేటాహబ్‌లోని సేవలోని ప్రతి భాగం కాఫ్కా వంటి మౌలిక సదుపాయాల భాగాలతో సహా ఓపెన్ సోర్స్, Elasticsearch, నియో 4 జె и MySQL, దాని స్వంత డాకర్ చిత్రాన్ని కలిగి ఉంది. మేము ఉపయోగించిన డాకర్ కంటైనర్‌లను ఆర్కెస్ట్రేట్ చేయడానికి డాకర్ కంపోజ్.

ఓపెన్ సోర్స్ డేటాహబ్: లింక్డ్ఇన్ యొక్క మెటాడేటా శోధన మరియు డిస్కవరీ ప్లాట్‌ఫారమ్

మూర్తి 2: ఆర్కిటెక్చర్ డేటాహబ్ *ఓపెన్ సోర్స్**

మీరు పై చిత్రంలో DataHub యొక్క ఉన్నత-స్థాయి నిర్మాణాన్ని చూడవచ్చు. అవస్థాపన భాగాలతో పాటు, ఇది నాలుగు వేర్వేరు డాకర్ కంటైనర్‌లను కలిగి ఉంది:

datahub-gms: మెటాడేటా నిల్వ సేవ

datahub-frontend: అప్లికేషన్ ప్లే, DataHub ఇంటర్‌ఫేస్‌ను అందిస్తోంది.

datahub-mce-consumer: అప్లికేషన్ కాఫ్కా స్ట్రీమ్స్, ఇది మెటాడేటా మార్పు ఈవెంట్ (MCE) స్ట్రీమ్‌ని ఉపయోగిస్తుంది మరియు మెటాడేటా స్టోర్‌ను అప్‌డేట్ చేస్తుంది.

datahub-mae-consumer: అప్లికేషన్ కాఫ్కా స్ట్రీమ్స్, ఇది మెటాడేటా ఆడిట్ ఈవెంట్ స్ట్రీమ్ (MAE)ని ఉపయోగిస్తుంది మరియు శోధన సూచిక మరియు గ్రాఫ్ డేటాబేస్‌ను సృష్టిస్తుంది.

ఓపెన్ సోర్స్ రిపోజిటరీ డాక్యుమెంటేషన్ మరియు అసలు DataHub బ్లాగ్ పోస్ట్ వివిధ సేవల విధుల గురించి మరింత వివరణాత్మక సమాచారాన్ని కలిగి ఉంటుంది.

డేటాహబ్‌లోని CI/CD ఓపెన్ సోర్స్

ఓపెన్ సోర్స్ డేటాహబ్ రిపోజిటరీ ఉపయోగిస్తుంది ట్రావిస్‌సిఐ నిరంతర ఏకీకరణ కోసం మరియు డాకర్ హబ్ నిరంతర విస్తరణ కోసం. రెండూ మంచి GitHub ఇంటిగ్రేషన్‌ను కలిగి ఉన్నాయి మరియు సెటప్ చేయడం సులభం. కమ్యూనిటీ లేదా ప్రైవేట్ కంపెనీలు అభివృద్ధి చేసిన చాలా ఓపెన్ సోర్స్ మౌలిక సదుపాయాల కోసం (ఉదా. పోయిన), కమ్యూనిటీ సులభంగా ఉపయోగించడానికి డాకర్ చిత్రాలు సృష్టించబడతాయి మరియు డాకర్ హబ్‌కు అమలు చేయబడతాయి. డాకర్ హబ్‌లో కనిపించే ఏదైనా డాకర్ ఇమేజ్‌ని సాధారణ కమాండ్‌తో సులభంగా ఉపయోగించవచ్చు డాకర్ లాగండి.

DataHub ఓపెన్ సోర్స్ రిపోజిటరీకి ప్రతి నిబద్ధతతో, అన్ని డాకర్ చిత్రాలు స్వయంచాలకంగా నిర్మించబడతాయి మరియు "తాజా" ట్యాగ్‌తో డాకర్ హబ్‌కి అమలు చేయబడతాయి. డాకర్ హబ్ కొన్నింటితో కాన్ఫిగర్ చేయబడితే సాధారణ వ్యక్తీకరణ శాఖలకు పేరు పెట్టడం, ఓపెన్ సోర్స్ రిపోజిటరీలోని అన్ని ట్యాగ్‌లు డాకర్ హబ్‌లో సంబంధిత ట్యాగ్ పేర్లతో కూడా విడుదల చేయబడతాయి.

డేటాహబ్‌ని ఉపయోగించడం

DataHubని సెటప్ చేస్తోంది చాలా సులభం మరియు మూడు సాధారణ దశలను కలిగి ఉంటుంది:

  1. త్వరిత ప్రారంభం కోసం అందించిన డాకర్-కంపోజ్ స్క్రిప్ట్‌ని ఉపయోగించి ఓపెన్ సోర్స్ రిపోజిటరీని క్లోన్ చేయండి మరియు డాకర్ కంపోజ్‌తో అన్ని డాకర్ కంటైనర్‌లను రన్ చేయండి.
  2. అందించిన కమాండ్ లైన్ సాధనాన్ని ఉపయోగించి రిపోజిటరీలో అందించిన నమూనా డేటాను డౌన్‌లోడ్ చేయండి.
  3. మీ బ్రౌజర్‌లో డేటాహబ్‌ని బ్రౌజ్ చేయండి.

చురుకుగా ట్రాక్ చేయబడింది గిట్టర్ చాట్ శీఘ్ర ప్రశ్నల కోసం కూడా కాన్ఫిగర్ చేయబడింది. వినియోగదారులు నేరుగా GitHub రిపోజిటరీలో సమస్యలను కూడా సృష్టించవచ్చు. ముఖ్యంగా, మేము అన్ని అభిప్రాయాలు మరియు సూచనలను స్వాగతిస్తాము మరియు అభినందిస్తున్నాము!

భవిష్యత్తు కోసం ప్రణాళికలు

ప్రస్తుతం, ఓపెన్ సోర్స్ డేటాహబ్ కోసం ప్రతి ఇన్‌ఫ్రాస్ట్రక్చర్ లేదా మైక్రోసర్వీస్ డాకర్ కంటైనర్‌గా నిర్మించబడింది మరియు మొత్తం సిస్టమ్ దీన్ని ఉపయోగించి ఆర్కెస్ట్రేట్ చేయబడింది డాకర్-కూర్చండి. ప్రజాదరణ మరియు విస్తృతమైన దృష్ట్యా Kubernetes, మేము సమీప భవిష్యత్తులో కుబెర్నెట్స్ ఆధారిత పరిష్కారాన్ని కూడా అందించాలనుకుంటున్నాము.

మేము పబ్లిక్ క్లౌడ్ సేవలో డేటాహబ్‌ని అమలు చేయడానికి టర్న్‌కీ పరిష్కారాన్ని అందించాలని కూడా ప్లాన్ చేస్తున్నాము నీలవర్ణం, AWS లేదా Google మేఘం. అజూర్‌కు లింక్డ్‌ఇన్ వలసల యొక్క ఇటీవలి ప్రకటనను బట్టి, ఇది మెటాడేటా బృందం యొక్క అంతర్గత ప్రాధాన్యతలకు అనుగుణంగా ఉంటుంది.

చివరిది కానీ, డేటాహబ్ ఆల్ఫాలను రేట్ చేసిన ఓపెన్ సోర్స్ కమ్యూనిటీలో డేటాహబ్‌ను ముందుగా స్వీకరించిన వారందరికీ ధన్యవాదాలు మరియు సమస్యలను గుర్తించడంలో మరియు డాక్యుమెంటేషన్ మెరుగుపరచడంలో మాకు సహాయపడింది.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి