Delta: Amuṣiṣẹpọ data ati Platform Imudara

Ni ifojusọna ti ifilọlẹ ti ṣiṣan tuntun ni oṣuwọn Data ẹlẹrọ A ti pese itumọ awọn ohun elo ti o nifẹ si.

Delta: Amuṣiṣẹpọ data ati Platform Imudara

Akopọ

A yoo sọrọ nipa apẹẹrẹ olokiki olokiki nipasẹ eyiti awọn ohun elo lo awọn ile itaja data lọpọlọpọ, nibiti a ti lo ile itaja kọọkan fun awọn idi tirẹ, fun apẹẹrẹ, lati ṣafipamọ fọọmu data canonical (MySQL, bbl), pese awọn agbara wiwa ilọsiwaju (ElasticSearch, ati be be lo) .), caching (Memcached, bbl) ati awọn miiran. Ni deede, nigba lilo awọn ile itaja data lọpọlọpọ, ọkan ninu wọn ṣe bi ile itaja akọkọ ati awọn miiran bi awọn ile itaja itọsẹ. Iṣoro nikan ni bi o ṣe le muṣiṣẹpọ awọn ile itaja data wọnyi.

A wo nọmba ti awọn ilana ti o yatọ ti o gbiyanju lati yanju iṣoro ti mimuuṣiṣẹpọ awọn ile itaja lọpọlọpọ, gẹgẹbi awọn kikọ meji, awọn iṣowo pinpin, ati bẹbẹ lọ. Sibẹsibẹ, awọn ọna wọnyi ni awọn idiwọn pataki ni awọn ofin ti lilo gidi-aye, igbẹkẹle, ati itọju. Ni afikun si amuṣiṣẹpọ data, diẹ ninu awọn ohun elo tun nilo lati ṣe alekun data nipa pipe awọn iṣẹ ita.

Delta ni idagbasoke lati yanju awọn iṣoro wọnyi. Nikẹhin Delta n pese ipilẹ deede, ipilẹ-iṣẹlẹ fun imuṣiṣẹpọ data ati imudara.

Awọn solusan to wa tẹlẹ

Ilọpo meji

Lati tọju awọn ile itaja data meji ni imuṣiṣẹpọ, o le lo kikọ meji, eyiti o kọwe si ile itaja kan ati lẹhinna kọ si ekeji lẹsẹkẹsẹ lẹhinna. Igbasilẹ akọkọ le tun gbiyanju ati pe ekeji le ti parẹ ti akọkọ ba kuna lẹhin nọmba awọn igbiyanju ti pari. Sibẹsibẹ, awọn ile itaja data meji le di ti imuṣiṣẹpọ ti kikọ si ile itaja keji ba kuna. Iṣoro yii nigbagbogbo ni ipinnu nipasẹ ṣiṣẹda ilana imularada ti o le tun gbe data lorekore lati ibi ipamọ akọkọ si keji, tabi ṣe bẹ nikan ti a ba rii awọn iyatọ ninu data naa.

Awọn iṣoro:

Ṣiṣe ilana imularada jẹ iṣẹ kan pato ti a ko le tun lo. Ni afikun, data laarin awọn ipo ibi ipamọ ko wa ni amuṣiṣẹpọ titi ilana imupadabọ yoo waye. Ojutu naa di idiju diẹ sii ti o ba lo diẹ sii ju awọn ile itaja data meji lọ. Nikẹhin, ilana imupadabọ le ṣafikun fifuye si orisun data atilẹba.

Yi tabili log pada

Nigbati awọn ayipada ba waye si ṣeto awọn tabili (bii fifi sii, imudojuiwọn, ati piparẹ igbasilẹ), awọn igbasilẹ iyipada ti wa ni afikun si tabili log gẹgẹbi apakan ti idunadura kanna. Okun miiran tabi ilana n beere awọn iṣẹlẹ nigbagbogbo lati tabili log ati kọwe si ọkan tabi diẹ sii awọn ile itaja data, ti o ba jẹ dandan, yiyọ awọn iṣẹlẹ kuro ni tabili log lẹhin igbasilẹ ti jẹrisi nipasẹ gbogbo awọn ile itaja.

