Delta: Mmekọrịta data na Platform nkwalite

N'ịtụ anya mmalite nke ọhụụ ọhụrụ na ọnụego Onye injinia data Anyị akwadola ntụgharị asụsụ nke ihe na-atọ ụtọ.

Delta: Mmekọrịta data na Platform nkwalite

nnyocha

Anyị ga-ekwu maka usoro a ma ama nke ngwa na-eji ọtụtụ ụlọ ahịa data, ebe a na-eji ụlọ ahịa ọ bụla maka ebumnuche nke ya, dịka ọmụmaatụ, iji chekwaa ụdị data nke canonical (MySQL, wdg), na-enye ike ọchụchọ dị elu (ElasticSearch, wdg). wdg) .), caching (Memcached, wdg) na ndị ọzọ. Dịka, mgbe ị na-eji ọtụtụ ụlọ ahịa data, otu n'ime ha na-arụ ọrụ dị ka ụlọ ahịa izizi yana ndị ọzọ dị ka ụlọ ahịa ewepụtara. Naanị nsogbu bụ otu esi emekọrịta ụlọ ahịa data ndị a.

Anyị lere anya n'ọtụtụ usoro dị iche iche nke gbalịrị iji dozie nsogbu nke ịmekọrịta ọtụtụ ụlọ ahịa, dị ka ederede abụọ, azụmahịa kesara, wdg. Otú ọ dị, ụzọ ndị a nwere oke oke n'ihe gbasara iji ndụ eme ihe n'ezie, ntụkwasị obi na nhazi. Na mgbakwunye na mmekọrịta data, ụfọdụ ngwa chọkwara ime ka data baa ụba site na ịkpọ ọrụ mpụga.

E mepụtara Delta iji dozie nsogbu ndị a. Delta n'ikpeazụ na-enye usoro ihe omume na-agbanwe agbanwe maka ịmekọrịta data na ịba ụba.

Ihe ngwọta dị adị

Ntinye ugboro abụọ

Iji dobe ụlọ ahịa data abụọ na mmekọrịta, ị nwere ike iji ederede abụọ, nke na-ede n'otu ụlọ ahịa wee degara nke ọzọ akwụkwọ ozugbo emechara. Enwere ike ịnwagharị ndekọ nke mbụ na nke abụọ nwere ike ibibi ma ọ bụrụ na nke mbụ daa mgbe ọnụọgụ nke mbọ gwụchara. Agbanyeghị, ụlọ ahịa data abụọ ahụ nwere ike ghara ịmekọrịta ma ọ bụrụ na idegara ụlọ ahịa nke abụọ edeghị. A na-edozi nsogbu a site na ịmepụta usoro mgbake nke nwere ike ịnyeghachi data site na nchekwa mbụ gaa na nke abụọ, ma ọ bụ mee ya naanị ma ọ bụrụ na achọpụtara ọdịiche dị na data ahụ.

Nsogbu:

Ịme usoro mgbake bụ ọrụ a kapịrị ọnụ nke a na-apụghị iji mee ihe ọzọ. Na mgbakwunye, data n'etiti ebe nchekwa na-anọgide na-emekọrịta ihe ruo mgbe usoro iweghachi na-ewere ọnọdụ. Ihe ngwọta na-aghọwanye mgbagwoju anya ma ọ bụrụ na ejiri ihe karịrị ụlọ ahịa data abụọ mee ihe. N'ikpeazụ, usoro iweghachi nwere ike ịgbakwunye ibu na isi iyi data mbụ.

Gbanwee tebụl ndekọ

Mgbe mgbanwe mere na otu tebụl (dị ka ntinye, imelite na ihichapụ ndekọ), a na-agbakwunye ndekọ mgbanwe na tebụl ndekọ dịka akụkụ nke otu azụmahịa ahụ. Eriri ọzọ ma ọ bụ usoro na-arịọ mgbe niile ihe omume site na tebụl log wee dee ha n'otu ụlọ ahịa data ma ọ bụ karịa, ọ bụrụ na ọ dị mkpa, wepụ ihe omume na tebụl ndekọ mgbe ụlọ ahịa niile kwadoro ndekọ ahụ.

