Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

Noong nakaraan, nahaharap kami sa tanong ng pagpili ng ETL tool para sa pagtatrabaho sa Big Data. Ang dating ginamit na Informatica BDM na solusyon ay hindi nababagay sa amin dahil sa limitadong paggana. Ang paggamit nito ay nabawasan sa isang balangkas para sa paglulunsad ng mga spark-submit command. Walang maraming mga analogue sa merkado na, sa prinsipyo, ay may kakayahang magtrabaho kasama ang dami ng data na kinakaharap namin araw-araw. Sa huli ay pinili namin ang Ab Initio. Sa panahon ng mga pilot demonstration, nagpakita ang produkto ng napakataas na bilis ng pagproseso ng data. Halos walang impormasyon tungkol sa Ab Initio sa Russian, kaya nagpasya kaming pag-usapan ang aming karanasan sa HabrΓ©.

Ang Ab Initio ay may maraming mga klasiko at hindi pangkaraniwang pagbabago, ang code nito ay maaaring palawigin gamit ang sarili nitong wikang PDL. Para sa isang maliit na negosyo, ang gayong makapangyarihang tool ay malamang na maging labis, at karamihan sa mga kakayahan nito ay maaaring mahal at hindi nagamit. Ngunit kung ang iyong sukat ay malapit sa Sberov's, kung gayon ang Ab Initio ay maaaring maging kawili-wili sa iyo.

Tinutulungan nito ang isang negosyo na makaipon ng kaalaman sa buong mundo at bumuo ng isang ecosystem, at isang developer na mapabuti ang kanyang mga kasanayan sa ETL, pagbutihin ang kanyang kaalaman sa shell, nagbibigay ng pagkakataong makabisado ang wikang PDL, nagbibigay ng visual na larawan ng mga proseso ng paglo-load, at pinapasimple ang pag-unlad. dahil sa kasaganaan ng mga functional na bahagi.

Sa post na ito ay magsasalita ako tungkol sa mga kakayahan ng Ab Initio at magbibigay ng mga comparative na katangian ng trabaho nito sa Hive at GreenPlum.

  • Paglalarawan ng balangkas ng MDW at magtrabaho sa pagpapasadya nito para sa GreenPlum
  • Ab Initio paghahambing ng pagganap sa pagitan ng Hive at GreenPlum
  • Paggawa ng Ab Initio sa GreenPlum sa Near Real Time mode


Ang pag-andar ng produktong ito ay napakalawak at nangangailangan ng maraming oras upang mag-aral. Gayunpaman, sa wastong mga kasanayan sa trabaho at tamang mga setting ng pagganap, ang mga resulta ng pagproseso ng data ay lubhang kahanga-hanga. Ang paggamit ng Ab Initio para sa isang developer ay maaaring magbigay ng isang kawili-wiling karanasan. Ito ay isang bagong pananaw sa pag-develop ng ETL, isang hybrid sa pagitan ng isang visual na kapaligiran at pag-download ng pag-unlad sa isang wikang tulad ng script.

Binubuo ng mga negosyo ang kanilang mga ecosystem at mas madaling gamitin ang tool na ito kaysa dati. Sa Ab Initio, maaari kang mag-ipon ng kaalaman tungkol sa iyong kasalukuyang negosyo at gamitin ang kaalamang ito para palawakin ang mga luma at magbukas ng mga bagong negosyo. Kasama sa mga alternatibo sa Ab Initio ang mga visual development environment na Informatica BDM at non-visual development environment na Apache Spark.

Paglalarawan ng Ab Initio

Ang Ab Initio, tulad ng iba pang mga tool sa ETL, ay isang koleksyon ng mga produkto.

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

Ang Ab Initio GDE (Graphical Development Environment) ay isang kapaligiran para sa developer kung saan kino-configure niya ang mga pagbabagong-anyo ng data at ikinokonekta ang mga ito sa mga daloy ng data sa anyo ng mga arrow. Sa kasong ito, ang ganitong hanay ng mga pagbabago ay tinatawag na isang graph:

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

Ang input at output na mga koneksyon ng mga functional na bahagi ay mga port at naglalaman ng mga field na kinakalkula sa loob ng mga pagbabago. Ang ilang mga graph na konektado ng mga daloy sa anyo ng mga arrow sa pagkakasunud-sunod ng kanilang pagpapatupad ay tinatawag na isang plano.

