Delta: Sehatra fampifanarahana sy fanatsarana ny angona

Eo am-piandrasana ny fanombohana ny fikorianan'ny vaovao amin'ny tahan'ny Data Engineer Nanomana fandikan-teny momba ny zavatra mahaliana izahay.

Delta: Sehatra fampifanarahana sy fanatsarana ny angona

topy maso

Hiresaka momba ny lamina malaza iray izay ampiasain'ny fampiharana ny fivarotana angon-drakitra marobe, izay ampiasain'ny fivarotana tsirairay ho an'ny tanjony manokana, ohatra, mba hitahiry ny endrika kanonika (MySQL, sns.), manome fahafaha-manao fikarohana mandroso (ElasticSearch, sns.), caching (Memcached, sns.) sy ny hafa. Amin'ny ankapobeny, rehefa mampiasa fivarotana angon-drakitra marobe, ny iray amin'izy ireo dia miasa ho fivarotana voalohany ary ny hafa ho fivarotana derivative. Ny hany olana dia ny fomba fampifanarahana ireo tahirin-kevitra ireo.

Nijery lamina maro samihafa izahay izay nanandrana namaha ny olan'ny fampifanarahana ny fivarotana maro, toy ny fanoratana indroa, ny fifampiraharahana mizara, sns. Na izany aza, ireo fomba fiasa ireo dia manana fetra lehibe amin'ny lafiny fampiasana, azo itokisana ary fikojakojana. Ho fanampin'ny fampifanarahana ny angon-drakitra, ny fampiharana sasany dia mila manatsara ny angona amin'ny fiantsoana serivisy ivelany.

Delta dia novolavolaina hamaha ireo olana ireo. Ny Delta farany dia manome sehatra tsy miovaova, entin'ny hetsika ho an'ny fampifanarahana sy fanatsarana ny angona.

Vahaolana efa misy

Indroa fidirana

Mba hitazonana ny fitehirizana angon-drakitra roa mifanaraka dia azonao atao ny mampiasa sora-tanana roa, izay manoratra amin'ny fivarotana iray ary manoratra amin'ny iray hafa avy hatrany aorian'izay. Ny firaketana voalohany dia azo averina averina ary ny faharoa dia azo ajanona raha tsy mahomby ny voalohany rehefa tapitra ny isan'ny andrana. Na izany aza, mety ho lasa tsy mifanaraka ny tahiry roa raha toa ka tsy mahomby ny fanoratana amin'ny fivarotana faharoa. Ity olana ity dia matetika voavaha amin'ny famoronana fomba fanarenana izay afaka mamerina tsindraindray ny angona avy amin'ny fitahirizana voalohany mankany amin'ny faharoa, na manao izany raha tsy misy fahasamihafana hita ao amin'ny angon-drakitra.

Olana:

Ny fanaovana fomba fanarenana dia asa manokana izay tsy azo ampiasaina indray. Ankoatr'izay, ny angona eo anelanelan'ny toerana fitehirizana dia mijanona ho tsy mifanaraka mandra-pahatongan'ny fomba famerenana amin'ny laoniny. Ny vahaolana dia lasa sarotra kokoa raha mihoatra ny roa ny tahiry angona ampiasaina. Farany, ny fomba famerenana amin'ny laoniny dia afaka manampy enta-mavesatra amin'ny loharano angona tany am-boalohany.

Hanova ny tabilao log

Rehefa misy fiovana mitranga amin'ny andian-databatra (toy ny fampidirana, fanavaozana, ary famafana rakitra), dia ampidirina ao amin'ny tabilao log ny firaketana fanovana ao anatin'ny fifampiraharahana mitovy. Ny kofehy na ny dingana iray hafa dia mangataka hetsika avy amin'ny latabatra firaketana ary manoratra azy ireo amin'ny fitehirizana angon-drakitra iray na maromaro, raha ilaina, manaisotra ny hetsika ao amin'ny latabatra firaketana rehefa nohamafisin'ny fivarotana rehetra ny rakitra.