Awọn iṣoro:

Apeere yii yẹ ki o ṣe imuse bi ile-ikawe kan, ati ni pipe laisi yiyipada koodu ohun elo ti o lo. Ni agbegbe polyglot, imuse ti iru ile-ikawe yẹ ki o wa ni eyikeyi ede pataki, ṣugbọn aridaju aitasera ti iṣẹ ṣiṣe ati ihuwasi kọja awọn ede jẹ nira pupọ.

Iṣoro miiran wa ni gbigba awọn ayipada ero inu awọn eto ti ko ṣe atilẹyin awọn iyipada ero iṣowo [1] [2], gẹgẹbi MySQL. Nitorinaa, apẹẹrẹ ti ṣiṣe iyipada (fun apẹẹrẹ, iyipada ero) ati gbigbasilẹ iṣowo ni tabili iwe iyipada kii yoo ṣiṣẹ nigbagbogbo.

Pinpin lẹkọ

Awọn iṣowo pinpin le ṣee lo lati pin idunadura kan kọja awọn ile itaja data oniruuru pupọ ki iṣẹ naa jẹ boya ifaramo si gbogbo awọn ile itaja data ti a lo, tabi ko ṣe adehun si eyikeyi ninu wọn.

Awọn iṣoro:

Awọn iṣowo pinpin jẹ iṣoro nla pupọ fun awọn ile itaja data orisirisi. Nipa iseda wọn, wọn le gbarale iyeida wọpọ ti o kere julọ ti awọn eto ti o kan. Fun apẹẹrẹ, awọn iṣowo XA ṣe idiwọ ipaniyan ti ilana elo ba kuna lakoko ipele igbaradi. Ni afikun, XA ko pese wiwa titipa tabi ṣe atilẹyin awọn eto iṣakoso concurrency ireti. Ni afikun, diẹ ninu awọn ọna ṣiṣe bii ElasticSearch ko ṣe atilẹyin XA tabi eyikeyi awoṣe idunadura oniruuru miiran. Nitorinaa, ṣiṣe idaniloju kikọ atomity ni ọpọlọpọ awọn imọ-ẹrọ ibi ipamọ data jẹ iṣẹ ṣiṣe ti o nija pupọ fun awọn ohun elo [3].

Delta

Delta jẹ apẹrẹ lati koju awọn aropin ti awọn solusan imuṣiṣẹpọ data ti o wa ati tun jẹ ki imudara data lori-fly ṣiṣẹ. Ibi-afẹde wa ni lati ṣabọ gbogbo awọn idiju wọnyi kuro lọdọ awọn olupilẹṣẹ ohun elo ki wọn le dojukọ ni kikun lori imuse iṣẹ ṣiṣe iṣowo. Nigbamii ti a yoo ṣe apejuwe "Ṣawari Fiimu", ọran lilo gangan fun Netflix's Delta.

Netflix nlo faaji microservice lọpọlọpọ, ati pe microservice kọọkan n ṣe iranṣẹ iru data kan. Alaye ipilẹ nipa fiimu naa wa ninu microservice ti a pe ni Iṣẹ Fiimu, ati data ti o somọ gẹgẹbi alaye nipa awọn olupilẹṣẹ, awọn oṣere, awọn olutaja, ati bẹbẹ lọ ni iṣakoso nipasẹ ọpọlọpọ awọn microservices miiran (eyun Iṣẹ Deal, Iṣẹ Talent ati Iṣẹ Olutaja).
Awọn olumulo iṣowo ni Netflix Studios nigbagbogbo nilo lati wa kọja ọpọlọpọ awọn ibeere fiimu, eyiti o jẹ idi ti o ṣe pataki pupọ fun wọn lati ni anfani lati wa kọja gbogbo data ti o jọmọ fiimu.

Ṣaaju Delta, ẹgbẹ wiwa fiimu nilo lati fa data lati awọn iṣẹ microservices lọpọlọpọ ṣaaju itọka data fiimu naa. Ni afikun, ẹgbẹ naa ni lati ṣe agbekalẹ eto kan ti yoo ṣe imudojuiwọn itọka wiwa lorekore nipa bibeere awọn ayipada lati awọn iṣẹ microservices miiran, paapaa ti ko ba si awọn ayipada rara. Yi eto ni kiakia di eka ati ki o soro lati ṣetọju.