Mayroong ilang daang functional na bahagi, na marami. Marami sa kanila ay lubos na dalubhasa. Ang mga kakayahan ng mga klasikong pagbabago sa Ab Initio ay mas malawak kaysa sa iba pang mga tool sa ETL. Halimbawa, ang Sumali ay may maraming mga output. Bilang karagdagan sa resulta ng pagkonekta ng mga dataset, maaari kang makakuha ng mga output record ng mga input dataset na ang mga key ay hindi maikonekta. Maaari ka ring makakuha ng mga pagtanggi, mga error at isang log ng pagpapatakbo ng pagbabagong-anyo, na mababasa sa parehong column bilang isang text file at naproseso kasama ng iba pang mga pagbabago:

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

O, halimbawa, maaari mong gawin ang isang data receiver sa anyo ng isang talahanayan at basahin ang data mula dito sa parehong column.

May mga orihinal na pagbabago. Halimbawa, ang Scan transformation ay may functionality na katulad ng analytical functions. Mayroong mga pagbabagong may sariling paliwanag na mga pangalan: Lumikha ng Data, Magbasa ng Excel, Normalize, Pagbukud-bukurin sa loob ng Mga Grupo, Patakbuhin ang Programa, Patakbuhin ang SQL, Sumali sa DB, atbp. Ang mga graph ay maaaring gumamit ng mga parameter ng run-time, kabilang ang posibilidad ng pagpasa ng mga parameter mula sa o sa ang operating system. Ang mga file na may handa na set ng mga parameter na ipinasa sa graph ay tinatawag na mga set ng parameter (pset).

Gaya ng inaasahan, ang Ab Initio GDE ay may sariling repository na tinatawag na EME (Enterprise Meta Environment). May pagkakataon ang mga developer na magtrabaho kasama ang mga lokal na bersyon ng code at suriin ang kanilang mga development sa central repository.

Posible, sa panahon ng pagpapatupad o pagkatapos ng pagpapatupad ng graph, na mag-click sa anumang daloy na nagkokonekta sa pagbabagong-anyo at tingnan ang data na dumaan sa pagitan ng mga pagbabagong ito:

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

Posible ring mag-click sa anumang stream at makita ang mga detalye ng pagsubaybay - kung gaano karaming mga parallel ang ginawa ng pagbabago, kung gaano karaming mga linya at byte ang na-load sa kung alin sa mga parallel:

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

Posibleng hatiin ang execution ng graph sa mga phase at markahan na ang ilang pagbabago ay kailangang gawin muna (sa zero phase), ang mga susunod sa unang phase, ang mga susunod sa ikalawang phase, atbp.

Para sa bawat pagbabagong-anyo, maaari mong piliin ang tinatawag na layout (kung saan ito isasagawa): nang walang mga parallel o kahanay na mga thread, ang bilang nito ay maaaring matukoy. Kasabay nito, ang mga pansamantalang file na nililikha ng Ab Initio kapag tumatakbo ang mga pagbabago ay maaaring mailagay sa server file system at sa HDFS.

Sa bawat pagbabago, batay sa default na template, maaari kang lumikha ng iyong sariling script sa PDL, na medyo parang shell.

Sa PDL, maaari mong i-extend ang functionality ng mga pagbabagong-anyo at, sa partikular, maaari mong dynamic (sa runtime) bumuo ng mga arbitrary na fragment ng code depende sa mga parameter ng runtime.

Ang Ab Initio ay mayroon ding mahusay na binuo na pagsasama sa OS sa pamamagitan ng shell. Sa partikular, ang Sberbank ay gumagamit ng linux ksh. Maaari kang makipagpalitan ng mga variable sa shell at gamitin ang mga ito bilang mga parameter ng graph. Maaari mong tawagan ang pagpapatupad ng mga Ab Initio graph mula sa shell at pangasiwaan ang Ab Initio.

Bilang karagdagan sa Ab Initio GDE, maraming iba pang mga produkto ang kasama sa paghahatid. Mayroong sariling Co>Operation System na may claim na tinatawag na operating system. Mayroong Control>Center kung saan maaari mong iiskedyul at subaybayan ang mga daloy ng pag-download. May mga produkto para sa paggawa ng pag-unlad sa isang mas primitive na antas kaysa sa pinapayagan ng Ab Initio GDE.

Paglalarawan ng balangkas ng MDW at magtrabaho sa pagpapasadya nito para sa GreenPlum

Kasama ng mga produkto nito, ibinibigay ng vendor ang produktong MDW (Metadata Driven Warehouse), na isang graph configurator na idinisenyo upang tumulong sa mga tipikal na gawain ng pagpo-populate sa mga data warehouse o data vault.