Olana:

Ity lamina ity dia tokony hampiharina amin'ny maha-fitehirizam-boky, ary tsara indrindra raha tsy manova ny code an'ny fampiharana mampiasa azy. Ao amin'ny tontolo polyglota, ny fampiharana ny tranomboky toy izany dia tokony hisy amin'ny fiteny ilaina rehetra, fa ny fiantohana ny tsy fitoviana amin'ny fiasa sy ny fitondran-tena amin'ny fiteny dia tena sarotra.

Ny olana iray hafa dia ny fahazoana fanovana schema amin'ny rafitra izay tsy manohana ny fiovan'ny schema transactional [1][2], toy ny MySQL. Noho izany, ny lamin'ny fanovana (ohatra, ny fiovan'ny schema) sy ny firaketana an-tsoratra izany amin'ny tabilao dia tsy mandeha foana.

Transactions zaraina

Ny fifampiraharahana zaraina dia azo ampiasaina hanasarahana ny fifampiraharahana amin'ny fivarotana angon-drakitra maro samihafa mba hahafahan'ny asa atao amin'ny fivarotana data rehetra ampiasaina, na tsy manolo-tena amin'ny iray amin'izy ireo.

Olana:

Ny fifampiraharahana zaraina dia olana lehibe ho an'ny fivarotana data heterogène. Amin'ny maha-izy azy dia tsy afaka miantehitra afa-tsy amin'ny marimaritra iraisana ambany indrindra amin'ireo rafitra voakasik'izany izy ireo. Ohatra, ny XA transactions dia manakana ny famonoana raha tsy mahomby ny fizotran'ny fangatahana mandritra ny dingana fanomanana. Ho fanampin'izany, ny XA dia tsy manome fitsikilovana deadlock na manohana ny rafitra fanaraha-maso mifanaraka amin'ny fanantenana. Fanampin'izany, ny rafitra sasany toa ny ElasticSearch dia tsy mahazaka XA na modely fifampiraharahana tsy mitovy. Noho izany, ny fiantohana ny fanoratana atomika amin'ny teknolojia fitahirizana data isan-karazany dia mijanona ho asa sarotra ho an'ny fampiharana [3].

Delta

Delta dia natao hamahana ny fetran'ny vahaolana amin'ny fampitahana angon-drakitra efa misy ary koa ahafahana manatsara ny angon-drakitra amin'ny sidina. Ny tanjonay dia ny hanaisotra ireo fahasarotana rehetra ireo hiala amin'ny mpamorona fampiharana mba hahafahan'izy ireo mifantoka tanteraka amin'ny fampiharana ny fampandehanan-draharaha. Manaraka izany dia hamaritra ny "Fikarohana Sarimihetsika", ny tena tranga fampiasa amin'ny Delta an'ny Netflix.

Netflix dia mampiasa maritrano microservice, ary ny microservice tsirairay dia mazΓ na manolotra karazana data iray. Ny fampahalalana fototra momba ny sarimihetsika dia voarakitra ao amin'ny serivisy micro antsoina hoe Movie Service, ary ny angona mifandraika toy ny fampahalalana momba ny mpamokatra, ny mpilalao, ny mpivarotra, sy ny sisa dia tantanan'ny microservices maro hafa (dia ny Deal Service, Talent Service ary Vendor Service).
Ireo mpampiasa orinasa ao amin'ny Netflix Studios matetika dia mila mikaroka amin'ny fepetran'ny sarimihetsika isan-karazany, ka izany no maha-zava-dehibe ho azy ireo ny fahafahany mikaroka amin'ny angon-drakitra rehetra mifandraika amin'ny sarimihetsika.

Talohan'ny Delta, ny ekipa mpikaroka sarimihetsika dia nila naka angona avy amin'ny microservices maro alohan'ny hanondroana ny angona sarimihetsika. Ankoatr'izay, ny ekipa dia tsy maintsy namolavola rafitra izay hanavao tsindraindray ny mari-pamantarana fikarohana amin'ny fangatahana fanovana amin'ny microservices hafa, na dia tsy misy fiovana mihitsy aza. Vetivety dia nanjary sarotra sy sarotra ny fikojakojana ity rafitra ity.

