Delta: Iskuxidhka Xogta iyo Platform Kobcinta

Iyadoo la filayo bilowga socodka cusub ee heerka Injineerka Xogta Waxaan diyaarinay tarjumaad waxyaabo xiiso leh.

Delta: Iskuxidhka Xogta iyo Platform Kobcinta

guudmar

Waxaan ka hadli doonaa qaab cadaalad ah oo caan ah kaas oo codsiyadu u isticmaalaan bakhaar xog badan, halkaas oo dukaan kasta loo isticmaalo ujeedooyinkiisa, tusaale ahaan, si loo kaydiyo qaabka xogta (MySQL, iwm.), Bixinta awoodo raadin horumarsan (ElasticSearch,) iwm) .), kaydinta (Memcached, iwm.) iyo kuwa kale. Caadi ahaan, marka la isticmaalayo bakhaar xogta badan, mid ka mid ah wuxuu u shaqeeyaa sida dukaanka ugu weyn iyo kuwa kale sida dukaamada kala duwan. Dhibka kaliya ayaa ah sida la isku waafajin karo bakhaaradan xogta.

Waxaan eegnay dhowr nooc oo kala duwan oo isku dayay in ay xalliyaan dhibaatada isku-dubbaridka dukaamo badan, sida laba-qorista, macaamilada la qaybiyay, iwm. Si kastaba ha ahaatee, hababkani waxay leeyihiin xaddidaadyo muhiim ah marka la eego isticmaalka nolosha dhabta ah, isku hallaynta, iyo dayactirka. Marka lagu daro xogta isku xidhka, codsiyada qaarkood waxay sidoo kale u baahan yihiin inay kobciyaan xogta iyagoo wacaya adeegyada dibadda.

Delta waxaa loo sameeyay si loo xalliyo dhibaatooyinkan. Delta ugu dambeyntii waxay bixisaa goob joogto ah, dhacdo ay wado oo loogu talagalay isku xidhka xogta iyo kobcinta.

Xalalka jira

Laba jeer gelid

Si aad u ilaaliso laba dukaan oo xogta ah inay isku mid yihiin, waxaad isticmaali kartaa laba-qorid, kuwaas oo u qora hal dukaan ka dibna u qoraya kan kale isla markaaba. Duubitaanka kowaad dib ayaa loo tijaabin karaa, kan labaadna waa la soo ridi karaa haddii kan hore uu guul darraystay ka dib markii tirada isku dayga la dhammeeyo. Si kastaba ha ahaatee, labada kayd xogta ayaa laga yaabaa inay noqdaan kuwo aan isku mid ahayn haddii qoraalka loo diro dukaanka labaad uu guuldareysto. Dhibaatadan waxaa sida caadiga ah lagu xalliyaa iyada oo la abuurayo habraaca soo kabashada kaas oo mar mar dib u wareejin kara xogta kaydinta koowaad ilaa labaad, ama samee kaliya haddii kala duwanaansho lagu ogaado xogta.

Dhibaatooyinka:

Samaynta nidaamka soo kabashada waa shaqo gaar ah oo aan dib loo isticmaali karin. Intaa waxaa dheer, xogta u dhaxaysa goobaha kaydinta ayaa ah mid aan la jaan qaadi karin ilaa habka soo celinta uu dhacayo. Xalku wuxuu noqonayaa mid aad u adag haddii wax ka badan laba kayd oo xogta la isticmaalo. Ugu dambeyntii, nidaamka soo celinta wuxuu ku dari karaa culeyska isha xogta asalka ah.

Beddel miiska log

Marka isbeddelku ku dhaco jaantusyo kala duwan (sida gelida, cusboonaysiinta, iyo tirtiridda diiwaanka), diiwaannada isbeddelka ayaa lagu daraa miiska qoraalka iyada oo qayb ka ah isla macaamilka. Dul kale ama nidaam kale ayaa si joogto ah uga codsada dhacdooyinka miiska log oo u qoraa hal ama in ka badan dukaamada xogta, haddii loo baahdo, ka saaraya dhacdooyinka miiska log ka dib markii diiwaanka la xaqiijiyay dhammaan dukaamada.

Dhibaatooyinka:

Habkan waa in loo hirgeliyaa sidii maktabad ahaan, iyo sida ugu habboon iyada oo aan la beddelin koodka codsiga isticmaalaya. Deegaanka polyglot, hirgelinta maktabadda noocan oo kale ah waa inay ku jirtaa luqad kasta oo lagama maarmaan ah, laakiin hubinta joogtaynta shaqeynta iyo habdhaqanka luqadaha waa mid aad u adag.

Dhibaato kale ayaa ku jirta helitaanka isbeddellada schema ee nidaamyada aan taageersanayn isbeddellada qaab-dhismeedka ganacsiga [1] [2], sida MySQL. Sidaa darteed, qaabka wax-ka-beddelka (tusaale, isbeddel schema) iyo macaamil ahaan u duubista miiska isbeddelka mar walba ma shaqeyn doono.

Wax kala iibsiga la qaybiyay

Xawaaladaha la qaybiyey waxa loo isticmaali karaa in lagu kala qaybiyo wax kala beddelashada bakhaarrada xogta kala duwan si hawl-galku u noqdo mid ay ka go'an tahay dhammaan bakhaarrada xogta ee la isticmaalay, ama aan ka go'an mid ka mid ah.

Dhibaatooyinka:

Wax kala iibsiga la qaybiyay ayaa dhibaato aad u weyn ku ah kaydadka xogta kala duwan. Dabeecad ahaan, waxay kaliya ku tiirsanaan karaan hoos udhaca guud ee nidaamyada ku lug leh. Tusaale ahaan, xawaaladaha XA waxay xannibaan fulinta haddii habka codsiga uu ku guuldareysto inta lagu jiro marxaladda diyaarinta. Intaa waxaa dheer, XA ma bixiso ogaanshaha xannibaadda ama ma taageerto qorshayaasha xakamaynta isdhaafsiga ee rajooyinka leh. Intaa waxaa dheer, nidaamyada qaarkood sida ElasticSearch ma taageeraan XA ama nooc kasta oo kala duwan oo wax kala iibsiga. Markaa, hubinta atomity-qorista ee tignoolajiyada kaydinta xogta ee kala duwan ayaa weli ah hawl aad u adag codsiyada [3].

Delta

Delta waxaa loo qaabeeyey si ay wax uga qabato xaddidaadaha xal-is-waafajinta xogta jirta iyo sidoo kale waxay awood u siinaysaa kobcinta xogta duulimaadka. Hadafkayagu waxa uu ahaa in aan ka fogaano dhammaan kakanaantan soo-saareyaasha arjiga si ay si buuxda diiradda u saaraan hirgelinta hawlaha ganacsiga. Marka xigta waxaan sharaxi doonaa "Filimka Raadinta", kiiska dhabta ah ee isticmaalka Netflix's Delta.

Netflix waxay si ballaaran u isticmaashaa qaab dhismeedka microservice, iyo adeeg kasta oo yar wuxuu caadi ahaan u adeegaa hal nooc oo xog ah. Macluumaadka aasaasiga ah ee filimka ayaa ku jira adeeg-yar oo la yiraahdo Adeegga Filimka, iyo xogta la xiriirta sida macluumaadka soo saarayaasha, jilayaasha, iibiyeyaasha, iyo wixii la mid ah waxaa maamula adeegyo yar yar oo kale oo badan (oo kala ah Adeegga Deal, Adeegga Hibada iyo Adeegga Iibka).
Isticmaalayaasha ganacsiga ee Netflix Studios waxay inta badan u baahan yihiin inay ka raadiyaan shuruudaha filimada kala duwan, taas oo ah sababta ay aad muhiim ugu tahay iyaga inay awoodaan inay ka raadiyaan dhammaan xogta filimka la xidhiidha.

Delta ka hor, kooxda baadhista filimku waxay u baahdeen inay xogta ka soo saaraan adeegya badan oo yar yar ka hor intaanay tilmaamin xogta filimka. Intaa waxaa dheer, kooxdu waxay ahayd inay horumariyaan nidaam si xilliyo ah u cusbooneysiin doona tusaha raadinta iyagoo codsanaya isbeddelada adeegyada kale ee yaryar, xitaa haddii aysan jirin wax isbeddel ah oo dhan. Nidaamkani wuxuu si dhakhso ah u noqday mid adag oo ay adagtahay in la ilaaliyo.