Naglalaman ito ng mga custom (project-specific) metadata parser at ready-made code generators sa labas ng kahon.

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum
Bilang input, tumatanggap ang MDW ng modelo ng data, configuration file para sa pag-set up ng koneksyon sa isang database (Oracle, Teradata o Hive) at ilang iba pang setting. Ang bahaging partikular sa proyekto, halimbawa, ay nagde-deploy ng modelo sa isang database. Ang out-of-the-box na bahagi ng produkto ay bumubuo ng mga graph at configuration file para sa kanila sa pamamagitan ng paglo-load ng data sa mga talahanayan ng modelo. Sa kasong ito, ang mga graph (at mga pset) ay nilikha para sa ilang mga mode ng pagsisimula at incremental na gawain sa pag-update ng mga entity.

Sa mga kaso ng Hive at RDBMS, ang iba't ibang mga graph ay nabuo para sa pagsisimula at incremental na pag-update ng data.

Sa kaso ng Hive, ang papasok na data ng delta ay konektado sa pamamagitan ng Ab Initio Sumali sa data na nasa talahanayan bago ang pag-update. Ang mga data loader sa MDW (parehong nasa Hive at RDBMS) ay hindi lamang naglalagay ng bagong data mula sa delta, ngunit isinasara din ang mga panahon ng kaugnayan ng data na ang mga pangunahing key ay nakatanggap ng delta. Bilang karagdagan, kailangan mong muling isulat ang hindi nabagong bahagi ng data. Ngunit ito ay kailangang gawin dahil ang Hive ay walang mga operasyon sa pagtanggal o pag-update.

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

Sa kaso ng RDBMS, ang mga graph para sa incremental na pag-update ng data ay mukhang mas optimal, dahil ang RDBMS ay may mga tunay na kakayahan sa pag-update.

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

Ang natanggap na delta ay na-load sa isang intermediate table sa database. Pagkatapos nito, ang delta ay konektado sa data na nasa talahanayan bago ang pag-update. At ito ay ginagawa gamit ang SQL gamit ang isang nabuong SQL query. Susunod, gamit ang mga SQL command na delete+insert, ang bagong data mula sa delta ay ipinapasok sa target na talahanayan at ang mga panahon ng kaugnayan ng data na ang mga pangunahing key ay nakatanggap ng delta ay sarado.
Hindi na kailangang muling isulat ang hindi nabagong data.

Kaya dumating kami sa konklusyon na sa kaso ng Hive, MDW ay kailangang pumunta upang muling isulat ang buong talahanayan dahil ang Hive ay walang pag-update ng function. At walang mas mahusay kaysa sa ganap na muling pagsulat ng data kapag naimbento ang pag-update. Sa kaso ng RDBMS, sa kabaligtaran, nalaman ng mga tagalikha ng produkto na kinakailangang ipagkatiwala ang koneksyon at pag-update ng mga talahanayan sa paggamit ng SQL.

Para sa isang proyekto sa Sberbank, lumikha kami ng bago, magagamit muli na pagpapatupad ng isang database loader para sa GreenPlum. Ginawa ito batay sa bersyon na nabuo ng MDW para sa Teradata. Ang Teradata, at hindi ang Oracle, ang pinakamalapit at pinakamahusay para dito, dahil... ay isa ring MPP system. Ang mga pamamaraan ng pagtatrabaho, pati na rin ang syntax, ng Teradata at GreenPlum ay naging magkatulad.

Ang mga halimbawa ng MDW-kritikal na pagkakaiba sa pagitan ng iba't ibang RDBMS ay ang mga sumusunod. Sa GreenPlum, hindi tulad ng Teradata, kapag lumilikha ng mga talahanayan kailangan mong magsulat ng isang sugnay

distributed by

Sumulat si Teradata:

delete <table> all

, at sa GreenPlum nagsusulat sila

delete from <table>

Sa Oracle, para sa mga layunin ng pag-optimize ay nagsusulat sila

delete from t where rowid in (<соСдинСниС t с Π΄Π΅Π»ΡŒΡ‚ΠΎΠΉ>)

, at sumulat ang Teradata at GreenPlum

delete from t where exists (select * from delta where delta.pk=t.pk)