Nsogbu:

Ekwesịrị itinye ụkpụrụ a dị ka ụlọ akwụkwọ ọbá akwụkwọ, na nke kachasị mma na-agbanweghị koodu ngwa nke na-eji ya. Na gburugburu polyglot, mmejuputa nke ụlọ akwụkwọ dị otú ahụ kwesịrị ịdị n'asụsụ ọ bụla dị mkpa, mana ịhụ na arụmọrụ na omume na-agbanwe agbanwe n'asụsụ dị iche iche siri ike.

Nsogbu ọzọ dị na ịnweta mgbanwe schema na sistemụ anaghị akwado mgbanwe atụmatụ azụmahịa [1] [2], dị ka MySQL. Ya mere, usoro nke ime mgbanwe (dịka ọmụmaatụ, mgbanwe nhazi) na ịdekọ ya na tebụl mgbanwe agaghị arụ ọrụ mgbe niile.

Azụmahịa ekesara

Enwere ike iji azụmahịa kesara kewaa azụmahịa n'ofe ọtụtụ ụlọ ahịa data dị iche iche ka ọrụ ahụ wee tinye aka na ụlọ ahịa data niile ejiri, ma ọ bụ ghara itinye aka na nke ọ bụla n'ime ha.

Nsogbu:

Azụmahịa ekesa bụ nnukwu nsogbu maka ụlọ ahịa data dị iche iche. Site na okike ha, ha nwere ike ịdabere naanị na ọnụ ala kacha ala nke sistemụ metụtara. Dịka ọmụmaatụ, azụmahịa XA na-egbochi ogbugbu ma ọ bụrụ na usoro ngwa ahụ dara n'oge usoro nkwadebe. Na mgbakwunye, XA anaghị ewepụta nchọpụta mkpọchi ma ọ bụ kwado atụmatụ njikwa concurrency nwere nchekwube. Na mgbakwunye, ụfọdụ sistemụ dị ka ElasticSearch anaghị akwado XA ma ọ bụ ụdị azụmahịa ọ bụla ọzọ dị iche iche. Ya mere, ijide n'aka ide atomity na teknụzụ nchekwa data dị iche iche ka bụ ọrụ siri ike maka ngwa [3].

Delta

Emebere Delta iji lebara njedebe nke ngwọta mmekọrịta data dị adị ma na-enyekwa aka ịba ụba data na-efe efe. Ebumnobi anyị bụ ịwepụ ihe mgbagwoju anya ndị a niile pụọ na ndị nrụpụta ngwa ka ha nwee ike ilekwasị anya n'ụzọ zuru ezu n'imejuputa ọrụ azụmahịa. Ọzọ, anyị ga na-akọwa "Chọọ ihe nkiri", ihe eji eme ihe maka Netflix's Delta.

Netflix na-eji ụlọ ọrụ microservice ọtụtụ ebe, na microservice ọ bụla na-eje ozi otu ụdị data. Ozi ndị bụ isi gbasara ihe nkiri ahụ dị na microservice akpọrọ Movie Service, yana data metụtara dị ka ozi gbasara ndị na-emepụta ihe, ndị na-eme ihe nkiri, ndị na-ere ahịa na ihe ndị ọzọ na-ejikwa ọtụtụ microservices ndị ọzọ (ya bụ Deal Service, Talent Service na Vendor Service).
Ndị ọrụ azụmaahịa na Netflix Studios na-achọkarị ịchọ n'ofe usoro ihe nkiri dị iche iche, nke mere na ọ dị ezigbo mkpa ka ha nwee ike ịchọ n'ofe data metụtara ihe nkiri.