Delta: Iskuxidhka Xogta iyo Platform Kobcinta
Jaantuska 1. Habka cod bixinta ee Delta
Ka dib markii la isticmaalo Delta, nidaamka waxaa loo fududeeyay nidaamka ay wadaan dhacdada sida ku cad shaxanka soo socda. Dhacdooyinka CDC (Beddel-Data-Qabashada) waxaa loo diraa mawduucyada Keystone Kafka iyadoo la adeegsanayo Delta-Connector. Codsiga Delta ee la dhisay iyadoo la adeegsanayo Qaabdhismeedka Habaynta qulqulka Delta (oo ku salaysan Flink) wuxuu ka helaa dhacdooyinka CDC mawduuc, wuxuu kobciyaa iyaga oo wacaya adeegaha yar yar ee kale, oo ugu dambeyntii u gudbiya xogta tayeysan tusmada raadinta Elasticsearch. Geedi socodka oo dhami waxa uu dhacaa ku dhawaad ​​wakhtiga dhabta ah, taasi waa, isla marka isbeddelada lagu sameeyo bakhaarka xogta, tusmooyinka raadinta waa la cusboonaysiiyaa.

Delta: Iskuxidhka Xogta iyo Platform Kobcinta
Jaantus 2. Dhuumaha xogta iyadoo la isticmaalayo Delta
Qaybaha soo socda, waxaan ku tilmaami doonaa hawlgalka Delta-Connector, kaas oo ku xira kaydinta oo daabacaadda dhacdooyinka CDC ee lakabka gaadiidka, taas oo ah kaabayaasha gudbinta xogta ee wakhtiga dhabta ah ee marin u ah dhacdooyinka CDC mawduucyada Kafka. Iyo dhamaadka aad, waxaan ka hadli doonaa oo ku saabsan qaabka habaynta socodka Delta, kaas oo horumarinta codsiga u isticmaali karaan habaynta xogta iyo macquulnimada kobcinta.

CDC (Beddel-Xogta-qabsashada)

Waxaan sameynay adeeg CDC ah oo la yiraahdo Delta-Connector, kaas oo qaban kara isbeddelada go'an ee kaydka xogta wakhtiga dhabta ah oo u qori kara qulqulka. Isbeddellada waqtiga-dhabta ah waxaa laga soo qaatay kaydinta kaydinta iyo kaydinta kaydka. Qashin qubka ayaa la isticmaalaa sababtoo ah diiwaannada wax kala iibsiga badanaa ma kaydiyaan taariikhda isbeddelada oo dhan. Isbeddellada waxaa sida caadiga ah loo soo koobaa sida dhacdooyinka Delta, markaa qaataha kama werwero halka isbeddelku ka yimaado.

Delta-Connector waxay taageertaa dhowr astaamood oo dheeri ah sida:

  • Awood u leh in ay qoraan xogta wax soo saarka gaarka ah ee dhaaftay Kafka.
  • Awoodda lagu kicinayo qashinka gacanta wakhti kasta ee dhammaan miisaska, miis gaar ah, ama furayaasha aasaasiga ah ee gaarka ah.
  • Qashin-qubka waxaa lagu soo celin karaa qaybo, markaa looma baahna in mar kale dib loo bilaabo haddii ay dhacdo guuldarro.
  • Looma baahna in la dhigo qufulyada miisaska, taas oo aad muhiim u ah si loo hubiyo in kaydka xogta qoritaanka gaadiidka aanu waligiis xannibin adeeggayaga.
  • Helitaanka sare ee xaaladaha soo noqnoqda ee AWS Availability Zones awgeed.

Waxaan hadda taageernaa MySQL iyo Postgres, oo ay ku jiraan geynta AWS RDS iyo Aurora. Waxaan sidoo kale taageernaa Cassandra (multi-master). Waxaad ka heli kartaa faahfaahin dheeraad ah oo ku saabsan Delta-Connector halkan boostada blog.

Kafka iyo lakabka gaadiidka

Lakabka gaadiidka dhacdada Delta waxa lagu dhisay adeegga fariimaha ee madal dhagaxa rukunka.

Taariikh ahaan, ku dhejinta Netflix waxaa loo hagaajiyay helitaan halkii ay ka ahaan lahayd cimri dheer (eeg hoos). maqaal hore). Ka-ganacsigu waxa uu ahaa xog-urursi la'aanta xogta dilaaliinta ee xaaladaha kala duwan. Tusaale ahaan, doorasho hogaamiye aan nadiif ahayn waxay mas'uul ka tahay qaataha inay suurtagal tahay inuu yeesho dhacdooyin nuqul ah ama lumay.

