Որոշ ժամանակ առաջ մենք բախվեցինք Big Data-ի հետ աշխատելու համար ETL գործիք ընտրելու հարցին: Նախկինում օգտագործված Informatica BDM լուծումը մեզ չէր համապատասխանում սահմանափակ ֆունկցիոնալության պատճառով: Դրա օգտագործումը կրճատվել է որպես կայծ-ներկայացնել հրամաններ գործարկելու շրջանակ: Շուկայում շատ անալոգներ չկային, որոնք սկզբունքորեն կարող էին աշխատել տվյալների այն ծավալի հետ, որոնց հետ մենք առնչվում ենք ամեն օր: Ի վերջո մենք ընտրեցինք Ab Initio-ն։ Փորձնական ցուցադրությունների ժամանակ արտադրանքը ցույց տվեց տվյալների մշակման շատ բարձր արագություն: Աբ Ինիտիոյի մասին ռուսերեն գրեթե ոչ մի տեղեկություն չկա, ուստի որոշեցինք մեր փորձի մասին խոսել Habré-ում։
Ab Initio-ն ունի շատ դասական և անսովոր փոխակերպումներ, որոնց կոդը կարող է ընդլայնվել՝ օգտագործելով իր սեփական PDL լեզուն: Փոքր բիզնեսի համար նման հզոր գործիքը, ամենայն հավանականությամբ, չափազանց մեծ կլինի, և դրա հնարավորությունների մեծ մասը կարող է թանկ և չօգտագործված լինել: Բայց եթե ձեր սանդղակը մոտ է Սբերովին, ապա Աբ Ինիտիոն կարող է ձեզ հետաքրքիր լինել:
Այն օգնում է բիզնեսին գլոբալ գիտելիք կուտակել և զարգացնել էկոհամակարգը, իսկ մշակողին՝ բարելավելու իր հմտությունները ETL-ում, բարելավել իր գիտելիքները shell-ում, հնարավորություն է տալիս տիրապետել PDL լեզվին, տալիս է բեռնման գործընթացների տեսողական պատկեր և հեշտացնում է զարգացումը: ֆունկցիոնալ բաղադրիչների առատության շնորհիվ:
Այս գրառման մեջ ես կխոսեմ Ab Initio-ի հնարավորությունների մասին և կներկայացնեմ նրա աշխատանքի համեմատական բնութագրերը Hive-ի և GreenPlum-ի հետ:
- MDW շրջանակի նկարագրությունը և աշխատանք GreenPlum-ի համար դրա հարմարեցման վրա
- Ab Initio կատարողականի համեմատություն Hive-ի և GreenPlum-ի միջև
- Աշխատանքային Ab Initio GreenPlum-ի հետ մոտ իրական ժամանակի ռեժիմում
Այս ապրանքի ֆունկցիոնալությունը շատ լայն է և շատ ժամանակ է պահանջում ուսումնասիրելու համար: Այնուամենայնիվ, պատշաճ աշխատանքային հմտությունների և կատարողականի ճիշտ պարամետրերի առկայության դեպքում տվյալների մշակման արդյունքները շատ տպավորիչ են: Ab Initio-ն ծրագրավորողի համար օգտագործելը կարող է հետաքրքիր փորձառություն ապահովել: Սա ETL-ի մշակման նոր մոտեցում է, որը հիբրիդ է տեսողական միջավայրի և ներբեռնման մշակման միջև սցենարի նման լեզվով:
Բիզնեսները զարգացնում են իրենց էկոհամակարգերը, և այս գործիքն առավել քան երբևէ հարմար է: Ab Initio-ի միջոցով դուք կարող եք կուտակել գիտելիքներ ձեր ընթացիկ բիզնեսի մասին և օգտագործել այդ գիտելիքները հին ու նոր բիզնեսներ բացելու համար: Ab Initio-ի այլընտրանքները ներառում են տեսողական զարգացման միջավայրեր Informatica BDM և ոչ տեսողական զարգացման միջավայրեր Apache Spark-ը:
Ab Initio-ի նկարագրությունը
Ab Initio-ն, ինչպես մյուս ETL գործիքները, ապրանքների հավաքածու է:
Ab Initio GDE (Գրաֆիկական զարգացման միջավայր) մշակողի համար միջավայր է, որտեղ նա կարգավորում է տվյալների փոխակերպումները և դրանք կապում է տվյալների հոսքերի հետ՝ սլաքների տեսքով: Այս դեպքում փոխակերպումների նման հավաքածուն կոչվում է գրաֆիկ.
Ֆունկցիոնալ բաղադրիչների մուտքային և ելքային կապերը պորտեր են և պարունակում են դաշտեր, որոնք հաշվարկված են փոխակերպումների շրջանակներում: Մի քանի գրաֆիկներ, որոնք կապված են հոսքերի միջոցով սլաքների տեսքով դրանց կատարման հերթականությամբ, կոչվում են պլան։
Կան մի քանի հարյուր ֆունկցիոնալ բաղադրիչներ, ինչը շատ է։ Նրանցից շատերը բարձր մասնագիտացված են: Ab Initio-ում դասական փոխակերպումների հնարավորություններն ավելի լայն են, քան այլ ETL գործիքներում: Օրինակ, Join-ն ունի բազմաթիվ ելքեր: Ի լրումն տվյալների հավաքածուների միացման արդյունքի, դուք կարող եք ստանալ մուտքային տվյալների հավաքածուների ելքային գրառումներ, որոնց բանալիները հնարավոր չէ միացնել: Կարող եք նաև ստանալ մերժումներ, սխալներ և վերափոխման գործողության մատյան, որը կարելի է կարդալ նույն սյունակում, ինչպես տեքստային ֆայլը և մշակվել այլ փոխակերպումների հետ.
Կամ, օրինակ, դուք կարող եք նյութականացնել տվյալների ստացողը աղյուսակի տեսքով և դրանից տվյալներ կարդալ նույն սյունակում:
Կան օրիգինալ վերափոխումներ. Օրինակ, Scan-ի փոխակերպումն ունի վերլուծական գործառույթների նման ֆունկցիոնալություն: Կան փոխակերպումներ ինքնաբացատրվող անուններով. Ստեղծել Տվյալներ, Կարդալ Excel, Նորմալացնել, Դասավորել Խմբերում, Գործարկել Ծրագիրը, Գործարկել SQL, Միանալ DB-ով և այլն: Գրաֆիկները կարող են օգտագործել գործարկման ժամանակի պարամետրերը, ներառյալ պարամետրերը փոխանցելու հնարավորությունը կամ օպերացիոն համակարգը: Գրաֆիկին փոխանցված պարամետրերի պատրաստի հավաքածու ունեցող ֆայլերը կոչվում են պարամետրերի հավաքածուներ (psets):
Ինչպես և սպասվում էր, Ab Initio GDE-ն ունի իր սեփական պահեստը, որը կոչվում է EME (Enterprise Meta Environment): Մշակողները հնարավորություն ունեն աշխատելու կոդի տեղական տարբերակների հետ և ստուգել դրանց զարգացումները կենտրոնական պահեստում:
Հնարավոր է կատարման ընթացքում կամ գրաֆիկը կատարելուց հետո սեղմել փոխակերպումը միացնող ցանկացած հոսքի վրա և դիտել այս փոխակերպումների միջև անցած տվյալները.
Հնարավոր է նաև սեղմել ցանկացած հոսքի վրա և տեսնել հետևելու մանրամասները. քանի զուգահեռ է աշխատել փոխակերպումը, քանի տող և բայթ է բեռնվել զուգահեռներից որում.
Կարելի է գրաֆիկի կատարումը բաժանել փուլերի և նշել, որ որոշ փոխակերպումներ պետք է կատարվեն նախ (զրոյական փուլում), հաջորդները՝ առաջին փուլում, հաջորդները՝ երկրորդ փուլում և այլն։
Յուրաքանչյուր փոխակերպման համար կարող եք ընտրել այսպես կոչված դասավորությունը (որտեղ այն կկատարվի) առանց զուգահեռների կամ զուգահեռ թելերի, որոնց թիվը կարելի է նշել։ Միևնույն ժամանակ, ժամանակավոր ֆայլերը, որոնք Ab Initio-ն ստեղծում է փոխակերպումների գործարկման ժամանակ, կարող են տեղադրվել ինչպես սերվերի ֆայլային համակարգում, այնպես էլ HDFS-ում:
Յուրաքանչյուր փոխակերպման դեպքում, հիմնվելով լռելյայն ձևանմուշի վրա, դուք կարող եք ստեղծել ձեր սեփական սցենարը PDL-ով, որը մի փոքր նման է կեղևի:
PDL-ի միջոցով դուք կարող եք ընդլայնել փոխակերպումների ֆունկցիոնալությունը և, մասնավորապես, կարող եք դինամիկ կերպով (աշխատանքի ժամանակ) ստեղծել կամայական կոդի բեկորներ՝ կախված գործարկման ժամանակի պարամետրերից:
Ab Initio-ն ունի նաև լավ զարգացած ինտեգրում ՕՀ-ի հետ shell-ի միջոցով: Մասնավորապես, Սբերբանկը օգտագործում է linux ksh: Դուք կարող եք փոխել փոփոխականները shell-ի հետ և օգտագործել դրանք որպես գրաֆիկի պարամետրեր: Դուք կարող եք զանգահարել Ab Initio գրաֆիկների կատարումը shell-ից և կառավարել Ab Initio-ն:
Բացի Ab Initio GDE-ից, առաքման մեջ ներառված են բազմաթիվ այլ ապրանքներ: Գոյություն ունի իր սեփական Co>Operation System-ը, որը կոչվելու է օպերացիոն համակարգ: Կա Control>Center, որտեղ դուք կարող եք պլանավորել և վերահսկել ներբեռնման հոսքերը: Կան ապրանքներ ավելի պարզունակ մակարդակով զարգացում կատարելու համար, քան թույլ է տալիս Ab Initio GDE-ն:
MDW շրջանակի նկարագրությունը և աշխատանք GreenPlum-ի համար դրա հարմարեցման վրա
Իր արտադրանքի հետ մեկտեղ վաճառողը մատակարարում է MDW (Metadata Driven Warehouse) արտադրանքը, որը գրաֆիկական կոնֆիգուրատոր է, որը նախատեսված է տվյալների պահեստների կամ տվյալների պահոցների համալրման բնորոշ առաջադրանքների համար:
Այն պարունակում է հատուկ (նախագծին հատուկ) մետատվյալների վերլուծիչներ և պատրաստի կոդերի գեներատորներ առանց տուփի:
Որպես մուտքագրում, MDW-ն ստանում է տվյալների մոդել, կոնֆիգուրացիայի ֆայլ տվյալների բազայի հետ կապ հաստատելու համար (Oracle, Teradata կամ Hive) և որոշ այլ կարգավորումներ: Ծրագրին հատուկ մասը, օրինակ, տեղակայում է մոդելը տվյալների բազայում: Արտադրանքի արտապատկերված մասը ստեղծում է գրաֆիկներ և կազմաձևման ֆայլեր նրանց համար՝ բեռնելով տվյալները մոդելային աղյուսակներում: Այս դեպքում, գրաֆիկները (և կեղծերը) ստեղծվում են մի քանի եղանակների սկզբնավորման և արդիականացման աշխատանքների համար:
Hive-ի և RDBMS-ի դեպքում տարբեր գրաֆիկներ են ստեղծվում սկզբնավորման և տվյալների հավելյալ թարմացումների համար:
Hive-ի դեպքում մուտքային դելտա տվյալները միացված են Ab Initio Join-ի միջոցով այն տվյալների հետ, որոնք եղել են աղյուսակում մինչ թարմացումը: Տվյալների բեռնիչները MDW-ում (ինչպես Hive-ում, այնպես էլ RDBMS-ում) ոչ միայն տեղադրում են նոր տվյալներ դելտայից, այլև փակում են այն տվյալների համապատասխանության ժամանակահատվածները, որոնց հիմնական բանալիները ստացել են դելտան: Բացի այդ, դուք պետք է վերաշարադրեք տվյալների անփոփոխ մասը: Բայց դա պետք է արվի, քանի որ Hive-ը չունի ջնջման կամ թարմացման գործողություններ:
RDBMS-ի դեպքում տվյալների հավելյալ թարմացման գրաֆիկներն ավելի օպտիմալ տեսք ունեն, քանի որ RDBMS-ն իրական թարմացման հնարավորություններ ունի:
Ստացված դելտան բեռնվում է տվյալների բազայի միջանկյալ աղյուսակում: Դրանից հետո դելտան միացված է այն տվյալներին, որոնք եղել են աղյուսակում մինչև թարմացումը։ Եվ դա արվում է SQL-ի միջոցով՝ օգտագործելով ստեղծված SQL հարցումը: Այնուհետև, օգտագործելով SQL հրամանները delete+insert, դելտայից նոր տվյալներ տեղադրվում են թիրախային աղյուսակում և փակվում են այն տվյալների համապատասխանության ժամանակահատվածները, որոնց հիմնական բանալիները ստացել են դելտան:
Անփոփոխ տվյալները վերաշարադրելու կարիք չկա։
Այսպիսով, մենք եկանք այն եզրակացության, որ Hive-ի դեպքում MDW-ն պետք է գնա ամբողջ աղյուսակը վերաշարադրելու, քանի որ Hive-ը չունի թարմացման գործառույթ: Եվ ոչինչ ավելի լավ չէ, քան տվյալները ամբողջությամբ վերաշարադրելը, երբ թարմացումը հորինված է: RDBMS-ի դեպքում, ընդհակառակը, ապրանքի ստեղծողները անհրաժեշտ են գտել աղյուսակների միացումն ու թարմացումը վստահել SQL-ի օգտագործմանը։
Սբերբանկում նախագծի համար մենք ստեղծեցինք GreenPlum-ի տվյալների բազայի բեռնիչի նոր, բազմակի օգտագործման իրականացում: Սա արվել է այն տարբերակի հիման վրա, որը MDW-ն ստեղծում է Teradata-ի համար: Դա Teradata-ն էր, և ոչ թե Oracle-ը, որն ամենամոտն ու լավագույնն էր դրա համար, քանի որ... նաև MPP համակարգ է: Teradata-ի և GreenPlum-ի աշխատանքային մեթոդները, ինչպես նաև շարահյուսությունը, պարզվեց, որ նման են:
Տարբեր RDBMS-ների միջև MDW-կրիտիկական տարբերությունների օրինակները հետևյալն են. GreenPlum-ում, ի տարբերություն Teradata-ի, աղյուսակներ ստեղծելիս անհրաժեշտ է գրել կետ
distributed by
Teradata-ն գրում է.
delete <table> all
, իսկ GreenPlum-ում գրում են
delete from <table>
Oracle-ում օպտիմալացման նպատակով գրում են
delete from t where rowid in (<соединение t с дельтой>)
, իսկ Teradata-ն ու GreenPlum-ը գրում են
delete from t where exists (select * from delta where delta.pk=t.pk)
Մենք նաև նշում ենք, որ որպեսզի Ab Initio-ն աշխատի GreenPlum-ի հետ, անհրաժեշտ էր տեղադրել GreenPlum հաճախորդը Ab Initio կլաստերի բոլոր հանգույցների վրա: Դա պայմանավորված է նրանով, որ մենք միաժամանակ միացանք GreenPlum-ին մեր կլաստերի բոլոր հանգույցներից: Եվ որպեսզի GreenPlum-ից կարդալը լինի զուգահեռ, և յուրաքանչյուր զուգահեռ Ab Initio շարանը կարդա GreenPlum-ի տվյալների իր բաժինը, մենք պետք է տեղադրեինք Ab Initio-ի կողմից հասկանալի կառուցվածքը SQL հարցումների «where» բաժնում:
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 կատարողականի համեմատություն Hive-ի և GreenPlum-ի միջև
Sberbank-ը փորձարկում է անցկացրել՝ համեմատելու MDW-ի կողմից ստեղծված գրաֆիկների աշխատանքը Hive-ի և GreenPlum-ի հետ կապված: Փորձի շրջանակներում Hive-ի դեպքում կային 5 հանգույցներ նույն կլաստերի վրա, ինչ Ab Initio-ն, իսկ GreenPlum-ի դեպքում՝ առանձին կլաստերի վրա՝ 4 հանգույց։ Նրանք. Hive-ը որոշ ապարատային առավելություն ուներ GreenPlum-ի նկատմամբ:
Մենք դիտարկեցինք երկու զույգ գրաֆիկներ, որոնք կատարում էին նույն առաջադրանքը՝ թարմացնելով տվյալները Hive-ում և GreenPlum-ում: Միևնույն ժամանակ գործարկվեցին MDW կոնֆիգուրատորի կողմից ստեղծված գրաֆիկները.
- սկզբնական բեռնվածություն + պատահականորեն ստեղծվող տվյալների հավելյալ բեռնում Hive աղյուսակում
- սկզբնական բեռնվածություն + պատահականորեն գեներացվող տվյալների աճող բեռը նույն GreenPlum աղյուսակում
Երկու դեպքում էլ (Hive և GreenPlum) նրանք վերբեռնում էին 10 զուգահեռ շղթաներ նույն Ab Initio կլաստերի վրա: Ab Initio-ն պահպանեց միջանկյալ տվյալները HDFS-ում հաշվարկների համար (Ab Initio-ի առումով, MFS-ի դասավորությունը HDFS-ով օգտագործվեց): Պատահականորեն ստեղծված տվյալների մեկ տողը երկու դեպքում էլ զբաղեցնում էր 200 բայթ:
Արդյունքը այսպիսին էր.
Փեթակ:
Նախնական բեռնում Hive-ում
Տողերը տեղադրվեցին
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
GreenPlum:
Նախնական բեռնում GreenPlum-ում
Տողերը տեղադրվեցին
6 000 000
60 000 000
600 000 000
Նախնականացման տևողությունը
ներբեռնումներ վայրկյանների ընթացքում
72
360
3 631
Աճող բեռնում GreenPlum-ում
Հասանելի տողերի քանակը
թիրախային աղյուսակը փորձի սկզբում
6 000 000
60 000 000
600 000 000
Դելտա գծերի թիվը, որոնց վրա կիրառվում է
փորձարկման ընթացքում թիրախային աղյուսակը
6 000 000
6 000 000
6 000 000
Տևողությունը աճող
ներբեռնումներ վայրկյանների ընթացքում
159
199
321
Մենք տեսնում ենք, որ սկզբնական բեռնման արագությունը ինչպես Hive-ում, այնպես էլ GreenPlum-ում գծայինորեն կախված է տվյալների քանակից և, ավելի լավ սարքավորման նկատառումներով, այն մի փոքր ավելի արագ է Hive-ի համար, քան GreenPlum-ի համար:
Hive-ում աճող բեռնումը նույնպես գծայինորեն կախված է թիրախային աղյուսակում առկա նախկինում բեռնված տվյալների ծավալից և ընթանում է բավականին դանդաղ, քանի որ ծավալը մեծանում է: Դա պայմանավորված է թիրախային աղյուսակը ամբողջությամբ վերագրելու անհրաժեշտությամբ: Սա նշանակում է, որ հսկայական աղյուսակների վրա փոքր փոփոխություններ կիրառելը լավ օգտագործման դեպք չէ Hive-ի համար:
GreenPlum-ում աճող բեռնումը թույլ կախված է թիրախային աղյուսակում առկա նախկինում բեռնված տվյալների ծավալից և բավականին արագ է ընթանում: Դա տեղի է ունեցել SQL Joins-ի և GreenPlum ճարտարապետության շնորհիվ, որը թույլ է տալիս ջնջել գործողությունը։
Այսպիսով, GreenPlum-ն ավելացնում է դելտան՝ օգտագործելով delete+insert մեթոդը, սակայն Hive-ը չունի ջնջման կամ թարմացման գործողություններ, ուստի ամբողջ տվյալների զանգվածը ստիպված է եղել ամբողջությամբ վերագրվել աստիճանական թարմացման ժամանակ: Թավով ընդգծված բջիջների համեմատությունն առավել բացահայտ է, քանի որ այն համապատասխանում է ռեսուրսների ինտենսիվ ներբեռնումների օգտագործման ամենատարածված տարբերակին: Մենք տեսնում ենք, որ GreenPlum-ը այս թեստում 8 անգամ հաղթեց Hive-ին:
Աշխատանքային Ab Initio GreenPlum-ի հետ մոտ իրական ժամանակի ռեժիմում
Այս փորձի ընթացքում մենք կփորձարկենք Ab Initio-ի կարողությունը թարմացնել GreenPlum աղյուսակը պատահականորեն ստեղծված տվյալների կտորներով գրեթե իրական ժամանակում: Դիտարկենք GreenPlum աղյուսակը dev42_1_db_usl.TESTING_SUBJ_org_finval, որի հետ մենք կաշխատենք:
Դրա հետ աշխատելու համար մենք կօգտագործենք երեք Ab Initio գրաֆիկներ.
1) Graph Create_test_data.mp – ստեղծում է տվյալների ֆայլեր HDFS-ում՝ 10 տողերով 6 զուգահեռ թելերով: Տվյալները պատահական են, դրանց կառուցվածքը կազմակերպված է մեր աղյուսակում տեղադրելու համար
2) Graph mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset – MDW-ն ստեղծվել է գրաֆիկ՝ նախաստորագրելով տվյալների ներդիրը մեր աղյուսակում 10 զուգահեռ շղթաներով (օգտագործվում են (1) գրաֆիկով ստեղծված թեստային տվյալները)
3) Գրաֆիկ mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset – գրաֆիկ, որը ստեղծվել է MDW-ի կողմից՝ 10 զուգահեռ շղթաներով մեր աղյուսակի աստիճանական թարմացման համար՝ օգտագործելով թարմ ստացված տվյալների (դելտա) գեներացված գրաֆիկը (1)
Եկեք գործարկենք ստորև նշված սցենարը 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 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
Մենք տեսնում ենք, որ 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;
Դուք կարող եք տեսնել տեղադրված տվյալների համապատասխանությունը գրաֆիկների գործարկման ժամանակներին:
Սա նշանակում է, որ դուք կարող եք տվյալների աստիճանական բեռնում GreenPlum-ում Ab Initio-ում շատ բարձր հաճախականությամբ և դիտել այս տվյալները GreenPlum-ում տեղադրելու մեծ արագություն: Իհարկե, հնարավոր չի լինի գործարկել վայրկյանը մեկ, քանի որ Ab Initio-ն, ինչպես ցանկացած ETL գործիք, ժամանակ է պահանջում գործարկվելիս «գործարկելու համար»:
Ամփոփում
Ab Initio-ն ներկայումս օգտագործվում է Սբերբանկում՝ միասնական իմաստային տվյալների շերտ (ESS) կառուցելու համար: Այս նախագիծը ներառում է տարբեր բանկային տնտեսվարող սուբյեկտների վիճակի միասնական տարբերակի ստեղծում: Տեղեկությունները գալիս են տարբեր աղբյուրներից, որոնց կրկնօրինակները պատրաստվում են Hadoop-ում։ Ելնելով բիզնեսի կարիքներից՝ պատրաստվում է տվյալների մոդել և նկարագրվում են տվյալների փոխակերպումները: Ab Initio-ն բեռնում է տեղեկատվությունը ESN-ում, և ներբեռնված տվյալները ոչ միայն հետաքրքրում են բիզնեսին, այլ նաև ծառայում են որպես տվյալների ստեղծման աղբյուր: Միևնույն ժամանակ, արտադրանքի ֆունկցիոնալությունը թույլ է տալիս որպես ընդունիչ օգտագործել տարբեր համակարգեր (Hive, Greenplum, Teradata, Oracle), ինչը հնարավորություն է տալիս հեշտությամբ պատրաստել տվյալներ բիզնեսի համար տարբեր ձևաչափերով:
Ab Initio-ի հնարավորությունները լայն են, օրինակ՝ ներառված MDW շրջանակը հնարավորություն է տալիս ստեղծել տեխնիկական և բիզնես պատմական տվյալներ առանց տուփի: Ծրագրավորողների համար Ab Initio-ն հնարավորություն է տալիս ոչ թե նորից հայտնագործել անիվը, այլ օգտագործել բազմաթիվ գոյություն ունեցող ֆունկցիոնալ բաղադրիչներ, որոնք, ըստ էության, գրադարաններ են, որոնք անհրաժեշտ են տվյալների հետ աշխատելիս:
Հեղինակը Sberbank SberProfi DWH/BigData-ի մասնագիտական համայնքի փորձագետ է: SberProfi DWH/BigData մասնագիտական համայնքը պատասխանատու է այնպիսի ոլորտներում կարողությունների զարգացման համար, ինչպիսիք են Hadoop էկոհամակարգը, Teradata, Oracle DB, GreenPlum, ինչպես նաև BI գործիքներ Qlik, SAP BO, Tableau և այլն:
Source: www.habr.com