Delta: Amuṣiṣẹpọ data ati Platform Imudara
olusin 1. Idibo eto to Delta
Lẹhin lilo Delta, eto naa jẹ irọrun si eto ṣiṣe iṣẹlẹ bi o ṣe han ninu eeya atẹle. Awọn iṣẹlẹ CDC (Ayipada-Data-Yaworan) ni a firanṣẹ si awọn koko-ọrọ Keystone Kafka nipa lilo Delta-Asopọmọra. Ohun elo Delta kan ti a ṣe ni lilo Ilana Ilana Sisanwọle Delta (ti o da lori Flink) gba awọn iṣẹlẹ CDC lati koko kan, mu wọn pọ si nipa pipe awọn iṣẹ microservices miiran, ati nikẹhin fi data imudara si atọka wiwa ni Elasticsearch. Gbogbo ilana naa waye ni akoko gidi, iyẹn ni, ni kete ti awọn ayipada ba ṣe adehun si ile itaja data, awọn atọka wiwa ti ni imudojuiwọn.

Delta: Amuṣiṣẹpọ data ati Platform Imudara
Nọmba 2. Data opo gigun ti lilo Delta
Ni awọn apakan atẹle, a yoo ṣe apejuwe iṣẹ ti Delta-Connector, eyiti o sopọ si ibi ipamọ ati gbejade awọn iṣẹlẹ CDC si Layer gbigbe, eyiti o jẹ awọn amayederun gbigbe data ni akoko gidi ti awọn iṣẹlẹ CDC si awọn akọle Kafka. Ati ni ipari pupọ, a yoo sọrọ nipa ilana ilana ṣiṣan ṣiṣan Delta, eyiti awọn olupilẹṣẹ ohun elo le lo fun sisẹ data ati ọgbọn imudara.

CDC (Yiyipada-Data-Yaworan)

A ti ṣe agbekalẹ iṣẹ CDC kan ti a pe ni Delta-Connector, eyiti o le gba awọn ayipada ifaramo lati ile itaja data ni akoko gidi ati kọ wọn si ṣiṣan kan. Awọn ayipada akoko gidi ni a mu lati inu akọọlẹ idunadura ati awọn idalẹnu ibi ipamọ. Awọn idalẹnu ni a lo nitori awọn iforukọsilẹ iṣowo nigbagbogbo ko tọju gbogbo itan-akọọlẹ awọn ayipada. Awọn iyipada ni a ṣe deede ni tẹlentẹle bi awọn iṣẹlẹ Delta, nitorinaa olugba ko ni lati ṣe aniyan nipa ibiti iyipada naa ti wa.

Delta-Connector ṣe atilẹyin ọpọlọpọ awọn ẹya afikun gẹgẹbi:

  • Agbara lati kọ data iṣelọpọ aṣa ti o kọja Kafka.
  • Agbara lati mu awọn idalenu afọwọṣe ṣiṣẹ nigbakugba fun gbogbo awọn tabili, tabili kan pato, tabi fun awọn bọtini akọkọ kan pato.
  • Awọn idalẹnu le ṣee gba pada ni awọn chunks, nitorinaa ko si iwulo lati bẹrẹ ni gbogbo igba lẹẹkansi ni ọran ikuna.
  • Ko si iwulo lati gbe awọn titiipa sori awọn tabili, eyiti o ṣe pataki pupọ lati rii daju pe ijabọ kikọ data ko ni dina nipasẹ iṣẹ wa.
  • Wiwa giga nitori awọn iṣẹlẹ laiṣe ni Awọn agbegbe Wiwa AWS.

Lọwọlọwọ a ṣe atilẹyin MySQL ati Postgres, pẹlu awọn imuṣiṣẹ lori AWS RDS ati Aurora. A tun ṣe atilẹyin Cassandra (olukọ-ọpọlọpọ). O le wa awọn alaye diẹ sii nipa Delta-Connector Nibi bulọọgi.

