Delta: Khokahano ea Lintlha le Sethala sa Matlafatso

Ka tebello ea ho qala phallo e ncha ka sekhahla Moenjiniere oa Boitsebiso Re lokiselitse phetolelo ea boitsebiso bo thahasellisang.

Delta: Khokahano ea Lintlha le Sethala sa Matlafatso

tjhebokakaretso

Re tla bua ka mokhoa o tsebahalang haholo oo lits'ebetso li sebelisang mabenkele a mangata a data, moo lebenkele le leng le le leng le sebelisetsoang merero ea lona, ​​mohlala, ho boloka mofuta oa data oa canonical (MySQL, joalo-joalo), ho fana ka bokhoni bo tsoetseng pele ba ho batla (ElasticSearch, joalo-joalo))., caching (Memcached, joalo-joalo) le tse ling. Ka tloaelo, ha u sebelisa mabenkele a mangata a data, e 'ngoe ea tsona e sebetsa e le lebenkele la mantlha mme tse ling e le mabenkele a tsoang. Bothata feela ke mokhoa oa ho hokahanya mabenkele ana a data.

Re ile ra sheba mekhoa e mengata e fapaneng e ileng ea leka ho rarolla bothata ba ho hokahanya mabenkele a mangata, joalo ka ho ngola habeli, litšebelisano tse ajoang, joalo-joalo. Leha ho le joalo, mekhoa ena e na le mefokolo e kholo mabapi le tšebeliso ea bophelo ba sebele, ho tšepahala le tlhokomelo. Ntle le khokahano ea data, lits'ebetso tse ling li hloka ho ntlafatsa data ka ho letsetsa lits'ebeletso tsa kantle.

Delta e ile ea ntlafatsoa ho rarolla mathata ana. Delta qetellong e fana ka sethala se tsitsitseng, se tsamaisoang ke liketsahalo bakeng sa ho hokahanya le ho ntlafatsa.

Litharollo tse teng

Ho kena habeli

Ho boloka mabenkele a mabeli a data a lumellana, o ka sebelisa mongolo o habeli, o ngolla lebenkele le le leng ebe o ngolla le leng hang kamora moo. Rekote ea pele e ka lekoa hape 'me ea bobeli e ka hlakoloa haeba ea pele e hloleha ka mor'a hore palo ea liteko e felile. Leha ho le joalo, mabenkele a mabeli a ka 'na a se ke a lumellana haeba ho ngolla lebenkele la bobeli ho hlōleha. Hangata bothata bona bo rarolloa ka ho theha mokhoa oa ho hlaphoheloa o ka khonang nako le nako ho fetisetsa data ho tloha polokelong ea pele ho ea ho ea bobeli, kapa ho etsa joalo feela haeba ho fumanoa phapang ho data.

Mathata:

Ho etsa mokhoa oa ho hlaphoheloa ke mosebetsi o itseng o ke keng oa sebelisoa hape. Ho phaella moo, data pakeng tsa libaka tsa polokelo e lula e sa lumellane ho fihlela mokhoa oa ho tsosolosa o etsahala. Tharollo e ba e rarahaneng haholoanyane haeba ho sebelisoa mabenkele a fetang a mabeli. Qetellong, mokhoa oa ho tsosolosa o ka eketsa mojaro mohloling oa data oa pele.

Fetola tafole ea log

Ha liphetoho li etsahala ho sehlopha sa litafole (tse kang ho kenya, ho ntlafatsa, le ho tlosa rekoto), litlaleho tsa phetoho li kenngoa tafoleng ea log e le karolo ea transaction e tšoanang. Khoele e 'ngoe kapa ts'ebetso e lula e kopa liketsahalo ho tloha tafoleng ea log' me e li ngolla lebenkeleng le le leng kapa ho feta, haeba ho hlokahala, ho tlosa liketsahalo ho tloha tafoleng ea log ka mor'a hore tlaleho e netefatsoe ke mabenkele ohle.

Mathata:

Paterone ena e lokela ho kengoa ts'ebetsong joalo ka laeborari, 'me, ka nepo, ntle le ho fetola khoutu ea ts'ebeliso e e sebelisang. Sebakeng sa polyglot, ts'ebetsong ea laeborari e joalo e lokela ho ba teng ka puo efe kapa efe e hlokahalang, empa ho thata haholo ho netefatsa ts'ebetso ea ts'ebetso le boitšoaro ka lipuo tsohle.

Bothata bo bong ke ho fumana liphetoho tsa schema lits'ebetsong tse sa tšehetseng liphetoho tsa schema tsa transaction [1] [2], joalo ka MySQL. Ka hona, mokhoa oa ho etsa phetoho (mohlala, phetoho ea schema) le ho e rekota ka mokhoa oa transaction ka har'a tafole ea phetoho e ke ke ea sebetsa kamehla.

Distributed Transactions

Litšebelisano tse ajoang li ka sebelisoa ho arola khoebo ka har'a mabenkele a mangata a fapaneng a fapaneng e le hore ts'ebetso e ka etsoa ho mabenkele ohle a data a sebelisitsoeng, kapa a sa ikemisetse ho e 'ngoe ea tsona.

Mathata:

Litšebelisano tse ajoang ke bothata bo boholo haholo bakeng sa mabenkele a fapaneng a data. Ka tlhaho ea bona, ba ka itšetleha feela ka boemo bo tlaase ka ho fetisisa bo tloaelehileng ba litsamaiso tse amehang. Mohlala, litšebelisano tsa XA li thibela ts'ebetso haeba ts'ebetso ea kopo e hloleha nakong ea mohato oa ho itokisa. Ho feta moo, XA ha e fane ka ponelopele ea ho qetela kapa ho ts'ehetsa maano a ts'epo a ho laola concurrency. Ntle le moo, lits'ebetso tse ling tse kang ElasticSearch ha li tšehetse XA kapa mofuta ofe kapa ofe o fapaneng oa transaction. Kahoo, ho etsa bonnete ba hore atomicity ea ho ngola litheknoloji tse fapaneng tsa polokelo ea data e ntse e le mosebetsi o boima haholo bakeng sa lits'ebetso [3].

Delta

Delta e ne e etselitsoe ho sebetsana le mefokolo ea litharollo tse teng tsa khokahano ea data hape e nolofalletsa ntlafatso ea data hang-hang. Sepheo sa rona e ne e le ho tlosa mathata ana kaofela hole le baetsi ba likopo e le hore ba ka tsepamisa maikutlo ho phethahatsa ts'ebetso ea khoebo. Ka mor'a moo re tla hlalosa "Movie Search", nyeoe ea sebele ea tšebeliso ea Delta ea Netflix.

Netflix e sebelisa haholo meralo ea microservice, 'me microservice ka' ngoe e sebeletsa mofuta o le mong oa data. Tlhahisoleseding ea motheo mabapi le filimi e fumaneha ka har'a microservice e bitsoang Movie Service, 'me data e amanang le eona e kang tlhahisoleseding e mabapi le bahlahisi, batšoantšisi, barekisi, joalo-joalo e laoloa ke li-microservices tse ling tse ngata (e leng Deal Service, Talent Service le Vendor Service).
Basebelisi ba khoebo ho Netflix Studios hangata ba hloka ho batla lits'ebetso tse fapaneng tsa lifilimi, ke ka lebaka leo ho leng bohlokoa haholo hore ba tsebe ho batlisisa lintlha tsohle tse amanang le lifilimi.

Pele ho Delta, sehlopha sa lipatlisiso tsa lifilimi se ne se hloka ho hula data ho tsoa ho li-microservices tse ngata pele se supa lintlha tsa lifilimi. Ntle le moo, sehlopha se ne se tlameha ho theha sistimi e tla nchafatsa index ea patlo nako le nako ka ho kopa liphetoho ho tsoa ho li-microservices tse ling, le haeba ho ne ho se na liphetoho ho hang. Ka potlako tsamaiso ena e ile ea rarahana 'me ea thatafalloa ho e hlokomela.