Tupu Delta, ndị otu na-achọ ihe nkiri kwesịrị ịdọrọ data sitere na ọtụtụ microservices tupu ha akọwapụta data ihe nkiri ahụ. Na mgbakwunye, otu ahụ ga-emepụta usoro nke ga-emelite ndepụta ọchụchọ site na ịrịọ mgbanwe site na microservices ndị ọzọ, ọbụlagodi na enweghị mgbanwe ọ bụla. Usoro a ngwa ngwa ghọrọ mgbagwoju na siri ike ịnọgide na-enwe.

Delta: Mmekọrịta data na Platform nkwalite
Ọgụgụ 1. Usoro ntuli aka na Delta
Mgbe ejiri Delta, a na-eme ka usoro ahụ dị mfe ka ọ bụrụ usoro ihe omume dị ka egosiri na foto a. A na-eziga ihe omume CDC (Change-Data-Capture) na isiokwu Keystone Kafka site na iji Delta-Connector. Ngwa Delta wuru site na iji Delta Stream Processing Framework (dabere na Flink) na-enweta mmemme CDC site na isiokwu, na-eme ka ha baa ọgaranya site n'ịkpọ microservices ndị ọzọ, na n'ikpeazụ nyefee data bara ụba na nchọta ọchụchọ na Elasticsearch. Usoro a niile na-ewe ihe fọrọ nke nta ka ọ bụrụ ozugbo, ya bụ, ozugbo agbanwere mgbanwe na ụlọ nkwakọba ihe data, a na-emelite ndepụta ọchụchọ.

Delta: Mmekọrịta data na Platform nkwalite
Ọgụgụ 2. Data pipeline na-eji Delta
Na ngalaba ndị na-esonụ, anyị ga-akọwa ọrụ nke Delta-Connector, nke na-ejikọta na nchekwa ma na-ebipụta CDC ihe omume na-ebufe oyi akwa, nke bụ ezigbo oge data nnyefe akụrụngwa na-eduga CDC omume na Kafka isiokwu. Na njedebe, anyị ga-ekwu maka usoro nhazi usoro iyi Delta, nke ndị nrụpụta ngwa nwere ike iji maka nhazi data na mgbagha ịba ụba.

CDC (Mgbanwe-Njide data)

Anyị emepụtala ọrụ CDC nke a na-akpọ Delta-Connector, nke nwere ike weghara mgbanwe mgbanwe site na ụlọ ahịa data ozugbo wee dee ha na iyi. A na-ewere mgbanwe ozugbo site na ndekọ azụmahịa na mkpofu nchekwa. A na-eji mkpofu n'ihi na ndekọ azụmahịa anaghị echekwa akụkọ mgbanwe niile. A na-edobe mgbanwe dị ka mmemme Delta, yabụ onye nnata agaghị echegbu onwe ya maka ebe mgbanwe ahụ si bịa.

Delta-Connector na-akwado ọtụtụ atụmatụ ndị ọzọ dị ka:

  • Ikike ide data mmepụta omenala gara aga Kafka.
  • Ikike iji rụọ ọrụ mkpofu akwụkwọ ntuziaka n'oge ọ bụla maka tebụl niile, otu tebụl, ma ọ bụ maka igodo isi akọwapụtara.
  • Enwere ike iweghachi ihe mkpofu na chunks, yabụ na ọ dịghị mkpa ịmalite ọzọ ọzọ ma ọ bụrụ na ọdịda dara.
  • Ọ dịghị mkpa idobe mkpọchi na tebụl, nke dị ezigbo mkpa iji hụ na nchekwa data ide okporo ụzọ anaghị egbochi ọrụ anyị.
  • Nnweta dị elu n'ihi ugboro ugboro na Mpaghara nnweta AWS.

Anyị na-akwado MySQL na Postgres ugbu a, gụnyere ntinye na AWS RDS na Aurora. Anyị na-akwado Cassandra (multi-master). Ị nwere ike ịchọta nkọwa ndị ọzọ gbasara Delta-Connector ebe a blog posta.

