కొంత కాలం క్రితం, బిగ్ డేటాతో పని చేయడానికి ETL సాధనాన్ని ఎంచుకునే ప్రశ్నను మేము ఎదుర్కొన్నాము. పరిమిత కార్యాచరణ కారణంగా గతంలో ఉపయోగించిన Informatica BDM సొల్యూషన్ మాకు సరిపోలేదు. స్పార్క్-సబ్మిట్ ఆదేశాలను ప్రారంభించడం కోసం దీని ఉపయోగం ఫ్రేమ్వర్క్కు తగ్గించబడింది. మార్కెట్లో చాలా అనలాగ్లు లేవు, అవి సూత్రప్రాయంగా, మేము ప్రతిరోజూ వ్యవహరించే డేటా పరిమాణంతో పని చేయగలవు. చివరికి అబ్ ఇనిషియోని ఎంచుకున్నాం. పైలట్ ప్రదర్శనల సమయంలో, ఉత్పత్తి చాలా ఎక్కువ డేటా ప్రాసెసింగ్ వేగాన్ని చూపింది. అబ్ ఇనిషియో గురించి రష్యన్ భాషలో దాదాపుగా సమాచారం లేదు, కాబట్టి మేము హబ్రేలో మా అనుభవం గురించి మాట్లాడాలని నిర్ణయించుకున్నాము.
Ab Initio అనేక క్లాసిక్ మరియు అసాధారణ పరివర్తనలను కలిగి ఉంది, దీని కోడ్ దాని స్వంత PDL భాషను ఉపయోగించి పొడిగించవచ్చు. చిన్న వ్యాపారం కోసం, అటువంటి శక్తివంతమైన సాధనం ఓవర్ కిల్ కావచ్చు మరియు దాని సామర్థ్యాలు చాలా ఖరీదైనవి మరియు ఉపయోగించనివి కావచ్చు. కానీ మీ స్కేల్ స్బెరోవ్కి దగ్గరగా ఉంటే, అబ్ ఇనిషియో మీకు ఆసక్తికరంగా ఉండవచ్చు.
ఇది ప్రపంచవ్యాప్తంగా జ్ఞానాన్ని కూడగట్టుకోవడానికి మరియు పర్యావరణ వ్యవస్థను అభివృద్ధి చేయడానికి వ్యాపారానికి సహాయపడుతుంది మరియు డెవలపర్కు ETLలో తన నైపుణ్యాలను మెరుగుపరచడానికి, షెల్లో అతని జ్ఞానాన్ని మెరుగుపరచడానికి, PDL భాషలో ప్రావీణ్యం సంపాదించడానికి అవకాశాన్ని అందిస్తుంది, లోడింగ్ ప్రక్రియల దృశ్యమాన చిత్రాన్ని అందిస్తుంది మరియు అభివృద్ధిని సులభతరం చేస్తుంది. ఫంక్షనల్ భాగాల సమృద్ధి కారణంగా.
ఈ పోస్ట్లో నేను అబ్ ఇనిషియో యొక్క సామర్థ్యాల గురించి మాట్లాడతాను మరియు హైవ్ మరియు గ్రీన్ప్లమ్తో దాని పని యొక్క తులనాత్మక లక్షణాలను అందిస్తాను.
- MDW ఫ్రేమ్వర్క్ యొక్క వివరణ మరియు GreenPlum కోసం దాని అనుకూలీకరణపై పని
- హైవ్ మరియు గ్రీన్ప్లమ్ మధ్య Ab Initio పనితీరు పోలిక
- నియర్ రియల్ టైమ్ మోడ్లో గ్రీన్ప్లమ్తో అబ్ ఇనిషియో పని చేస్తోంది
ఈ ఉత్పత్తి యొక్క కార్యాచరణ చాలా విస్తృతమైనది మరియు అధ్యయనం చేయడానికి చాలా సమయం అవసరం. అయితే, సరైన పని నైపుణ్యాలు మరియు సరైన పనితీరు సెట్టింగులతో, డేటా ప్రాసెసింగ్ ఫలితాలు బాగా ఆకట్టుకుంటాయి. డెవలపర్ కోసం Ab Initioని ఉపయోగించడం ఆసక్తికరమైన అనుభవాన్ని అందిస్తుంది. ఇది ETL డెవలప్మెంట్పై కొత్త టేక్, దృశ్యమాన వాతావరణం మరియు స్క్రిప్ట్ లాంటి భాషలో డౌన్లోడ్ డెవలప్మెంట్ మధ్య హైబ్రిడ్.
వ్యాపారాలు తమ పర్యావరణ వ్యవస్థలను అభివృద్ధి చేస్తున్నాయి మరియు ఈ సాధనం గతంలో కంటే ఎక్కువగా ఉపయోగపడుతుంది. Ab Initioతో, మీరు మీ ప్రస్తుత వ్యాపారం గురించి జ్ఞానాన్ని కూడగట్టుకోవచ్చు మరియు పాత మరియు కొత్త వ్యాపారాలను విస్తరించడానికి ఈ పరిజ్ఞానాన్ని ఉపయోగించవచ్చు. Ab Initioకి ప్రత్యామ్నాయాలలో దృశ్య అభివృద్ధి వాతావరణాలు ఇన్ఫర్మాటికా BDM మరియు నాన్-విజువల్ డెవలప్మెంట్ ఎన్విరాన్మెంట్లు Apache Spark ఉన్నాయి.
Ab Initio యొక్క వివరణ
Ab Initio, ఇతర ETL సాధనాల వలె, ఉత్పత్తుల సమాహారం.
Ab Initio GDE (గ్రాఫికల్ డెవలప్మెంట్ ఎన్విరాన్మెంట్) అనేది డెవలపర్ కోసం ఒక పర్యావరణం, దీనిలో అతను డేటా పరివర్తనలను కాన్ఫిగర్ చేస్తాడు మరియు వాటిని బాణాల రూపంలో డేటా ఫ్లోలతో కనెక్ట్ చేస్తాడు. ఈ సందర్భంలో, అటువంటి పరివర్తనాల సమితిని గ్రాఫ్ అంటారు:
ఫంక్షనల్ కాంపోనెంట్ల ఇన్పుట్ మరియు అవుట్పుట్ కనెక్షన్లు పోర్ట్లు మరియు పరివర్తనలలో లెక్కించబడిన ఫీల్డ్లను కలిగి ఉంటాయి. వాటి అమలు క్రమంలో బాణాల రూపంలో ప్రవాహాల ద్వారా అనుసంధానించబడిన అనేక గ్రాఫ్లను ప్లాన్ అంటారు.
అనేక వందల ఫంక్షనల్ భాగాలు ఉన్నాయి, ఇది చాలా ఉంది. వాటిలో చాలా ప్రత్యేకమైనవి. ఇతర ETL సాధనాల కంటే Ab Initioలో క్లాసిక్ రూపాంతరాల సామర్థ్యాలు విస్తృతంగా ఉన్నాయి. ఉదాహరణకు, జాయిన్ బహుళ అవుట్పుట్లను కలిగి ఉంది. డేటాసెట్లను కనెక్ట్ చేయడం వల్ల వచ్చే ఫలితంతో పాటు, మీరు ఇన్పుట్ డేటాసెట్ల అవుట్పుట్ రికార్డ్లను పొందవచ్చు, దీని కీలు కనెక్ట్ కాలేదు. మీరు తిరస్కరణలు, లోపాలు మరియు పరివర్తన ఆపరేషన్ యొక్క లాగ్ను కూడా పొందవచ్చు, ఇది టెక్స్ట్ ఫైల్ వలె అదే కాలమ్లో చదవబడుతుంది మరియు ఇతర పరివర్తనలతో ప్రాసెస్ చేయబడుతుంది:
లేదా, ఉదాహరణకు, మీరు పట్టిక రూపంలో డేటా రిసీవర్ని మెటీరియలైజ్ చేయవచ్చు మరియు దాని నుండి డేటాను అదే కాలమ్లో చదవవచ్చు.
అసలు రూపాంతరాలు ఉన్నాయి. ఉదాహరణకు, స్కాన్ ట్రాన్స్ఫర్మేషన్ విశ్లేషణాత్మక ఫంక్షన్ల మాదిరిగానే కార్యాచరణను కలిగి ఉంటుంది. స్వీయ వివరణాత్మక పేర్లతో రూపాంతరాలు ఉన్నాయి: డేటాను సృష్టించండి, ఎక్సెల్ చదవండి, సాధారణీకరించండి, సమూహాలలో క్రమబద్ధీకరించండి, ప్రోగ్రామ్ను అమలు చేయండి, SQLని అమలు చేయండి, DBతో చేరండి, మొదలైనవి ఆపరేటింగ్ సిస్టమ్. గ్రాఫ్కు పంపబడిన పారామితుల యొక్క రెడీమేడ్ సెట్తో ఉన్న ఫైల్లను పారామీటర్ సెట్లు (ప్సెట్లు) అంటారు.
ఊహించినట్లుగానే, Ab Initio GDE దాని స్వంత రిపోజిటరీని EME (ఎంటర్ప్రైజ్ మెటా ఎన్విరాన్మెంట్) అని పిలుస్తారు. డెవలపర్లు స్థానిక కోడ్ వెర్షన్లతో పని చేయడానికి మరియు సెంట్రల్ రిపోజిటరీలో వారి అభివృద్ధిని తనిఖీ చేయడానికి అవకాశం ఉంది.
అమలు సమయంలో లేదా గ్రాఫ్ని అమలు చేసిన తర్వాత, పరివర్తనను అనుసంధానించే ఏదైనా ప్రవాహంపై క్లిక్ చేసి, ఈ పరివర్తనల మధ్య పాస్ అయిన డేటాను చూడటం సాధ్యమవుతుంది:
ఏదైనా స్ట్రీమ్పై క్లిక్ చేయడం మరియు ట్రాకింగ్ వివరాలను చూడటం కూడా సాధ్యమే - పరివర్తన ఎన్ని సమాంతరాలలో పనిచేసింది, ఎన్ని లైన్లు మరియు బైట్లు ఏ సమాంతరాలలోకి లోడ్ చేయబడ్డాయి:
గ్రాఫ్ యొక్క అమలును దశలుగా విభజించడం సాధ్యమవుతుంది మరియు కొన్ని పరివర్తనలు మొదట (సున్నా దశలో), తదుపరి వాటిని మొదటి దశలో, తదుపరి వాటిని రెండవ దశలో, మొదలైన వాటిని గుర్తించడం సాధ్యమవుతుంది.
ప్రతి రూపాంతరం కోసం, మీరు లేఅవుట్ అని పిలవబడేదాన్ని ఎంచుకోవచ్చు (అది ఎక్కడ అమలు చేయబడుతుంది): సమాంతరాలు లేకుండా లేదా సమాంతర థ్రెడ్లలో, వాటి సంఖ్యను పేర్కొనవచ్చు. అదే సమయంలో, పరివర్తనలు నడుస్తున్నప్పుడు Ab Initio సృష్టించే తాత్కాలిక ఫైల్లు సర్వర్ ఫైల్ సిస్టమ్లో మరియు HDFSలో ఉంచబడతాయి.
ప్రతి రూపాంతరంలో, డిఫాల్ట్ టెంప్లేట్ ఆధారంగా, మీరు PDLలో మీ స్వంత స్క్రిప్ట్ను సృష్టించవచ్చు, ఇది షెల్ లాగా ఉంటుంది.
PDLతో మీరు పరివర్తనల కార్యాచరణను పొడిగించవచ్చు మరియు ప్రత్యేకించి, రన్టైమ్ పారామితులపై ఆధారపడి మీరు డైనమిక్గా (రన్టైమ్లో) ఏకపక్ష కోడ్ శకలాలను రూపొందించవచ్చు.
Ab Initio షెల్ ద్వారా OSతో బాగా అభివృద్ధి చెందిన ఏకీకరణను కూడా కలిగి ఉంది. ప్రత్యేకంగా, Sberbank linux kshని ఉపయోగిస్తుంది. మీరు షెల్తో వేరియబుల్లను మార్చుకోవచ్చు మరియు వాటిని గ్రాఫ్ పారామీటర్లుగా ఉపయోగించవచ్చు. మీరు షెల్ నుండి Ab Initio గ్రాఫ్ల అమలుకు కాల్ చేయవచ్చు మరియు Ab Initioని నిర్వహించవచ్చు.
Ab Initio GDEతో పాటు, అనేక ఇతర ఉత్పత్తులు డెలివరీలో చేర్చబడ్డాయి. ఆపరేటింగ్ సిస్టమ్ అని పిలవబడే దావాతో దాని స్వంత కో>ఆపరేషన్ సిస్టమ్ ఉంది. మీరు డౌన్లోడ్ ఫ్లోలను షెడ్యూల్ చేయగల మరియు పర్యవేక్షించగల నియంత్రణ>కేంద్రం ఉంది. Ab Initio GDE అనుమతించే దానికంటే చాలా ప్రాచీనమైన స్థాయిలో అభివృద్ధి చేయడానికి ఉత్పత్తులు ఉన్నాయి.
MDW ఫ్రేమ్వర్క్ యొక్క వివరణ మరియు GreenPlum కోసం దాని అనుకూలీకరణపై పని
దాని ఉత్పత్తులతో పాటు, విక్రేత MDW (మెటాడేటా నడిచే వేర్హౌస్) ఉత్పత్తిని సరఫరా చేస్తాడు, ఇది డేటా వేర్హౌస్లు లేదా డేటా వాల్ట్లను పాపులేట్ చేసే సాధారణ పనులకు సహాయం చేయడానికి రూపొందించబడిన గ్రాఫ్ కాన్ఫిగరేటర్.
ఇది కస్టమ్ (ప్రాజెక్ట్-నిర్దిష్ట) మెటాడేటా పార్సర్లను మరియు బాక్స్ వెలుపల రెడీమేడ్ కోడ్ జనరేటర్లను కలిగి ఉంది.
ఇన్పుట్గా, MDW డేటా మోడల్ను అందుకుంటుంది, డేటాబేస్ (Oracle, Teradata లేదా Hive) మరియు కొన్ని ఇతర సెట్టింగ్లకు కనెక్షన్ని సెటప్ చేయడానికి ఒక కాన్ఫిగరేషన్ ఫైల్. ప్రాజెక్ట్-నిర్దిష్ట భాగం, ఉదాహరణకు, మోడల్ను డేటాబేస్కు అమలు చేస్తుంది. ఉత్పత్తి యొక్క వెలుపలి భాగం డేటాను మోడల్ పట్టికలలోకి లోడ్ చేయడం ద్వారా గ్రాఫ్లు మరియు కాన్ఫిగరేషన్ ఫైల్లను ఉత్పత్తి చేస్తుంది. ఈ సందర్భంలో, గ్రాఫ్లు (మరియు ప్సెట్లు) ఎంటిటీలను అప్డేట్ చేయడంలో ప్రారంభించడం మరియు పెరుగుతున్న పని కోసం అనేక మోడ్ల కోసం సృష్టించబడతాయి.
హైవ్ మరియు RDBMS సందర్భాలలో, ప్రారంభ మరియు పెరుగుతున్న డేటా అప్డేట్ల కోసం విభిన్న గ్రాఫ్లు రూపొందించబడతాయి.
హైవ్ విషయంలో, ఇన్కమింగ్ డెల్టా డేటా అప్డేట్కు ముందు టేబుల్లో ఉన్న డేటాతో Ab Initio Join ద్వారా కనెక్ట్ చేయబడింది. MDWలోని డేటా లోడర్లు (హైవ్ మరియు RDBMS రెండింటిలోనూ) డెల్టా నుండి కొత్త డేటాను చొప్పించడమే కాకుండా, డెల్టాను అందుకున్న ప్రాథమిక కీలు ఉన్న డేటా యొక్క ఔచిత్యం యొక్క కాలాలను కూడా మూసివేస్తాయి. అదనంగా, మీరు డేటాలోని మార్పులేని భాగాన్ని తిరిగి వ్రాయవలసి ఉంటుంది. కానీ హైవ్లో తొలగింపు లేదా నవీకరణ కార్యకలాపాలు లేనందున ఇది చేయాలి.
RDBMS విషయంలో, పెరుగుతున్న డేటా అప్డేట్ కోసం గ్రాఫ్లు మరింత అనుకూలంగా కనిపిస్తాయి, ఎందుకంటే RDBMS నిజమైన అప్డేట్ సామర్థ్యాలను కలిగి ఉంటుంది.
స్వీకరించబడిన డెల్టా డేటాబేస్లో ఇంటర్మీడియట్ పట్టికలో లోడ్ చేయబడింది. దీని తరువాత, డెల్టా నవీకరణకు ముందు పట్టికలో ఉన్న డేటాకు కనెక్ట్ చేయబడింది. మరియు ఇది ఉత్పత్తి చేయబడిన SQL ప్రశ్నను ఉపయోగించి SQLని ఉపయోగించి చేయబడుతుంది. తర్వాత, SQL కమాండ్లను డిలీట్+ఇన్సర్ట్ ఉపయోగించి, డెల్టా నుండి కొత్త డేటా టార్గెట్ టేబుల్లోకి చొప్పించబడుతుంది మరియు డెల్టాను స్వీకరించిన ప్రాథమిక కీలు ఉన్న డేటా యొక్క ఔచిత్యం యొక్క కాలాలు మూసివేయబడతాయి.
మారని డేటాను తిరిగి వ్రాయవలసిన అవసరం లేదు.
కాబట్టి హైవ్ విషయంలో, హైవ్కి అప్డేట్ ఫంక్షన్ లేనందున, మొత్తం పట్టికను తిరిగి వ్రాయడానికి MDW వెళ్లవలసి ఉంటుందని మేము నిర్ధారణకు వచ్చాము. మరియు నవీకరణ కనుగొనబడినప్పుడు డేటాను పూర్తిగా తిరిగి వ్రాయడం కంటే మెరుగైనది ఏమీ లేదు. RDBMS విషయంలో, దీనికి విరుద్ధంగా, ఉత్పత్తి యొక్క సృష్టికర్తలు SQL వినియోగానికి కనెక్షన్ మరియు పట్టికల నవీకరణను అప్పగించాల్సిన అవసరం ఉందని కనుగొన్నారు.
Sberbank వద్ద ఒక ప్రాజెక్ట్ కోసం, మేము GreenPlum కోసం డేటాబేస్ లోడర్ యొక్క కొత్త, పునర్వినియోగ అమలును సృష్టించాము. టెరాడేటా కోసం MDW ఉత్పత్తి చేసే సంస్కరణ ఆధారంగా ఇది జరిగింది. ఇది టెరాడాటా, మరియు ఒరాకిల్ కాదు, దీనికి దగ్గరగా మరియు ఉత్తమమైనది, ఎందుకంటే... MPP వ్యవస్థ కూడా. టెరాడేటా మరియు గ్రీన్ప్లమ్ యొక్క పని పద్ధతులు, అలాగే వాక్యనిర్మాణం ఒకే విధంగా ఉన్నాయి.
వివిధ RDBMSల మధ్య MDW- క్లిష్టమైన వ్యత్యాసాల ఉదాహరణలు క్రింది విధంగా ఉన్నాయి. గ్రీన్ప్లమ్లో, టెరాడేటా వలె కాకుండా, పట్టికలను సృష్టించేటప్పుడు మీరు ఒక నిబంధనను వ్రాయాలి
distributed by
Teradata వ్రాస్తూ:
delete <table> all
, మరియు GreenPlum లో వారు వ్రాస్తారు
delete from <table>
ఒరాకిల్లో, ఆప్టిమైజేషన్ ప్రయోజనాల కోసం వారు వ్రాస్తారు
delete from t where rowid in (<соединение t с дельтой>)
, మరియు Teradata మరియు GreenPlum వ్రాస్తాయి
delete from t where exists (select * from delta where delta.pk=t.pk)
Ab Initio గ్రీన్ప్లమ్తో పని చేయడానికి, Ab Initio క్లస్టర్లోని అన్ని నోడ్లలో GreenPlum క్లయింట్ను ఇన్స్టాల్ చేయడం అవసరం అని కూడా మేము గమనించాము. ఎందుకంటే మేము మా క్లస్టర్లోని అన్ని నోడ్ల నుండి గ్రీన్ప్లమ్కి ఏకకాలంలో కనెక్ట్ అయ్యాము. మరియు GreenPlum నుండి చదవడం సమాంతరంగా మరియు ప్రతి సమాంతర Ab Initio థ్రెడ్ గ్రీన్ప్లమ్ నుండి దాని స్వంత డేటాను చదవడానికి, మేము Ab Initio ద్వారా అర్థం చేసుకున్న నిర్మాణాన్ని SQL ప్రశ్నల "ఎక్కడ" విభాగంలో ఉంచాలి.
where ABLOCAL()
మరియు పరివర్తన డేటాబేస్ నుండి పరామితి పఠనాన్ని పేర్కొనడం ద్వారా ఈ నిర్మాణం యొక్క విలువను నిర్ణయించండి
ablocal_expr=«string_concat("mod(t.", string_filter_out("{$TABLE_KEY}","{}"), ",", (decimal(3))(number_of_partitions()),")=", (decimal(3))(this_partition()))»
, ఇది వంటి వాటికి కంపైల్ చేస్తుంది
mod(sk,10)=3
, అనగా మీరు ప్రతి విభజనకు స్పష్టమైన ఫిల్టర్తో GreenPlumని ప్రాంప్ట్ చేయాలి. ఇతర డేటాబేస్ల కోసం (Teradata, Oracle), Ab Initio ఈ సమాంతరీకరణను స్వయంచాలకంగా నిర్వహించగలదు.
హైవ్ మరియు గ్రీన్ప్లమ్ మధ్య Ab Initio పనితీరు పోలిక
హైవ్కి సంబంధించి మరియు గ్రీన్ప్లమ్కు సంబంధించి MDW-ఉత్పత్తి చేసిన గ్రాఫ్ల పనితీరును పోల్చడానికి Sberbank ఒక ప్రయోగాన్ని నిర్వహించింది. ప్రయోగంలో భాగంగా, హైవ్ విషయంలో అబ్ ఇనిషియో వలె అదే క్లస్టర్పై 5 నోడ్లు ఉన్నాయి మరియు గ్రీన్ప్లమ్ విషయంలో ప్రత్యేక క్లస్టర్పై 4 నోడ్లు ఉన్నాయి. ఆ. గ్రీన్ప్లమ్ కంటే హైవ్ కొంత హార్డ్వేర్ ప్రయోజనాన్ని కలిగి ఉంది.
హైవ్ మరియు గ్రీన్ప్లమ్లో డేటాను అప్డేట్ చేయడంలో ఒకే విధమైన పనిని చేస్తున్న రెండు జతల గ్రాఫ్లను మేము పరిగణించాము. అదే సమయంలో, MDW కాన్ఫిగరేటర్ ద్వారా రూపొందించబడిన గ్రాఫ్లు ప్రారంభించబడ్డాయి:
- ప్రారంభ లోడ్ + హైవ్ పట్టికలో యాదృచ్ఛికంగా రూపొందించబడిన డేటా యొక్క పెరుగుతున్న లోడ్
- ప్రారంభ లోడ్ + అదే GreenPlum పట్టికలో యాదృచ్ఛికంగా ఉత్పత్తి చేయబడిన డేటా యొక్క పెరుగుతున్న లోడ్
రెండు సందర్భాలలో (హైవ్ మరియు గ్రీన్ప్లమ్) వారు ఒకే Ab Initio క్లస్టర్లో 10 సమాంతర థ్రెడ్లకు అప్లోడ్లను అమలు చేశారు. Ab Initio HDFSలో లెక్కల కోసం ఇంటర్మీడియట్ డేటాను సేవ్ చేసింది (Ab Initio పరంగా, HDFSని ఉపయోగించి MFS లేఅవుట్ ఉపయోగించబడింది). యాదృచ్ఛికంగా రూపొందించబడిన డేటా యొక్క ఒక లైన్ రెండు సందర్భాల్లోనూ 200 బైట్లను ఆక్రమించింది.
ఫలితం ఇలా ఉంది:
అందులో నివశించే తేనెటీగలు:
హైవ్లో ప్రారంభ లోడ్ అవుతోంది
అడ్డు వరుసలు చొప్పించబడ్డాయి
6 000 000
60 000 000
600 000 000
ప్రారంభ వ్యవధి
సెకన్లలో డౌన్లోడ్ అవుతుంది
41
203
1 601
హైవ్లో పెరుగుతున్న లోడ్
లో అందుబాటులో ఉన్న అడ్డు వరుసల సంఖ్య
ప్రయోగం ప్రారంభంలో లక్ష్య పట్టిక
6 000 000
60 000 000
600 000 000
దరఖాస్తు చేసిన డెల్టా లైన్ల సంఖ్య
ప్రయోగం సమయంలో లక్ష్య పట్టిక
6 000 000
6 000 000
6 000 000
ఇంక్రిమెంటల్ వ్యవధి
సెకన్లలో డౌన్లోడ్ అవుతుంది
88
299
2 541
గ్రీన్ప్లమ్:
గ్రీన్ప్లమ్లో ప్రారంభ లోడింగ్
అడ్డు వరుసలు చొప్పించబడ్డాయి
6 000 000
60 000 000
600 000 000
ప్రారంభ వ్యవధి
సెకన్లలో డౌన్లోడ్ అవుతుంది
72
360
3 631
గ్రీన్ప్లమ్లో పెరుగుతున్న లోడింగ్
లో అందుబాటులో ఉన్న అడ్డు వరుసల సంఖ్య
ప్రయోగం ప్రారంభంలో లక్ష్య పట్టిక
6 000 000
60 000 000
600 000 000
దరఖాస్తు చేసిన డెల్టా లైన్ల సంఖ్య
ప్రయోగం సమయంలో లక్ష్య పట్టిక
6 000 000
6 000 000
6 000 000
ఇంక్రిమెంటల్ వ్యవధి
సెకన్లలో డౌన్లోడ్ అవుతుంది
159
199
321
హైవ్ మరియు గ్రీన్ప్లమ్ రెండింటిలో ప్రారంభ లోడింగ్ వేగం సరళంగా డేటా మొత్తంపై ఆధారపడి ఉంటుందని మరియు మెరుగైన హార్డ్వేర్ కారణాల వల్ల, గ్రీన్ప్లమ్ కంటే హైవ్కి ఇది కొంచెం వేగంగా ఉంటుందని మేము చూస్తున్నాము.
హైవ్లో ఇంక్రిమెంటల్ లోడింగ్ అనేది లక్ష్య పట్టికలో అందుబాటులో ఉన్న గతంలో లోడ్ చేయబడిన డేటా వాల్యూమ్పై కూడా సరళంగా ఆధారపడి ఉంటుంది మరియు వాల్యూమ్ పెరిగేకొద్దీ చాలా నెమ్మదిగా కొనసాగుతుంది. లక్ష్య పట్టికను పూర్తిగా తిరిగి వ్రాయవలసిన అవసరం వల్ల ఇది జరుగుతుంది. దీని అర్థం భారీ పట్టికలకు చిన్న మార్పులను వర్తింపజేయడం హైవ్ కోసం మంచి ఉపయోగం కాదు.
గ్రీన్ప్లమ్లో పెరుగుతున్న లోడ్ బలహీనంగా లక్ష్య పట్టికలో అందుబాటులో ఉన్న గతంలో లోడ్ చేయబడిన డేటా పరిమాణంపై ఆధారపడి ఉంటుంది మరియు చాలా త్వరగా కొనసాగుతుంది. SQL జాయిన్స్ మరియు గ్రీన్ప్లమ్ ఆర్కిటెక్చర్ కారణంగా ఇది జరిగింది, ఇది తొలగింపు ఆపరేషన్ను అనుమతిస్తుంది.
కాబట్టి, గ్రీన్ప్లమ్ డిలీట్+ఇన్సర్ట్ పద్ధతిని ఉపయోగించి డెల్టాను జోడిస్తుంది, అయితే హైవ్లో డిలీట్ లేదా అప్డేట్ ఆపరేషన్లు లేవు, కాబట్టి పెరుగుతున్న అప్డేట్ సమయంలో మొత్తం డేటా శ్రేణి పూర్తిగా తిరిగి వ్రాయవలసి వచ్చింది. రిసోర్స్-ఇంటెన్సివ్ డౌన్లోడ్లను ఉపయోగించడం కోసం ఇది అత్యంత సాధారణ ఎంపికకు అనుగుణంగా ఉన్నందున, బోల్డ్లో హైలైట్ చేయబడిన సెల్ల పోలిక చాలా స్పష్టంగా కనిపిస్తుంది. ఈ పరీక్షలో గ్రీన్ప్లమ్ హైవ్ను 8 సార్లు ఓడించినట్లు మేము చూస్తున్నాము.
నియర్ రియల్ టైమ్ మోడ్లో గ్రీన్ప్లమ్తో అబ్ ఇనిషియో పని చేస్తోంది
ఈ ప్రయోగంలో, వాస్తవ సమయంలో యాదృచ్ఛికంగా రూపొందించబడిన డేటా భాగాలతో GreenPlum పట్టికను నవీకరించడానికి Ab Initio సామర్థ్యాన్ని మేము పరీక్షిస్తాము. గ్రీన్ప్లమ్ టేబుల్ dev42_1_db_usl.TESTING_SUBJ_org_finvalని పరిశీలిద్దాం, దానితో మనం పని చేస్తాము.
దానితో పని చేయడానికి మేము మూడు Ab Initio గ్రాఫ్లను ఉపయోగిస్తాము:
1) Graph Create_test_data.mp – HDFSలో 10 అడ్డు వరుసలతో 6 సమాంతర థ్రెడ్లలో డేటా ఫైల్లను సృష్టిస్తుంది. డేటా యాదృచ్ఛికంగా ఉంది, దాని నిర్మాణం మా పట్టికలోకి చొప్పించడానికి నిర్వహించబడింది
2) గ్రాఫ్ mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset – 10 సమాంతర థ్రెడ్లలో డేటా చొప్పించడాన్ని ప్రారంభించడం ద్వారా MDW గ్రాఫ్ రూపొందించబడింది (గ్రాఫ్ (1) ద్వారా రూపొందించబడిన పరీక్ష డేటా ఉపయోగించబడుతుంది)
3) గ్రాఫ్ mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset – గ్రాఫ్ (10) ద్వారా రూపొందించబడిన తాజాగా స్వీకరించబడిన డేటా (డెల్టా) యొక్క భాగాన్ని ఉపయోగించి 1 సమాంతర థ్రెడ్లలో మా పట్టికను పెంచే నవీకరణ కోసం MDW ద్వారా రూపొందించబడిన గ్రాఫ్
దిగువ స్క్రిప్ట్ని NRT మోడ్లో అమలు చేద్దాం:
- 6 పరీక్ష లైన్లను రూపొందించండి
- ప్రారంభ లోడ్ను 6 పరీక్ష వరుసలను ఖాళీ పట్టికలోకి చొప్పించండి
- పెరుగుతున్న డౌన్లోడ్ 5 సార్లు పునరావృతం చేయండి
- 6 పరీక్ష లైన్లను రూపొందించండి
- పట్టికలో 6 పరీక్ష వరుసల పెంపుదల చొప్పించండి (ఈ సందర్భంలో, Valid_to_ts గడువు సమయం పాత డేటాకు సెట్ చేయబడుతుంది మరియు అదే ప్రాథమిక కీతో ఇటీవలి డేటా చొప్పించబడుతుంది)
ఈ దృశ్యం ఒక నిర్దిష్ట వ్యాపార వ్యవస్థ యొక్క నిజమైన ఆపరేషన్ మోడ్ను అనుకరిస్తుంది - కొత్త డేటాలో చాలా పెద్ద భాగం నిజ సమయంలో కనిపిస్తుంది మరియు వెంటనే GreenPlumలో పోస్తారు.
ఇప్పుడు స్క్రిప్ట్ యొక్క లాగ్ను చూద్దాం:
Create_test_data.input.psetని 2020-06-04 11:49:11కి ప్రారంభించండి
Create_test_data.input.psetని 2020-06-04 11:49:37కి ముగించండి
mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 11:49:37కి ప్రారంభించండి
mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 11:50:42కి ముగించు
Create_test_data.input.psetని 2020-06-04 11:50:42కి ప్రారంభించండి
Create_test_data.input.psetని 2020-06-04 11:51:06కి ముగించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 11:51:06కి ప్రారంభించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 11:53:41కి ముగించు
Create_test_data.input.psetని 2020-06-04 11:53:41కి ప్రారంభించండి
Create_test_data.input.psetని 2020-06-04 11:54:04కి ముగించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 11:54:04కి ప్రారంభించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 11:56:51కి ముగించు
Create_test_data.input.psetని 2020-06-04 11:56:51కి ప్రారంభించండి
Create_test_data.input.psetని 2020-06-04 11:57:14కి ముగించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 11:57:14కి ప్రారంభించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 11:59:55కి ముగించు
Create_test_data.input.psetని 2020-06-04 11:59:55కి ప్రారంభించండి
Create_test_data.input.psetని 2020-06-04 12:00:23కి ముగించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 12:00:23కి ప్రారంభించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 12:03:23కి ముగించు
Create_test_data.input.psetని 2020-06-04 12:03:23కి ప్రారంభించండి
Create_test_data.input.psetని 2020-06-04 12:03:49కి ముగించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 12:03:49కి ప్రారంభించండి
mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.psetని 2020-06-04 12:06:46కి ముగించు
ఇది ఈ చిత్రాన్ని మారుస్తుంది:
గ్రాఫ్
సమయం ప్రారంభించండి
సమయం ముగించు
పొడవు
Create_test_data.input.pset
04.06.2020 X: XX: 11
04.06.2020 X: XX: 11
00:00:26
mdw_load.day_one.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 X: XX: 11
04.06.2020 X: XX: 11
00:01:05
Create_test_data.input.pset
04.06.2020 X: XX: 11
04.06.2020 X: XX: 11
00:00:24
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 X: XX: 11
04.06.2020 X: XX: 11
00:02:35
Create_test_data.input.pset
04.06.2020 X: XX: 11
04.06.2020 X: XX: 11
00:00:23
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 X: XX: 11
04.06.2020 X: XX: 11
00:02:47
Create_test_data.input.pset
04.06.2020 X: XX: 11
04.06.2020 X: XX: 11
00:00:23
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 X: XX: 11
04.06.2020 X: XX: 11
00:02:41
Create_test_data.input.pset
04.06.2020 X: XX: 11
04.06.2020 X: XX: 12
00:00:28
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 X: XX: 12
04.06.2020 X: XX: 12
00:03:00
Create_test_data.input.pset
04.06.2020 X: XX: 12
04.06.2020 X: XX: 12
00:00:26
mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 X: XX: 12
04.06.2020 X: XX: 12
00:02:57
6 ఇంక్రిమెంట్ లైన్లు 000 నిమిషాల్లో ప్రాసెస్ చేయబడటం మనం చూస్తాము, ఇది చాలా వేగంగా ఉంటుంది.
లక్ష్య పట్టికలోని డేటా క్రింది విధంగా పంపిణీ చేయబడింది:
select valid_from_ts, valid_to_ts, count(1), min(sk), max(sk) from dev42_1_db_usl.TESTING_SUBJ_org_finval group by valid_from_ts, valid_to_ts order by 1,2;
మీరు గ్రాఫ్లు ప్రారంభించబడిన సమయాలకు చొప్పించిన డేటా యొక్క అనురూప్యాన్ని చూడవచ్చు.
దీనర్థం మీరు చాలా అధిక పౌనఃపున్యంతో Ab Initioలో GreenPlumలోకి డేటా యొక్క పెరుగుతున్న లోడ్ని అమలు చేయవచ్చు మరియు GreenPlumలో ఈ డేటాను చొప్పించే అధిక వేగాన్ని గమనించవచ్చు. వాస్తవానికి, సెకనుకు ఒకసారి ప్రారంభించడం సాధ్యం కాదు, ఎందుకంటే Ab Initio, ఏదైనా ETL సాధనం వలె, ప్రారంభించినప్పుడు "ప్రారంభించడానికి" సమయం అవసరం.
తీర్మానం
Ab Initio ప్రస్తుతం Sberbankలో యూనిఫైడ్ సెమాంటిక్ డేటా లేయర్ (ESS)ను రూపొందించడానికి ఉపయోగించబడుతుంది. ఈ ప్రాజెక్ట్ వివిధ బ్యాంకింగ్ వ్యాపార సంస్థల స్థితి యొక్క ఏకీకృత సంస్కరణను నిర్మించడాన్ని కలిగి ఉంటుంది. వివిధ మూలాల నుండి సమాచారం వస్తుంది, వీటి ప్రతిరూపాలు హడూప్లో తయారు చేయబడ్డాయి. వ్యాపార అవసరాల ఆధారంగా, డేటా మోడల్ తయారు చేయబడుతుంది మరియు డేటా పరివర్తనలు వివరించబడ్డాయి. Ab Initio సమాచారాన్ని ESNలోకి లోడ్ చేస్తుంది మరియు డౌన్లోడ్ చేయబడిన డేటా వ్యాపారానికి ఆసక్తిని కలిగించడమే కాకుండా, డేటా మార్ట్లను రూపొందించడానికి మూలంగా కూడా పనిచేస్తుంది. అదే సమయంలో, ఉత్పత్తి యొక్క కార్యాచరణ వివిధ సిస్టమ్లను రిసీవర్గా (హైవ్, గ్రీన్ప్లమ్, టెరాడాటా, ఒరాకిల్) ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది, ఇది వ్యాపారానికి అవసరమైన వివిధ ఫార్మాట్లలో డేటాను సులభంగా సిద్ధం చేయడం సాధ్యపడుతుంది.
Ab Initio యొక్క సామర్థ్యాలు విస్తృతంగా ఉన్నాయి, ఉదాహరణకు, చేర్చబడిన MDW ఫ్రేమ్వర్క్ సాంకేతిక మరియు వ్యాపార చారిత్రక డేటాను బాక్స్ వెలుపల నిర్మించడాన్ని సాధ్యం చేస్తుంది. డెవలపర్ల కోసం, Ab Initio వీల్ని మళ్లీ ఆవిష్కరించకుండా, ఇప్పటికే ఉన్న అనేక ఫంక్షనల్ భాగాలను ఉపయోగించడం సాధ్యం చేస్తుంది, ఇవి డేటాతో పని చేస్తున్నప్పుడు అవసరమైన లైబ్రరీలు.
రచయిత Sberbank SberProfi DWH/BigData యొక్క ప్రొఫెషనల్ కమ్యూనిటీలో నిపుణుడు. SberProfi DWH/BigData ప్రొఫెషనల్ కమ్యూనిటీ హడూప్ ఎకోసిస్టమ్, టెరాడేటా, ఒరాకిల్ DB, గ్రీన్ప్లమ్, అలాగే BI టూల్స్ Qlik, SAP BO, Tableau మొదలైన వాటిలో సామర్థ్యాలను అభివృద్ధి చేయడానికి బాధ్యత వహిస్తుంది.
మూలం: www.habr.com