Kafka ati awọn irinna Layer

Layer irinna iṣẹlẹ Delta ti wa ni itumọ ti lori iṣẹ fifiranṣẹ Syeed Ipele.

Itan-akọọlẹ, fifiranṣẹ lori Netflix ti jẹ iṣapeye fun iraye si dipo igbesi aye gigun (wo isalẹ). ti tẹlẹ article). Iṣowo-pipa naa jẹ aiṣedeede data alagbata ti o pọju ni ọpọlọpọ awọn oju iṣẹlẹ eti. Fun apere, aimọ olori idibo jẹ iduro fun olugba ni agbara ti o ni ẹda-ẹda tabi awọn iṣẹlẹ sọnu.

Pẹlu Delta, a fẹ awọn iṣeduro agbara ti o lagbara lati rii daju ifijiṣẹ ti awọn iṣẹlẹ CDC si awọn ile itaja ti o jade. Fun idi eyi, a dabaa iṣupọ Kafka ti a ṣe apẹrẹ pataki bi ohun-elo kilasi akọkọ. O le wo diẹ ninu awọn eto alagbata ninu tabili ni isalẹ:

Delta: Amuṣiṣẹpọ data ati Platform Imudara

Ninu awọn iṣupọ Keystone Kafka, aimọ olori idibo nigbagbogbo pẹlu lati rii daju iraye si olutẹjade. Eyi le ja si awọn ifiranšẹ ti o sọnu ti ẹda aiṣiṣẹpọ ba yan bi adari. Fun wiwa giga Kafka tuntun, aṣayan aimọ olori idibo wa ni pipa lati yago fun pipadanu ifiranṣẹ.

A tun pọ si isodipupo ifosiwewe lati 2 to 3 ati kere insync replicas 1 si 2. Awọn olutẹjade kikọ si iṣupọ yii nilo awọn acks lati ọdọ gbogbo awọn miiran, ni idaniloju pe 2 ninu awọn ẹda 3 ni awọn ifiranṣẹ lọwọlọwọ ti o firanṣẹ nipasẹ olutẹjade.

Nigbati apẹẹrẹ alagbata ba pari, apẹẹrẹ tuntun rọpo atijọ. Bibẹẹkọ, alagbata tuntun yoo nilo lati ni ibamu pẹlu awọn ẹda aiṣiṣẹpọ, eyiti o le gba awọn wakati pupọ. Lati dinku akoko imularada fun oju iṣẹlẹ yii, a bẹrẹ lilo ibi ipamọ data Àkọsílẹ (Amazon Elastic Block Store) dipo awọn disiki alagbata agbegbe. Nigbati apẹẹrẹ tuntun ba rọpo apẹẹrẹ alagbata ti o ti pari, o so iwọn didun EBS pọ ti apẹẹrẹ ti o pari ni ati bẹrẹ lati ni ibamu pẹlu awọn ifiranṣẹ tuntun. Ilana yii dinku akoko imukuro afẹyinti lati awọn wakati si awọn iṣẹju nitori apẹẹrẹ tuntun ko nilo lati tun ṣe lati ipo ofo. Iwoye, ibi ipamọ lọtọ ati awọn igbesi aye alagbata dinku ni ipa ti iyipada alagbata.

Lati mu iṣeduro ifijiṣẹ data pọ si siwaju sii, a lo eto ipasẹ ifiranṣẹ lati rii ipadanu ifiranṣẹ eyikeyi labẹ awọn ipo to gaju (fun apẹẹrẹ, mimuṣiṣẹpọ aago ni adari ipin).

Ilana Ṣiṣe ṣiṣanwọle

Layer processing Delta ni itumọ ti lori oke ti Netflix SpaaS Syeed, eyiti o pese isọpọ Apache Flink pẹlu ilolupo Netflix. Syeed n pese wiwo olumulo ti o ṣakoso imuṣiṣẹ ti awọn iṣẹ Flink ati orchestration ti awọn iṣupọ Flink lori oke Syeed iṣakoso apoti Titus wa. Ni wiwo tun ṣakoso awọn atunto iṣẹ ati gba awọn olumulo laaye lati ṣe awọn ayipada atunto ni agbara laisi nini lati ṣajọpọ awọn iṣẹ Flink.