Napansin din namin na para gumana ang Ab Initio sa GreenPlum, kinailangang i-install ang kliyente ng GreenPlum sa lahat ng node ng cluster ng Ab Initio. Ito ay dahil nakakonekta kami sa GreenPlum nang sabay-sabay mula sa lahat ng mga node sa aming cluster. At para magkaparehas ang pagbabasa mula sa GreenPlum at ang bawat parallel na Ab Initio thread ay magbasa ng sarili nitong bahagi ng data mula sa GreenPlum, kinailangan naming maglagay ng construction na naiintindihan ni Ab Initio sa seksyong "kung saan" ng mga query sa SQL

where ABLOCAL()

at tukuyin ang halaga ng konstruksiyon na ito sa pamamagitan ng pagtukoy sa pagbabasa ng parameter mula sa database ng pagbabago

ablocal_expr=Β«string_concat("mod(t.", string_filter_out("{$TABLE_KEY}","{}"), ",", (decimal(3))(number_of_partitions()),")=", (decimal(3))(this_partition()))Β»

, na nag-compile sa isang bagay tulad ng

mod(sk,10)=3

, ibig sabihin. kailangan mong i-prompt ang GreenPlum ng isang tahasang filter para sa bawat partition. Para sa iba pang mga database (Teradata, Oracle), maaaring awtomatikong gawin ng Ab Initio ang parallelization na ito.

Ab Initio paghahambing ng pagganap sa pagitan ng Hive at GreenPlum

Nagsagawa ng eksperimento ang Sberbank upang ihambing ang pagganap ng mga graph na nabuo ng MDW kaugnay sa Hive at kaugnay ng GreenPlum. Bilang bahagi ng eksperimento, sa kaso ng Hive mayroong 5 node sa parehong cluster bilang Ab Initio, at sa kaso ng GreenPlum mayroong 4 na node sa isang hiwalay na cluster. Yung. Nagkaroon ng ilang hardware ang Hive kaysa sa GreenPlum.

Isinaalang-alang namin ang dalawang pares ng mga graph na gumaganap ng parehong gawain ng pag-update ng data sa Hive at GreenPlum. Kasabay nito, ang mga graph na nabuo ng MDW configurator ay inilunsad:

  • paunang load + incremental load ng random na nabuong data sa isang talahanayan ng Hive
  • paunang load + incremental load ng random na nabuong data sa parehong talahanayan ng GreenPlum

Sa parehong mga kaso (Hive at GreenPlum) nagpatakbo sila ng mga pag-upload sa 10 parallel na thread sa parehong Ab Initio cluster. Nag-save ang Ab Initio ng intermediate data para sa mga kalkulasyon sa HDFS (sa mga tuntunin ng Ab Initio, ginamit ang layout ng MFS gamit ang HDFS). Ang isang linya ng random na nabuong data ay sumakop ng 200 byte sa parehong mga kaso.

Ang resulta ay ganito:

Pugad:

Paunang paglo-load sa Hive

Mga row na ipinasok
+6 000 000
+60 000 000
+600 000 000

Tagal ng pagsisimula
mga pag-download sa ilang segundo
41
203
1 601

Incremental loading sa Hive

Bilang ng mga row na available sa
target na talahanayan sa simula ng eksperimento
+6 000 000
+60 000 000
+600 000 000

Bilang ng mga linya ng delta na inilapat sa
target na talahanayan sa panahon ng eksperimento
+6 000 000
+6 000 000
+6 000 000

Tagal ng incremental
mga pag-download sa ilang segundo
88
299
2 541

GreenPlum:

Paunang paglo-load sa GreenPlum

Mga row na ipinasok
+6 000 000
+60 000 000
+600 000 000

Tagal ng pagsisimula
mga pag-download sa ilang segundo
72
360
3 631

Incremental loading sa GreenPlum

Bilang ng mga row na available sa
target na talahanayan sa simula ng eksperimento
+6 000 000
+60 000 000
+600 000 000

Bilang ng mga linya ng delta na inilapat sa
target na talahanayan sa panahon ng eksperimento
+6 000 000
+6 000 000
+6 000 000

Tagal ng incremental
mga pag-download sa ilang segundo
159
199
321

Nakikita namin na ang bilis ng paunang paglo-load sa parehong Hive at GreenPlum ay nakadepende sa dami ng data at, para sa mas magandang hardware, ito ay bahagyang mas mabilis para sa Hive kaysa sa GreenPlum.

Ang incremental na pag-load sa Hive ay linear din na nakadepende sa dami ng dati nang na-load na data na available sa target na talahanayan at medyo mabagal habang lumalaki ang volume. Ito ay sanhi ng pangangailangan na muling isulat nang buo ang target na talahanayan. Nangangahulugan ito na ang paglalapat ng maliliit na pagbabago sa malalaking talahanayan ay hindi isang magandang kaso ng paggamit para sa Hive.