Delta, waxaan rabnay dammaanad adkeysi xoogan si loo xaqiijiyo gaarsiinta dhacdooyinka CDC dukaamada la soo saaray. Ujeedadan awgeed, waxaan u soo jeedinay kooxda Kafka oo si gaar ah loo nashqadeeyay sida shay heerka koowaad ah. Waxaad ka eegi kartaa qaar ka mid ah dejimaha dilaaliinta shaxda hoose:

Delta: Iskuxidhka Xogta iyo Platform Kobcinta

Kutlada Keystone Kafka, doorasho hogaamiye aan nadiif ahayn sida caadiga ah waxaa lagu daraa si loo hubiyo helitaanka daabacaha. Tani waxay keeni kartaa luminta fariinta haddii nuqul aan la midaysan loo doorto hogaamiyaha. Helitaanka sare ee cusub ee kooxda Kafka, ikhtiyaarka doorasho hogaamiye aan nadiif ahayn damiyay si looga hortago luminta fariinta

Waxaan sidoo kale kordhinay qodobka taranka laga bilaabo 2 ilaa 3 iyo koobabka insync ugu yar 1 ilaa 2. Daabacayaasha wax u qoraya kooxdan waxay u baahan yihiin acks dhammaan kuwa kale, iyagoo hubinaya in 2 ka mid ah 3 nuqul ay haystaan ​​farriimaha ugu dambeeya ee daabacuhu soo diro.

Marka tusaale ahaan dilaalku joojiyo, tusaale cusub ayaa beddelaya kii hore. Si kastaba ha ahaatee, dilaaliyaha cusub wuxuu u baahan doonaa inuu la qabsado nuqullada aan la wada socon, kaas oo qaadan kara saacado badan. Si loo dhimo wakhtiga soo kabashada ee muuqaalkan, waxaanu bilownay isticmaalka kaydinta xogta block (Amazon Elastic Block Store) halkii aan ka isticmaali lahayn saxanadaha dilaalka ah ee deegaanka. Marka tusaale cusub uu beddelo tusaale dullaal la joojiyay, waxay ku dhejinaysaa mugga EBS ee tusaalaha la joojiyay oo wuxuu bilaabayaa inuu la qabsado farriimaha cusub. Habkani waxa uu yareynayaa wakhtiga dib u celinta saacadaha ilaa daqiiqadaha sababtoo ah tusaalaha cusub uma baahna in uu ka soo kabsado xaalad madhan. Guud ahaan, kaydinta kala duwan iyo wareegyada nolosha dilaalku waxay si weyn u yareeyaan saamaynta beddelka dilaal

Si loo sii kordhiyo dammaanadda gaarsiinta xogta, waxaan isticmaalnay nidaamka raadraaca fariinta si loo ogaado luminta fariinta xaalad kasta oo aad u daran (tusaale ahaan, saacada kala furfurida hogaamiyaha qaybta).

Qaabka Habaynta Socodka

Lakabka wax qabad ee Delta wuxuu ka dul dhisan yahay madal Netflix SpaaS, kaas oo bixiya is dhexgalka Apache Flink iyo nidaamka deegaanka ee Netflix. Madalku waxa uu bixiyaa is-dhexgal isticmaale kaas oo maamula daad-gureynta shaqooyinka Flink iyo abaabulka kooxaha Flink ee dusha sare ee mawjadda maaraynta weelka Titus. Interface-ku waxa kale oo uu maareeyaa habaynta shaqada waxana uu u ogolaadaa isticmaalayaasha in ay isbedel qaabayntu si firfircooni leh u sameeyaan iyaga oo aan dib u soo uruurin shaqooyinka Flink.

Delta waxay bixisaa qaab habayn socodka qulqulka oo ku salaysan Flink iyo SpaaS ee adeegsada qoraal ku salaysan DSL (Luqadda Gaarka ah ee Domain) si loo soo saaro faahfaahin farsamo. Tusaale ahaan, si loo qeexo tillaabada dhacdooyinka lagu kobcin doono iyadoo la wacayo adeegyada dibadda, isticmaalayaashu waxay u baahan yihiin inay qoraan DSL-ka soo socda, qaab-dhismeedkuna wuxuu abuuri doonaa qaab ku salaysan, kaas oo uu fulin doono Flink.