Delta: Sehatra fampifanarahana sy fanatsarana ny angona
Sary 1. Rafitra fandatsaham-bato ho an'ny Delta
Taorian'ny fampiasana ny Delta, ny rafitra dia nohamafisina tamin'ny rafitra notarihin'ny hetsika araka ny asehon'ity sary manaraka ity. Ny hetsika CDC (Change-Data-Capture) dia alefa amin'ny lohahevitra Keystone Kafka mampiasa Delta-Connector. Ny fampiharana Delta natsangana tamin'ny alΓ lan'ny Delta Stream Processing Framework (mifototra amin'ny Flink) dia mandray hetsika CDC avy amin'ny lohahevitra iray, mampanan-karena azy ireo amin'ny fiantsoana microservices hafa, ary amin'ny farany dia mampita ny angon-drakitra manankarena amin'ny indeksan'ny fikarohana ao amin'ny Elasticsearch. Ny dingana manontolo dia mitranga saika amin'ny fotoana tena izy, izany hoe, raha vantany vao vita ny fanovana ao amin'ny trano fanatobiana data, dia havaozina ny indeksan'ny fikarohana.

Delta: Sehatra fampifanarahana sy fanatsarana ny angona
Sary 2. Fantsona data mampiasa Delta
Ao amin'ny fizarana manaraka dia hamariparitra ny fiasan'ny Delta-Connector, izay mampifandray amin'ny fitehirizana ary mamoaka ny hetsika CDC amin'ny sarin'ny fitaterana, izay fotodrafitrasa fampitana data amin'ny fotoana tena izy izay mitondra ny hetsika CDC mankany amin'ny lohahevitra Kafka. Ary amin'ny farany dia hiresaka momba ny rafitra fanodinana Delta stream isika, izay azon'ny mpamorona fampiharana ampiasaina amin'ny fanodinana angon-drakitra sy ny lojika fampivoarana.

CDC (Hanova angona-Capture)

Namorona serivisy CDC antsoina hoe Delta-Connector izahay, izay afaka maka ny fiovana vita avy amin'ny fivarotana data amin'ny fotoana tena izy ary manoratra azy ireo amin'ny renirano. Ny fanovana amin'ny fotoana tena izy dia alaina avy amin'ny diarin'ny varotra sy ny fanariam-pako. Ampiasaina ny fanariam-pako satria matetika dia tsy mitahiry ny tantaran'ny fiovana rehetra ny diarin'ny fifanakalozana. Ny fanovana dia matetika atao andiany toy ny hetsika Delta, ka tsy mila manahy momba ny fiavian'ny fiovana ny mpandray.

Delta-Connector dia manohana endri-javatra fanampiny maro toy ny:

  • Fahaizana manoratra angon-drakitra famoahana manokana taloha an'i Kafka.
  • Fahaizana manetsika ny fanariam-pamokarana amin'ny fotoana rehetra ho an'ny latabatra rehetra, latabatra manokana, na ho an'ny fanalahidy fototra manokana.
  • Ny fanariam-pako dia azo alaina amin'ny ampahany, ka tsy ilaina ny manomboka indray raha sendra tsy fahombiazana.
  • Tsy ilaina ny mametraka hidy eo amin'ny latabatra, izay tena zava-dehibe mba hahazoana antoka fa tsy voasakan'ny serivisy na oviana na oviana ny fifamoivoizana fanoratana angona.
  • Ny fisian'ny avo noho ny tranga miverimberina ao amin'ny AWS Availability Zones.

Manohana MySQL sy Postgres izahay amin'izao fotoana izao, anisan'izany ny fametrahana amin'ny AWS RDS sy Aurora. Manohana an'i Cassandra (multi-master) ihany koa izahay. Azonao atao ny mahita antsipiriany bebe kokoa momba ny Delta-Connector eto lahatsoratra amin'ny bilaogy.