Ang incremental na pag-load sa GreenPlum ay mahinang nakadepende sa dami ng dati nang na-load na data na available sa target na talahanayan at mabilis na nagpapatuloy. Nangyari ito salamat sa SQL Joins at sa arkitektura ng GreenPlum, na nagpapahintulot sa pagtanggal ng operasyon.

Kaya, idinaragdag ng GreenPlum ang delta gamit ang delete+insert na paraan, ngunit walang mga operasyon sa pagtanggal o pag-update ang Hive, kaya napilitang muling isulat ang buong data array sa panahon ng incremental na pag-update. Ang paghahambing ng mga cell na naka-highlight sa bold ay pinaka-nakikita, dahil tumutugma ito sa pinakakaraniwang opsyon para sa paggamit ng mga pag-download na masinsinang mapagkukunan. Nakita namin na tinalo ng GreenPlum ang Hive sa pagsusulit na ito ng 8 beses.

Paggawa ng Ab Initio sa GreenPlum sa Near Real Time mode

Sa eksperimentong ito, susubukin namin ang kakayahan ni Ab Initio na i-update ang talahanayan ng GreenPlum na may random na nabuong mga chunks ng data nang malapit sa real time. Isaalang-alang natin ang talahanayan ng GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval, kung saan kami gagana.

Gagamitin namin ang tatlong Ab Initio graph para magtrabaho dito:

1) Graph Create_test_data.mp – lumilikha ng mga file ng data sa HDFS na may 10 row sa 6 parallel na thread. Ang data ay random, ang istraktura nito ay nakaayos para sa pagpasok sa aming talahanayan

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

2) Graph mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset – Nakabuo ng graph ang MDW sa pamamagitan ng pagsisimula ng pagpasok ng data sa aming talahanayan sa 10 parallel na thread (ginagamit ang data ng pagsubok na nabuo ng graph (1))

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

3) Graph mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset – isang graph na nabuo ng MDW para sa incremental na pag-update ng aming table sa 10 parallel thread gamit ang isang bahagi ng bagong natanggap na data (delta) na nabuo ng graph (1)

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum

Patakbuhin natin ang script sa ibaba sa NRT mode:

  • bumuo ng 6 linya ng pagsubok
  • magsagawa ng paunang pagkarga magpasok ng 6 test row sa isang bakanteng mesa
  • ulitin ang incremental download ng 5 beses
    • bumuo ng 6 linya ng pagsubok
    • magsagawa ng incremental insert ng 6 test row sa talahanayan (sa kasong ito, ang valid_to_ts expiration time ay nakatakda sa lumang data at mas kamakailang data na may parehong pangunahing key ay ipinasok)

Ginagaya ng sitwasyong ito ang mode ng totoong operasyon ng isang partikular na sistema ng negosyo - isang medyo malaking bahagi ng bagong data ang lilitaw sa real time at agad na ibinuhos sa GreenPlum.

Ngayon tingnan natin ang log ng script:

Simulan ang Create_test_data.input.pset sa 2020-06-04 11:49:11
Tapusin ang Create_test_data.input.pset sa 2020-06-04 11:49:37
Simulan ang mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 11:49:37
Tapusin ang mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 11:50:42
Simulan ang Create_test_data.input.pset sa 2020-06-04 11:50:42
Tapusin ang Create_test_data.input.pset sa 2020-06-04 11:51:06
Simulan ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 11:51:06
Tapusin ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 11:53:41
Simulan ang Create_test_data.input.pset sa 2020-06-04 11:53:41
Tapusin ang Create_test_data.input.pset sa 2020-06-04 11:54:04
Simulan ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 11:54:04
Tapusin ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 11:56:51
Simulan ang Create_test_data.input.pset sa 2020-06-04 11:56:51
Tapusin ang Create_test_data.input.pset sa 2020-06-04 11:57:14
Simulan ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 11:57:14
Tapusin ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 11:59:55
Simulan ang Create_test_data.input.pset sa 2020-06-04 11:59:55
Tapusin ang Create_test_data.input.pset sa 2020-06-04 12:00:23
Simulan ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 12:00:23
Tapusin ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 12:03:23
Simulan ang Create_test_data.input.pset sa 2020-06-04 12:03:23
Tapusin ang Create_test_data.input.pset sa 2020-06-04 12:03:49
Simulan ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 12:03:49
Tapusin ang mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset sa 2020-06-04 12:06:46