Delta: Khokahano ea Lintlha le Sethala sa Matlafatso
Setšoantšo sa 1. Mokhoa oa likhetho ho Delta
Kamora ho sebelisa Delta, sistimi e ile ea nolofatsoa ho sistimi e tsamaisoang ke ketsahalo joalo ka ha ho bonts'itsoe setšoantšong se latelang. Liketsahalo tsa CDC (Change-Data-Capture) li romeloa lihloohong tsa Keystone Kafka ho sebelisoa Delta-Connector. Sesebelisoa sa Delta se hahiloeng ho sebelisoa Delta Stream Processing Framework (e thehiloeng ho Flink) e amohela liketsahalo tsa CDC ho tsoa sehloohong, e li ruisa ka ho letsetsa li-microservices tse ling, 'me qetellong e fetisetsa lintlha tse ntlafalitsoeng ho index ea lipatlisiso ho Elasticsearch. Ts'ebetso eohle e etsahala hoo e batlang e le ka nako ea nnete, ke hore, hang ha liphetoho li etsoa polokelong ea data, li-index tsa lipatlisiso lia ntlafatsoa.

Delta: Khokahano ea Lintlha le Sethala sa Matlafatso
Setšoantšo sa 2. Phaephe ea data e sebelisang Delta
Likarolong tse latelang, re tla hlalosa ts'ebetso ea Delta-Connector, e hokahanyang le polokelo le ho phatlalatsa liketsahalo tsa CDC ho lera la lipalangoang, e leng mokhoa oa sebele oa ho fetisetsa data o tsamaisang liketsahalo tsa CDC ho lihlooho tsa Kafka. Qetellong, re tla bua ka moralo oa ts'ebetso oa Delta stream, oo baetsi ba lisebelisoa ba ka o sebelisang bakeng sa ts'ebetso ea data le logic ea ho ntlafatsa.

CDC (Change-Data-Capture)

Re thehile tšebeletso ea CDC e bitsoang Delta-Connector, e ka nkang liphetoho tse ikemiselitseng ho tloha lebenkeleng la data ka nako ea sebele ebe li li ngolla molapong. Liphetoho tsa nako ea sebele li nkiloe ho log log ea transaction le lithōle tsa polokelo. Lits'oants'o li sebelisoa hobane lits'oants'o tsa transaction hangata ha li boloke nalane eohle ea liphetoho. Liphetoho hangata li hlophisitsoe joalo ka liketsahalo tsa Delta, kahoo moamoheli ha a tlameha ho tšoenyeha ka hore na phetoho e tsoa hokae.

Delta-Connector e tšehetsa likarolo tse ling tse eketsehileng tse kang:

  • Bokhoni ba ho ngola data e hlahisoang ka tloaelo nakong e fetileng Kafka.
  • Bokhoni ba ho kenya li-dumps ka nako efe kapa efe bakeng sa litafole tsohle, tafole e itseng, kapa bakeng sa linotlolo tse itseng tsa mantlha.
  • Lithako li ka khutlisoa ka likotoana, kahoo ha ho na lebaka la ho qala bocha haeba ho ka hloleha.
  • Ha ho na tlhoko ea ho beha linotlolo holim'a litafole, e leng ntho ea bohlokoa haholo ho netefatsa hore sephethephethe sa ho ngola database ha se mohla se koetsoeng ke ts'ebeletso ea rona.
  • Ho fumaneha ho hoholo ka lebaka la maemo a sa sebetseng libakeng tse fumanehang tsa AWS.

Hajoale re ts'ehetsa MySQL le Postgres, ho kenyelletsa le ho romelloa ho AWS RDS le Aurora. Re boetse re tšehetsa Cassandra (multi-master). U ka fumana lintlha tse ling mabapi le Delta-Connector mona poso ea blog.

Kafka le lera la lipalangoang

Sebaka sa lipalangoang tsa liketsahalo tsa Delta se hahiloe holim'a tšebeletso ea melaetsa ea sethaleng ntlha ea motheo.