Kafka na oyi akwa njem

Ewubere akwa njem mmemme Delta n'ọrụ izi ozi nke ikpo okwu Nkume.

N'akụkọ ihe mere eme, ikenye na Netflix ka emebere maka ịnweta ohere karịa ogologo ndụ (lee n'okpuru). akụkọ gara aga). Azụmahịa ahụ bụ enweghị nkwekọrịta nke onye na-ere ahịa nwere ike ịdị n'ụdị dị iche iche. Ọmụmaatụ, ntuli aka onye ndu adịghị ọcha bụ maka onye nnata nwere ike inwe mmemme oyiri ma ọ bụ furu efu.

Site na Delta, anyị chọrọ nkwa ịdịte aka siri ike iji hụ na ebufe ihe omume CDC n'ụlọ ahịa ewepụtara. Maka ebumnuche a, anyị tụrụ aro ụyọkọ Kafka emebere nke ọma dị ka ihe nke mbụ. Ị nwere ike lelee ụfọdụ ntọala onye na-ere ahịa na tebụl n'okpuru:

Delta: Mmekọrịta data na Platform nkwalite

Na Keystone Kafka ụyọkọ, ntuli aka onye ndu adịghị ọcha na-agụnyekarị iji hụ na enwere ike ịnweta onye mbipụta. Nke a nwere ike bute mfu ozi ma ọ bụrụ na ahọpụtara oyiri emekọrịtaghị ka onye ndu. Maka ụyọkọ Kafka dị elu ọhụrụ, nhọrọ ahụ ntuli aka onye ndu adịghị ọcha gbanyụrụ iji gbochie mfu ozi.

Anyị mụbakwara ihe ngbanwe site na 2 ruo 3 na opekempe insync oyiri 1 ruo 2. Ndị nkwusa na-ede ụyọkọ a chọrọ acks n'aka ndị ọzọ niile, na-ahụ na 2 n'ime 3 oyiri nwere ozi kacha ugbu a nke onye bipụtara.

Mgbe ihe atụ na-ere ahịa kwụsịrị, ihe atụ ọhụrụ na-anọchi nke ochie. Otú ọ dị, onye na-ere ahịa ọhụrụ ahụ ga-achọ ijide n'aka na oyiri emekọrịtaghị, nke nwere ike were ọtụtụ awa. Iji belata oge mgbake maka ọnọdụ a, anyị malitere iji ngọngọ data nchekwa (Amazon Elastic Block Store) kama diski ndị na-ere ahịa mpaghara. Mgbe ihe atụ ọhụrụ nọchiri ihe atụ onye na-ere ahịa kwụsịrị, ọ na-agbakwunye olu EBS nke ihe ahụ kwụsịrị wee malite ịnweta ozi ọhụrụ. Usoro a na-ebelata oge mkpochapụ azụ azụ site na awa ruo nkeji n'ihi na ihe atụ ọhụrụ ahụ adịkwaghị mkpa ka e mepụtaghachi site na ọnọdụ efu. N'ozuzu, nchekwa dị iche iche na ndụ onye na-ere ahịa na-ebelata mmetụta nke ngbanwe nke onye na-ere ahịa.

Iji nwetakwuo nkwa nnyefe data, anyị jiri usoro nsochi ozi ịchọpụta ọnwụ ozi ọ bụla n'okpuru ọnọdụ dị oke egwu (dịka ọmụmaatụ, ịmegharị elekere na onye isi nkebi).

Usoro nhazi Stream

Ewubere akwa nhazi Delta n'elu ikpo okwu Netflix SpaaS, nke na-enye njikọ Apache Flink na gburugburu Netflix. Ikpo okwu na-enye interface onye ọrụ na-ahụ maka ibunye ọrụ Flink na nhazi nke ụyọkọ Flink n'elu ikpo okwu njikwa akpa Titus anyị. Ngwa ahụ na-ejikwa nhazi ọrụ ma na-enye ndị ọrụ ohere ime mgbanwe nhazi n'ike n'ike na-enweghị iweghachite ọrụ Flink.