Kafka sy ny sosona fitaterana

Ny sosona fitaterana hetsika an'i Delta dia naorina amin'ny serivisy fandefasana hafatra an'ny sehatra vato ifaharana.

Ara-tantara, ny famoahana ao amin'ny Netflix dia natao ho an'ny fidirana fa tsy ho ela velona (jereo eto ambany). lahatsoratra teo aloha). Ny fifampiraharahana dia ny mety ho tsy fitovian'ny angon-drakitra momba ny broker amin'ny sehatra samihafa. Ohatra, fifidianana mpitondra tsy madio dia tompon'andraikitra amin'ny mpandray izay mety ho manana hetsika dika mitovy na very.

Miaraka amin'ny Delta, mila antoka maharitra kokoa izahay mba hiantohana ny fandefasana ny hetsika CDC any amin'ireo magazay nalaina. Ho an'ity tanjona ity dia nanolotra cluster Kafka natao manokana ho zavatra kilasy voalohany izahay. Azonao atao ny mijery ny toe-javatra broker sasany ao amin'ny tabilao etsy ambany:

Delta: Sehatra fampifanarahana sy fanatsarana ny angona

Ao amin'ny clusters Keystone Kafka, fifidianana mpitondra tsy madio matetika tafiditra mba hiantohana ny fahazoana mpitory. Mety hiteraka hafatra very izany raha toa ka voafidy ho mpitarika ny kopia tsy mifanaraka. Ho an'ny cluster Kafka vaovao avo lenta, ny safidy fifidianana mpitondra tsy madio nesorina mba hisorohana ny fahaverezan'ny hafatra.

Nitombo koa izahay antony replication 2 ka hatramin'ny 3 ary replika insync kely indrindra 1 hatramin'ny 2. Mitaky acks avy amin'ny hafa rehetra ny mpanonta manoratra amin'ity cluster ity, miantoka fa ny kopia 2 amin'ny 3 no manana ny hafatra farany nalefan'ny mpamoaka.

Rehefa tapitra ny ohatra broker iray, dia misy ohatra vaovao manolo ny taloha. Na izany aza, ny broker vaovao dia mila manaraka ireo kopia tsy mifanaraka, izay mety haharitra ora maromaro. Mba hampihenana ny fotoana fanarenana amin'ity toe-javatra ity, dia nanomboka nampiasa fitehirizana angon-drakitra fanakanana (Amazon Elastic Block Store) izahay fa tsy diska broker eo an-toerana. Rehefa manolo ohatra broker efa tapaka ny ohatra vaovao, dia ampifandraisina amin'ny volan'ny EBS izay nananan'ilay ohatra natsahatra ary manomboka mahazo hafatra vaovao. Ity dingana ity dia mampihena ny fotoana fialan-tsasatra amin'ny ora mankany amin'ny minitra satria tsy mila mamerina amin'ny fanjakana foana ilay tranga vaovao. Amin'ny ankapobeny, ny fitehirizana misaraka sy ny fiainan'ny broker dia mampihena be ny fiantraikan'ny fifindrana broker.