Delta: Iskuxidhka Xogta iyo Platform Kobcinta
Jaantuska 3. Tusaalaha kobcinta DSL ee Delta

Habka habaynta kaliya ma dhimayo qalooca waxbarashada, laakiin sidoo kale waxa uu bixiyaa sifooyin habaynta socodka caadiga ah sida kala-saarid, qaabayn, iyo dabacsanaan iyo adkeysi si loo xalliyo mashaakilaadka hawlgalka ee caadiga ah.

Qaab dhismeedka Delta Stream Processing wuxuu ka kooban yahay laba qaybood oo muhiim ah, moduleka DSL & API iyo moduleka Runtime. Moduleka DSL & API waxa uu bixiyaa DSL iyo UDF (User-Defined-Function) API-yada si ay isticmaalayaashu u qoraan caqli-gal u gaar ah (sida shaandhaynta ama beddelka). Habka Runtime-ku wuxuu bixiyaa hirgalinta baarser DSL oo dhista matalaadda gudaha ee tillaabooyinka habaynta ee moodooyinka DAG. Qaybta fulinta waxay tarjumeysaa moodooyinka DAG si ay u bilaabaan weedhaha Flink ee dhabta ah oo ugu dambeyntii socodsiiyaan codsiga Flink. Naqshadeynta qaab-dhismeedka waxaa lagu muujiyey shaxanka soo socda.

Delta: Iskuxidhka Xogta iyo Platform Kobcinta
Jaantuska 4. Nashqada Qaabdhismeedka Habaynta Dheefta Delta

Habkani wuxuu leeyahay faa'iidooyin dhowr ah:

  • Isticmaalayaashu waxay diiradda saari karaan caqli-galkooda ganacsi iyaga oo aan u baahnayn in ay dhexgalaan waxyaabaha gaarka ah ee Flink ama qaabka SpaaS.
  • Hagaajinta waxaa loo samayn karaa si hufan oo loogu talagalay isticmaalayaasha, khaladaadkana waa la hagaajin karaa iyada oo aan loo baahnayn wax isbeddel ah oo lagu sameeyo koodka isticmaalaha (UDF).
  • Khibrada codsiga Delta waa loo fududeeyay isticmaaleyaasha sababtoo ah madalku waxay bixisaa dabacsanaan iyo adkeysi ka baxsan sanduuqa waxayna ururiyaan cabbirro faahfaahsan oo kala duwan oo loo isticmaali karo digniinaha.

Isticmaalka wax soo saarka

Delta waxa ay ku jirtay wax soo saar muddo ka badan hal sano waxana ay door muhiim ah ka ciyaartaa codsiyo badan oo Netflix Studio ah. Waxay ka caawisay kooxaha fulinta kiisaska isticmaalka sida tusmaynta raadinta, kaydinta xogta, iyo socodka shaqada ee ay wado dhacdo. Hoos waxaa ku yaal dulmar guud oo ku saabsan qaab dhismeedka heerka sare ee goobta Delta.

Delta: Iskuxidhka Xogta iyo Platform Kobcinta
Jaantuska 5. Nashqada heerka sare ee Delta.

Mahadnaq

Waxaan jeclaan lahayn inaan u mahadcelino dadka soo socda ee ku lug lahaa abuurista iyo horumarinta Delta ee Netflix: Allen Wang, Charles Zhao, Jaebin Yoon, Josh Snyder, Kasturi Chatterjee, Mark Cho, Olof Johansson, Piyush Goyal, Prashanth Ramdas, Raghuram Onti Srinivasan, Sandeep Gupta, Steven Wu, Tharanga Gamaethige, Yun Wang iyo Zhenzhong Xu.

Ilaha

  1. dev.mysql.com/doc/refman/5.7/en/implicit-commit.html
  2. dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html
  3. Martin Kleppmann, Alastair R. Beresford, Boerge Svingen: habaynta dhacdo onlayn ah. Bulsho ACM 62 (5): 43-49 (2019). DOI: doi.org/10.1145/3312527

Isku qor webinar bilaash ah"Qalabka Dhisida Xogta ee Kaydinta Redshift Amazon."

Source: www.habr.com

Add a comment