Ho latela nalane, ho romella ho Netflix ho ntlafalitsoe bakeng sa phihlello ho fapana le ho phela nako e telele (sheba ka tlase). sehlooho se fetileng). Khoebisano e ne e ka 'na ea e-ba ho se lumellane ha data ea barekisi maemong a fapaneng a fapaneng. Ka mohlala, likhetho tsa baetapele tse sa hloekang e ikarabella bakeng sa hore moamoheli a be le liketsahalo tse tšoanang kapa tse lahlehileng.

Ka Delta, re ne re batla litiiso tse matla tsa nako e telele ho netefatsa hore ho tlisoa liketsahalo tsa CDC mabenkeleng a nkiloeng. Bakeng sa morero ona, re sisintse sehlopha sa Kafka se entsoeng ka mokhoa o khethehileng e le ntho ea boemo ba pele. U ka sheba litlhophiso tse ling tsa broker tafoleng e ka tlase:

Delta: Khokahano ea Lintlha le Sethala sa Matlafatso

Ka lihlopha tsa Keystone Kafka, likhetho tsa baetapele tse sa hloekang hangata e kenyelelitsoe ho netefatsa phihlello ea mohatisi. Sena se ka fella ka tahlehelo ea molaetsa haeba setšoantšo se sa lumellaneng se khethoa e le moetapele. Bakeng sa phumaneho e ncha ea sehlopha sa Kafka, khetho likhetho tsa baetapele tse sa hloekang e koetsoe ho thibela tahlehelo ea molaetsa.

Re ile ra boela ra eketseha replication factor ho tloha ho 2 ho isa ho 3 le bonyane insync replicas 1 ho ea ho 2. Bahoeletsi ba ngolla sehlopha sena ba hloka li-acks tse tsoang ho tse ling kaofela, ho etsa bonnete ba hore likopi tse 2 ho tse 3 li na le melaetsa ea morao-rao e rometsoeng ke mohatisi.

Ha mohlala oa broker o fela, ketsahalo e ncha e nkela ea khale sebaka. Leha ho le joalo, morekisi e mocha o tla hloka ho fumana likopi tse sa lumellaneng, tse ka nkang lihora tse 'maloa. Ho fokotsa nako ea ho hlaphoheloa bakeng sa boemo bona, re ile ra qala ho sebelisa polokelo ea data thibela (Amazon Elastic Block Store) ho e-na le li-disks tsa sebakeng seo. Ha ketsahalo e ncha e nkela sebaka sa broker e felisitsoeng, e hokela molumo oa EBS oo ketsahalo e felisitsoeng e bileng le eona mme e qala ho fumana melaetsa e mecha. Ts'ebetso ena e fokotsa nako ea ts'ebetso ea morao-rao ho tloha ho lihora ho isa metsotsong hobane mohlala o mocha ha o sa hloka ho ipheta ho tsoa boemong bo se nang letho. Ka kakaretso, libaka tse arohaneng tsa polokelo le li-broker li fokotsa haholo phello ea phetoho ea barekisi.

Ho eketsa tiiso ea ho fana ka data, re sebelisitse mokhoa oa ho latela molaetsa ho lemoha tahlehelo efe kapa efe ea molaetsa tlas'a maemo a feteletseng (mohlala, desynchronization ea oache ho moetapele oa karohano).

Stream Processing Framework

Sebaka sa ts'ebetso sa Delta se hahiloe ka holim'a sethala sa Netflix SPaaS, se fanang ka kopanyo ea Apache Flink le Netflix ecosystem. Sethala se fana ka sebopeho sa mosebelisi se laolang phepelo ea mesebetsi ea Flink le ho hlophisoa ha lihlopha tsa Flink ka holim'a sethala sa rona sa taolo ea lijana tsa Titus. Khokahano e boetse e laola litlhophiso tsa mesebetsi mme e lumella basebelisi ho etsa liphetoho tsa tlhophiso ka matla ntle le ho khutlisa mesebetsi ea Flink.