Mba hampitomboana bebe kokoa ny antoka fanaterana data, dia nampiasa rafitra fanaraha-maso hafatra mba hamantarana izay very hafatra ao anatin'ny toe-javatra faran'izay mafy (ohatra, ny famantaranandro desynchronization ao amin'ny mpitarika fisarahana).

Stream Processing Framework

Ny sosona fanodinana Delta dia naorina eo an-tampon'ny sehatra Netflix SPaaS, izay manome ny fampidirana Apache Flink amin'ny tontolo iainana Netflix. Ny sehatra dia manome interface tsara ho an'ny mpampiasa izay mitantana ny fametrahana ny asa Flink sy ny fandrindrana ny kluster Flink eo an-tampon'ny sehatra fitantanana container Titus. Ny interface ihany koa dia mitantana ny fandrindrana asa ary mamela ny mpampiasa hanova ny fanovana amin'ny fomba mavitrika nefa tsy mila mamerina ny asa Flink.

Delta dia manome rafitra fanodinana stream mifototra amin'ny Flink sy SPaaS izay mampiasa mifototra amin'ny fanamarihana DSL (Fiteny manokana amin'ny domaine) mba hamaritana ny antsipiriany ara-teknika. Ohatra, mba hamaritana ny dingana izay hampanan-karena ny hetsika amin'ny fiantsoana serivisy ivelany, ny mpampiasa dia mila manoratra ity DSL manaraka ity, ary ny rafitra dia hamorona modely mifototra amin'izany, izay hotanterahin'i Flink.

Delta: Sehatra fampifanarahana sy fanatsarana ny angona
Sary 3. Ohatra amin'ny fanatsarana ny DSL ao amin'ny Delta

Ny rafitra fanodinana dia tsy mampihena fotsiny ny curve fianarana, fa manome ihany koa ireo endri-javatra fanodinana mahazatra toy ny deduplication, schematization, ary ny flexibility sy ny faharetana hamahana ny olana mahazatra.

Ny Delta Stream Processing Framework dia misy mody lehibe roa, ny module DSL & API ary ny module Runtime. Ny maody DSL & API dia manome DSL sy UDF (User-Defined-Function) API mba ahafahan'ny mpampiasa manoratra ny lojika fanodinana azy manokana (toy ny sivana na ny fanovana). Ny maody Runtime dia manome fampiharana parser DSL izay manangana fanehoana anatiny ny dingana fanodinana amin'ny maodely DAG. Ny singa Execution dia mandika ny modely DAG mba hanombohana ny fanambarana Flink tena izy ary amin'ny farany dia hampandeha ny fampiharana Flink. Ny rafitry ny rafitra dia aseho amin'ny sary manaraka.

Delta: Sehatra fampifanarahana sy fanatsarana ny angona
Sary 4. Architecture Delta Stream Processing Framework

Ity fomba fiasa ity dia manana tombony maromaro:

  • Ny mpampiasa dia afaka mifantoka amin'ny lojikan'ny orinasany nefa tsy mila mandinika ny mombamomba ny Flink na ny rafitra SPaaS.
  • Ny fanatsarana dia azo atao amin'ny fomba mangarahara amin'ny mpampiasa, ary azo amboarina ny lesoka tsy mila fanovana ny kaody mpampiasa (UDF).
  • Ny traikefa amin'ny fampiharana Delta dia nohamafisina ho an'ny mpampiasa satria ny sehatra dia manome flexibility sy faharetana ivelan'ny boaty ary manangona metrika amin'ny antsipiriany isan-karazany azo ampiasaina amin'ny fanairana.

Fampiasana famokarana

Delta dia namokatra nandritra ny herintaona ary mitana anjara toerana lehibe amin'ny fampiharana Netflix Studio maro. Nanampy ireo ekipa izy mba hampihatra tranga fampiasana toy ny fanondroana fikarohana, fitahirizana angon-drakitra, ary ny fizotran'ny hetsika. Ity ambany ity ny topimaso momba ny maritrano avo lenta amin'ny sehatra Delta.

Delta: Sehatra fampifanarahana sy fanatsarana ny angona
Sary 5. Ny maritrano avo lenta amin'ny Delta.

fankatelemana

Misaotra ireto olona ireto izahay izay nandray anjara tamin'ny famoronana sy ny fampandrosoana ny Delta tao amin'ny 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 ary Zhenzhong Xu.

loharanom-baovao

  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: Fikarakarana hetsika an-tserasera. Commun. ACM 62(5): 43–49 (2019). DOI: doi.org/10.1145/3312527

Misoratra anarana amin'ny webinar maimaim-poana: "Fitaovana fananganana angona ho an'ny fitahirizana Amazon Redshift."

Source: www.habr.com

Add a comment