Lumalabas ang larawang ito:

Talangguhit
Magsimula ng oras
Oras ng pagtatapos
Haba

Create_test_data.input.pset
04.06.2020 11: 49: 11
04.06.2020 11: 49: 37
00:00:26

mdw_load.day_one.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 49: 37
04.06.2020 11: 50: 42
00:01:05

Create_test_data.input.pset
04.06.2020 11: 50: 42
04.06.2020 11: 51: 06
00:00:24

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 51: 06
04.06.2020 11: 53: 41
00:02:35

Create_test_data.input.pset
04.06.2020 11: 53: 41
04.06.2020 11: 54: 04
00:00:23

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 54: 04
04.06.2020 11: 56: 51
00:02:47

Create_test_data.input.pset
04.06.2020 11: 56: 51
04.06.2020 11: 57: 14
00:00:23

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 11: 57: 14
04.06.2020 11: 59: 55
00:02:41

Create_test_data.input.pset
04.06.2020 11: 59: 55
04.06.2020 12: 00: 23
00:00:28

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12: 00: 23
04.06.2020 12: 03: 23
00:03:00

Create_test_data.input.pset
04.06.2020 12: 03: 23
04.06.2020 12: 03: 49
00:00:26

mdw_load.regular.current.
dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12: 03: 49
04.06.2020 12: 06: 46
00:02:57

Nakikita namin na 6 increment lines ang naproseso sa loob ng 000 minuto, na medyo mabilis.
Ang data sa target na talahanayan ay naging ibinahagi tulad ng sumusunod:

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;

Kapag mayroon kang Sber scales. Paggamit ng Ab Initio kasama ang Hive at GreenPlum
Maaari mong makita ang mga sulat ng ipinasok na data sa mga oras na inilunsad ang mga graph.
Nangangahulugan ito na maaari mong patakbuhin ang incremental na pag-load ng data sa GreenPlum sa Ab Initio na may napakataas na dalas at obserbahan ang isang mataas na bilis ng pagpasok ng data na ito sa GreenPlum. Siyempre, hindi posibleng ilunsad ang isang beses sa isang segundo, dahil ang Ab Initio, tulad ng anumang tool ng ETL, ay nangangailangan ng oras upang "magsimula" kapag inilunsad.

Konklusyon

Ang Ab Initio ay kasalukuyang ginagamit sa Sberbank upang bumuo ng Unified Semantic Data Layer (ESS). Kasama sa proyektong ito ang pagbuo ng pinag-isang bersyon ng estado ng iba't ibang entidad ng negosyo sa pagbabangko. Ang impormasyon ay nagmula sa iba't ibang mga mapagkukunan, ang mga replika nito ay inihanda sa Hadoop. Batay sa mga pangangailangan ng negosyo, isang modelo ng data ang inihanda at inilarawan ang mga pagbabagong-anyo ng data. Ang Ab Initio ay naglo-load ng impormasyon sa ESN at ang na-download na data ay hindi lamang interesado sa negosyo mismo, ngunit nagsisilbi rin bilang isang mapagkukunan para sa pagbuo ng mga data mart. Kasabay nito, ang pag-andar ng produkto ay nagbibigay-daan sa iyo na gumamit ng iba't ibang mga sistema bilang isang receiver (Hive, Greenplum, Teradata, Oracle), na ginagawang posible na madaling maghanda ng data para sa isang negosyo sa iba't ibang mga format na kinakailangan nito.

Malawak ang mga kakayahan ng Ab Initio; halimbawa, ginagawang posible ng kasamang balangkas ng MDW na bumuo ng teknikal at makasaysayang data ng negosyo sa labas ng kahon. Para sa mga developer, ginagawang posible ng Ab Initio na hindi muling likhain ang gulong, ngunit gumamit ng maraming umiiral nang functional na bahagi, na mahalagang mga aklatan na kailangan kapag nagtatrabaho sa data.

Ang may-akda ay isang dalubhasa sa propesyonal na komunidad ng Sberbank SberProfi DWH/BigData. Ang propesyonal na komunidad ng SberProfi DWH/BigData ay responsable para sa pagbuo ng mga kakayahan sa mga lugar tulad ng Hadoop ecosystem, Teradata, Oracle DB, GreenPlum, pati na rin ang mga tool ng BI na Qlik, SAP BO, Tableau, atbp.

Pinagmulan: www.habr.com

Magdagdag ng komento