Delta e fana ka moralo oa ts'ebetso ea molapo o thehiloeng ho Flink le SPaaS e sebelisang tlhaloso e thehiloeng DSL (Puo e Khethehileng ea Domain) ho fana ka lintlha tse hlakileng tsa tekheniki. Ka mohlala, ho hlalosa mohato oo liketsahalo li tla ntlafatsoa ka ho bitsa litšebeletso tsa ka ntle, basebelisi ba lokela ho ngola DSL e latelang, 'me moralo o tla etsa mohlala o thehiloeng ho oona, o tla etsoa ke Flink.

Delta: Khokahano ea Lintlha le Sethala sa Matlafatso
Setšoantšo sa 3. Mohlala oa ho ntlafatsa ho DSL ho Delta

Moralo oa ts'ebetso ha o fokotse feela sekhahla sa ho ithuta, empa hape o fana ka likarolo tse tloaelehileng tsa ts'ebetso ea melapo joalo ka deduplication, schematization, le ho feto-fetoha ha maemo le botsitso ho rarolla mathata a tloaelehileng a ts'ebetso.

Delta Stream Processing Framework e na le li-module tse peli tsa bohlokoa, module ea DSL & API le module ea Runtime. DSL & API module e fana ka DSL le UDF (User-Defined-Function) APIs e le hore basebelisi ba ka ngola mokhoa oa bona oa ho sebetsa (joalo ka ho sefa kapa ho fetola). Mojule oa Runtime o fana ka ts'ebetsong ea sekhechana sa DSL se ahang boemeli ba kahare ba mehato ea ts'ebetso mefuteng ea DAG. Karolo ea Phethahatso e fetolela mefuta ea DAG ho qala lipolelo tsa 'nete tsa Flink 'me qetellong e tsamaise ts'ebeliso ea Flink. Mohaho oa moralo o bontšitsoe setšoantšong se latelang.

Delta: Khokahano ea Lintlha le Sethala sa Matlafatso
Setšoantšo sa 4. Mehaho ea Moralo oa Ts'ebetso ea Delta Stream Processing

Mokhoa ona o na le melemo e mengata:

  • Basebelisi ba ka tsepamisa maikutlo ho logic ea bona ea khoebo ntle le hore ba tsebe ho kenella ka botlalo ho Flink kapa sebopeho sa SPaaS.
  • Ntlafatso e ka etsoa ka mokhoa o hlakileng ho basebelisi, 'me liphoso li ka lokisoa ntle le ho hloka liphetoho ho khoutu ea mosebelisi (UDF).
  • Boiphihlelo ba ts'ebeliso ea Delta bo nolofalitsoe bakeng sa basebelisi hobane sethala se fana ka bonolo le botsitso ka ntle ho lebokose mme se bokella metrics e fapaneng e qaqileng e ka sebelisoang bakeng sa litlhokomeliso.

Tšebeliso ea tlhahiso

Delta e bile tlhahiso nako e fetang selemo mme e bapala karolo ea bohlokoa lits'ebetsong tse ngata tsa Netflix Studio. O thusitse lihlopha ho kenya tšebetsong linyeoe tsa ts'ebeliso tse kang indexing ea lipatlisiso, polokelo ea data, le ts'ebetso e tsamaisoang ke liketsahalo. Ka tlaase mona ke kakaretso ea mohaho oa boemo bo phahameng ba sethaleng sa Delta.

Delta: Khokahano ea Lintlha le Sethala sa Matlafatso
Setšoantšo sa 5. Mehaho ea boemo bo phahameng ea Delta.

Liteboho

Re rata ho leboha batho ba latelang ba kentseng letsoho ho theheng le nts'etsopele ea Delta ho 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 le Zhenzhong Xu.

Mohloli

  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: Ts'ebetso ea ketsahalo ea inthaneteng. Komune. ACM 62(5): 43–49 (2019). DOI: doi.org/10.1145/3312527

Ingolise bakeng sa webinar ea mahala: "Data Build Tool for Amazon Redshift Storage."

Source: www.habr.com

Eketsa ka tlhaloso