Delta na-enye usoro nhazi iyi dabere na Flink na SPAaS na-eji dabere na nkọwa DSL (Asụsụ akọwapụtara nke ngalaba) iji nweta nkọwa ọrụ nka. Dịka ọmụmaatụ, iji kọwaa nzọụkwụ nke ihe omume ga-eme ka ọ baa ọgaranya site n'ịkpọ ọrụ mpụga, ndị ọrụ kwesịrị ide DSL ndị a, na usoro ahụ ga-emepụta ihe nlereanya dabere na ya, nke Flink ga-eme.

Delta: Mmekọrịta data na Platform nkwalite
Ọgụgụ 3. Ọmụmaatụ nke ịba ụba na DSL na Delta

Usoro nhazi ọ bụghị nanị na-ebelata usoro mmụta, kamakwa ọ na-enye atụmatụ nhazi iyi na-emekarị dị ka nkwụsịtụ, nhazi, na mgbanwe na nkwụsi ike iji dozie nsogbu ọrụ nkịtị.

Delta Stream Processing Framework nwere modul isi abụọ, modul DSL & API na modul Runtime. Modul DSL & API na-enye DSL na UDF (User-Defined-Function) API ka ndị ọrụ wee dee mgbagha nhazi nke ha (dị ka nzacha ma ọ bụ mgbanwe). Usoro oge ịgba ọsọ na-enye mmejuputa atumatu DSL parser nke na-ewuli ihe nnọchianya nke ime usoro nhazi na ụdị DAG. Akụkụ mkpochapụ na-akọwa ụdị DAG iji bido nkwupụta Flink n'ezie wee mechaa ngwa Flink. E gosipụtara ihe owuwu nke usoro ahụ na foto a.

Delta: Mmekọrịta data na Platform nkwalite
Ọgụgụ 4. Delta Stream Processing Framework architecture

Usoro a nwere ọtụtụ uru:

  • Ndị ọrụ nwere ike ilekwasị anya na mgbagha azụmaahịa ha na-enweghị ịbanye n'ime nkọwapụta Flink ma ọ bụ usoro SpaaS.
  • Enwere ike ime nkwalite n'ụzọ doro anya nye ndị ọrụ, enwere ike idozi njehie na-achọghị mgbanwe ọ bụla na koodu njirimara (UDF).
  • A na-eme ka ahụmịhe ngwa Delta dị mfe maka ndị ọrụ n'ihi na ikpo okwu na-enye mgbanwe na nkwụsi ike site na igbe ahụ ma na-anakọta ụdị metrik dị iche iche zuru ezu nke enwere ike iji mee ihe ngosi.

Eji mmepụta ihe

Delta anọwo na-emepụta ihe karịrị otu afọ ma na-arụ ọrụ dị mkpa n'ọtụtụ ngwa Netflix Studio. O nyeere ndị otu aka mejuputa iji okwu dị ka nchọta ọchụchọ, nchekwa data, na usoro mmemme na-akwalite. N'okpuru ebe a bụ nkọwa nke ụkpụrụ ụlọ dị elu nke ikpo okwu Delta.

Delta: Mmekọrịta data na Platform nkwalite
Ọgụgụ 5. Ihe owuwu dị elu nke Delta.

Nkwenye

Ọ ga-amasị anyị ikele ndị na-esonụ bụ ndị tinyere aka na mmepụta na mmepe nke Delta na 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 na Zhenzhong Xu.

Isi mmalite

  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: Nhazi mmemme n'ịntanetị. Kọmun. ACM 62 (5): 43–49 (2019). DOI: doi.org/10.1145/3312527

Debanye aha maka webinar efu: "Ngwaọrụ Nrụpụta Data maka Nchekwa Redshift Amazon."

isi: www.habr.com

Tinye a comment