Delta n pese ilana iṣelọpọ ṣiṣan ti o da lori Flink ati SPAaS ti o nlo alaye-orisun DSL (Ede kan pato ti agbegbe) si awọn alaye imọ-ẹrọ áljẹbrà. Fun apẹẹrẹ, lati ṣalaye igbesẹ ni eyiti awọn iṣẹlẹ yoo jẹ idarato nipasẹ pipe awọn iṣẹ ita, awọn olumulo nilo lati kọ DSL atẹle, ati ilana naa yoo ṣẹda awoṣe ti o da lori rẹ, eyiti yoo ṣe nipasẹ Flink.

Delta: Amuṣiṣẹpọ data ati Platform Imudara
Nọmba 3. Apeere ti imudara lori DSL ni Delta

Ilana sisẹ ko nikan dinku iṣipopada ẹkọ, ṣugbọn tun pese awọn ẹya ara ẹrọ ṣiṣan ti o wọpọ gẹgẹbi idinku, ṣiṣe eto, ati irọrun ati atunṣe lati yanju awọn iṣoro iṣiṣẹ ti o wọpọ.

Ilana Ṣiṣeto ṣiṣan Delta ni awọn modulu bọtini meji, module DSL & API ati module Runtime. Module DSL & API n pese DSL ati UDF (Iṣẹ-itumọ Olumulo) APIs ki awọn olumulo le kọ ọgbọn ṣiṣe tiwọn (gẹgẹbi sisẹ tabi awọn iyipada). module Runtime n pese imuse ti parser DSL kan ti o kọ aṣoju inu ti awọn igbesẹ sisẹ ni awọn awoṣe DAG. Ẹya ipaniyan n ṣe itumọ awọn awoṣe DAG lati ṣe ipilẹṣẹ awọn alaye Flink gangan ati nikẹhin ṣiṣe ohun elo Flink naa. Awọn faaji ti awọn ilana ti wa ni alaworan ninu awọn wọnyi nọmba rẹ.

Delta: Amuṣiṣẹpọ data ati Platform Imudara
olusin 4. Delta Stream Processing Framework faaji

Ọna yii ni awọn anfani pupọ:

  • Awọn olumulo le dojukọ ọgbọn iṣowo wọn laisi nini lati ṣawari sinu awọn pato ti Flink tabi eto SPAaS.
  • Iṣapeye le ṣee ṣe ni ọna ti o han gbangba si awọn olumulo, ati pe awọn aṣiṣe le ṣe atunṣe laisi eyikeyi iyipada si koodu olumulo (UDF).
  • Iriri ohun elo Delta jẹ irọrun fun awọn olumulo nitori pe pẹpẹ n pese irọrun ati isọdọtun lati inu apoti ati gba ọpọlọpọ awọn metiriki alaye ti o le ṣee lo fun awọn titaniji.

Lilo iṣelọpọ

Delta ti wa ni iṣelọpọ fun ọdun kan ati pe o ṣe ipa pataki ninu ọpọlọpọ awọn ohun elo Studio Netflix. O ṣe iranlọwọ fun awọn ẹgbẹ lati lo awọn ọran bii titọka wiwa, ibi ipamọ data, ati ṣiṣan iṣẹ ṣiṣe-iṣẹlẹ. Ni isalẹ jẹ awotẹlẹ ti faaji ipele giga ti pẹpẹ Delta.

Delta: Amuṣiṣẹpọ data ati Platform Imudara
olusin 5. Delta ká ga-ipele faaji.

Awọn ijẹwọ

A fẹ lati dupẹ lọwọ awọn eniyan wọnyi ti o ni ipa ninu ẹda ati idagbasoke Delta ni 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 ati Zhenzhong Xu.

Awọn orisun

  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: Online iṣẹlẹ processing. Commun. ACM 62 (5): 43–49 (2019). DOI: doi.org/10.1145/3312527

Forukọsilẹ fun webinar ọfẹ"Ọpa Kọ Data fun Ibi ipamọ Redshift Amazon."

orisun: www.habr.com

Fi ọrọìwòye kun