deljenje podatkovne bazeporazdeljeni sistemiarhitektura-oblakaskalabilnostpodatkovna suverenostinfrastruktura v oblaku
Deljenje podatkov po uporabniškem ID-ju v primerjavi z deljenjem po geografski lokaciji
Deljenje podatkov po uporabniškem ID-ju distribuira zapise na podlagi edinstvenih uporabniških identifikatorjev za predvidljive vzorce dostopa, medtem ko deljenje podatkov po geografski lokaciji razdeli podatke po regijah, da se zmanjša zakasnitev in zagotovi skladnost z zakoni o suverenosti podatkov. Obe strategiji rešujeta izzive obsega, vendar optimizirata za bistveno različne prioritete.
Poudarki
Deljenje uporabniških ID-jev odpravlja poizvedbe med deljenimi deli za operacije, omejene na uporabnika, zaradi česar je idealno za družbene in potrošniške aplikacije.
Geografsko deljenje naravno izpolnjuje zakone o prebivališču podatkov brez zapletenosti izvrševanja na ravni aplikacije
Vroče točke se kažejo različno: uporabniki znanih osebnosti za deljenje uporabniških ID-jev, gosto poseljena velemesta za geografsko deljenje
Hibridne arhitekture vse bolj združujejo obe strategiji za globalne platforme, ki se soočajo z regulativnim pritiskom
Kaj je Deljenje podatkov po uporabniškem ID-ju?
Razdeli podatke med delce z uporabo enoličnih uporabniških identifikatorjev kot distribucijskega ključa.
Particioniranje na podlagi zgoščene vrednosti ali obsega na uporabniškem ID-ju zagotavlja, da so vsi zapisi za enega uporabnika na enem fragmentu.
Odpravlja navzkrižne združitve delcev za poizvedbe, osredotočene na uporabnika, kar dramatično izboljša učinkovitost branja.
Omogoča enostavno ponovno uravnoteženje segmentov pri dodajanju zmogljivosti z migracijo določenih uporabniških obsegov
Ustvari potencialne žarišča, če določeni uporabniki ustvarijo nesorazmerno več podatkov ali prometa
Zahteva skrbno načrtovanje dodelitve user_id, da se izognemo zaporednim vzorcem, ki povzročajo neenakomerno porazdelitev
Kaj je Sharding po geografski lokaciji?
Distribuira podatke po regionalnih delcih glede na fizično lokacijo ali bližino.
Usmerja uporabniške zahteve do najbližjega podatkovnega centra, kar zmanjšuje zakasnitev povratnega prenosa za globalne aplikacije.
Poenostavlja skladnost z GDPR, CCPA in drugimi regionalnimi predpisi o shranjevanju podatkov
Uvaja kompleksnost za uporabnike, ki potujejo med regijami, saj zahteva sinhronizacijo podatkov ali proxy sloje
Omogoča neodvisno skaliranje območij z veliko prometa brez vpliva na druge geografske fragmente
Zahteva robustno načrtovanje za obnovo po nesreči, saj lahko regionalni izpadi izolirajo celotne uporabniške populacije
Primerjalna tabela
Funkcija
Deljenje podatkov po uporabniškem ID-ju
Sharding po geografski lokaciji
Primarni distribucijski ključ
ID uporabnika (zgoščena vrednost ali obseg)
Geografska regija ali podatkovni center
Optimizacija zakasnitve
Enako za vse uporabnike ne glede na lokacijo
Optimizirano za uporabnike v bližini dodeljenega fragmenta
Suverenost podatkov
Zahteva dodatno logiko za uveljavljanje regionalne skladnosti
Seveda uveljavlja regionalno prebivališče podatkov
Učinkovitost vzorca poizvedb
Odlično za operacije, omejene na uporabnika
Odlično za analitiko na podlagi lokacije
Tveganje vročih točk
Visoka, če je uporabniška aktivnost neenakomerno porazdeljena
Visoka, če se gostota prebivalstva znatno spreminja
Kompleksnost med delci
Minimalno za uporabniške poizvedbe; visoko za globalne agregacije
Minimalno za regionalne poizvedbe; visoko za globalna poročila
Operativni režijski stroški
Nižje; enostavnejše upravljanje drobcev
Višje; zahteva orkestracijo v več regijah
Vedenje ob preklopu ob okvari
Uporabniški podatki so še vedno dostopni iz katere koli replike delčkov
Regionalni izpad lahko zahteva preusmeritev med regijami
Podrobna primerjava
Značilnosti delovanja
Deljenje uporabniških ID-jev zagotavlja izjemno predvidljivo delovanje, saj vsaka poizvedba cilja na en sam delček. Ko sistem zgošči uporabniški ID in usmeri zahtevo, ni dvoumnosti glede tega, kje se podatki nahajajo. Geografsko deljenje pa je izjemno učinkovito, ko so za uporabniško izkušnjo pomembne milisekunde. Uporabnik v Tokiu, ki se obrne na delček s sedežem v Tokiu, bo opazil bistveno manjšo zakasnitev, kot če bi se njegovi podatki nahajali v podatkovnem centru v Virginiji. Kompromis se pojavi, ko nekdo potuje: njegovi podatki ostanejo na mestu, zato oddaljene zahteve plačajo kazen zakasnitve.
Skladnost in pravne zahteve
GDPR in podobni okviri so geografsko deljenje naredili vse bolj privlačno. Ko francoski uporabniški podatki nikoli ne zapustijo deljenja v pariški regiji, ekipe za skladnost spijo mirneje. Deljenje uporabniških ID-jev lahko še vedno izpolnjuje predpise, vendar zahteva dodatno logiko na ravni aplikacije za označevanje, sledenje in omejevanje premikanja podatkov. Nekatere organizacije uporabljajo hibridne pristope – deljenje po uporabniških ID-jih znotraj geografskih meja – da bi izkoristile prednosti obeh strategij.
Operativna kompleksnost
Izvajanje gruče z deljenim uporabniškim ID-jem je običajno operativno enostavnejše. Dodate deljene dele, prerazporedite razpone zgoščevalnih vrednosti in spremljate neravnovesja. Geografsko deljenje pomnoži operativno površino: več oblačnih regij, mreženje med njimi, spremljanje zamika replikacije po celinah in različni načini odpovedi. Ekipe potrebujejo zrele prakse opazovanja in pogosto namenske vire inženiringa platforme za učinkovito upravljanje geografskih uvajanj.
Podatkovni model in vzorci dostopa
Aplikacije z modeli, ki so močno osredotočeni na uporabnika – družabni profili, zgodovina sporočil, osebne nadzorne plošče – se naravno preslikajo na delitev uporabniških ID-jev. Vsaka zahteva za funkcijo se začne z »za tega uporabnika«, zaradi česar je ključ delitve očiten. Geografska delitev se bolje prilega, kadar sama lokacija ustvarja vrednost: omrežja za dostavo vsebin, regionalni trgi ali platforme interneta stvari, kjer imajo podatki senzorjev močno prostorsko lokalnost. Napačna izbira se pogosto pokaže kot boleče rešitve šest mesecev pozneje.
Trajektorija skalabilnosti
Deljenje uporabniških ID-jev se linearno prilagaja rasti uporabniške baze. Vsak nov delček absorbira del uporabnikov in sistem raste predvidljivo. Geografsko deljenje se prilagaja regionalnemu povpraševanju: Eksplozija uporabnikov v jugovzhodni Aziji pomeni povečanje te specifične skupine delčkov. Slednje lahko privede do nasedlih zmogljivosti na zrelih trgih, hkrati pa se poskuša zagotoviti zmogljivosti na nastajajočih. Pametno načrtovanje zmogljivosti postane bistveno.
Prednosti in slabosti
Deljenje podatkov po uporabniškem ID-ju
Prednosti
+Predvidljivo usmerjanje poizvedb
+Enostavnejši operativni model
+Brez iskanja uporabnikov med različnimi delci
+Enostavno ponovno uravnoteženje zmogljivosti
+Enotna podatkovna struktura
Vse
−Skladnost zahteva dodatno logiko
−Uporabniki na potovanjih se soočajo z zakasnitvijo
−Neenakomerna uporabniška aktivnost ustvarja vroča mesta
−Globalna analitika potrebuje združevanje
−Napake v regijah vplivajo na naključne uporabnike
Sharding po geografski lokaciji
Prednosti
+Nizka latenca za lokalne uporabnike
+Vgrajena skladnost s predpisi
+Neodvisno regionalno skaliranje
+Izolacija zaradi naravnih nesreč
+Regionalna prilagoditev omogočena
Vse
−Kompleksne operacije v več regijah
−Podatki o potujočih uporabnikih ostanejo zadaj
−Stroški replikacije med regijami
−Globalne poizvedbe zahtevajo federacijo
−Izpadi v regiji izolirajo prebivalstvo
Pogoste zablode
Mit
Deljenje uporabniških ID-jev ne more izpolniti zahtev glede suverenosti podatkov.
Resničnost
zadostnimi kontrolami na ravni aplikacije – označevanjem zapisov z zahtevami glede prebivališča in uveljavljanjem pravil usmerjanja – lahko sistemi z deljenim uporabniškim ID-jem izpolnjujejo predpise. Breme pade na inženirsko disciplino in ne na arhitekturno nezmožnost. Številna podjetja to uspešno izvajajo, čeprav zahteva večjo kompleksnost kode kot geografsko deljenje.
Mit
Geografsko deljenje vedno zagotavlja boljšo zmogljivost.
Resničnost
Izboljšanje zmogljivosti se zgodi le uporabnikom v bližini dodeljenega segmenta. Brazilski uporabnik s podatki v São Paulu ima odlično zakasnitev, isti uporabnik v Tokiu pa trpi. Brez inteligentnega usmerjanja ali podvajanja podatkov lahko geografsko segmentiranje znatno zmanjša zmogljivost za mobilne ali potujoče populacije.
Mit
Izbira ključa delca je trajna in nepreklicna.
Resničnost
Čeprav je spreminjanje ključev delčkov resnično boleče in tvegano, ni nemogoče. Organizacije so prešle z uporabniškega ID-ja na geografsko delitev in obratno s skrbnimi obdobji dvojnega pisanja, migracijo podatkov in strategijami preklopa. Stroški so visoki – pogosto meseci inženirskega dela – vendar se arhitektura lahko razvija skupaj s poslovnimi potrebami.
Zgoščevanje uporabniških ID-jev enakomerno porazdeli ključe le, če je osnovna porazdelitev enakomerna. Zaporedno dodeljevanje uporabniških ID-jev, množični uvozi ali močni uporabniki, ki ustvarjajo nesorazmerno aktivnost, ustvarjajo neravnovesje. Spremljanje in ponovno uravnoteženje ostajata bistveni operativni nalogi ne glede na izbiro ključa delca.
Mit
Geografsko deljenje poenostavi vse vidike upravljanja baz podatkov.
Resničnost
Medtem ko se skladnost in lokalna zakasnitev izboljšujeta, geografsko delitev podatkov uvaja precejšnjo kompleksnost v modele skladnosti, reševanje konfliktov med particioniranjem in operativno spremljanje med regijami. Poenostavitev v eni dimenziji pogosto ustvarja skrite stroške v drugih, ki se pojavijo med odzivanjem na incidente.
Pogosto zastavljena vprašanja
Kaj se zgodi z uporabnikovimi podatki, ko potujejo v tujino z geografskim deljenjem?
Njihovi podatki ostanejo v izvirni regiji, razen če aplikacija ne implementira eksplicitnih strategij migracije ali predpomnjenja. Nekatere platforme uporabljajo replike za branje v oddaljenih regijah za zmanjšanje zakasnitve, medtem ko avtoritativno kopijo ohranijo v domači regiji. Druge implementirajo modele morebitne skladnosti z reševanjem konfliktov. Uporabniška izkušnja je v celoti odvisna od tega, kako je inženirska ekipa predvidela ta pogost scenarij.
Kako ravnati z uporabnikom z ogromno količino podatkov v sistemu z deljeno uporabniško identifikacijo?
Inženirji običajno uporabljajo večplastne strategije: razdelitev uporabnikovih podatkov med delci po podključih (kot so časovni razponi), uporabo prelivnih delcev ali arhiviranje hladnih podatkov. Nekatere baze podatkov podpirajo razdelitev delcev, kjer se en vroči del razdeli na dva. Ključno je zgodnje odkrivanje neravnovesja s spremljanjem in avtomatizacijo za odzivanje, preden se zmogljivost poslabša.
Ali lahko obe strategiji strganja združite v eni arhitekturi?
Absolutno, in številne velike platforme počnejo prav to. Običajen vzorec je, da se najprej razdelijo po geografskih podatkih – kar zagotavlja rezidenco podatkov – nato pa se znotraj vsake regije uporabi razdelitev uporabniških ID-jev. Ta dvostopenjski pristop zajema prednosti skladnosti in učinkovitost poizvedb, osredotočenih na uporabnika. Slaba stran je povečana kompleksnost sistema in potreba po skrbni logiki usmerjanja na več plasteh.
Kateri ponudniki storitev v oblaku ponujajo upravljane storitve, ki poenostavljajo te strategije delitve?
AWS ponuja DynamoDB z globalnimi tabelami za geografsko porazdelitev in particijskimi ključi za deljenje v slogu uporabniškega ID-ja. Google Cloud Spanner zagotavlja samodejno deljenje z direktivami za geografsko umestitev. Azure Cosmos DB omogoča particijske ključe z zapisovanjem v več regijah. Vsako od tega nekoliko zmanjša kompleksnost, vendar še vedno zahteva premišljeno zasnovo ključev in spremljanje metrik particij, da se prepreči omejevanje.
Kako deljenje po uporabniškem ID-ju vpliva na varnostno kopiranje in obnovo po katastrofi?
Varnostne kopije postanejo preproste operacije za posamezne delce, obnavljanje podatkov posameznega uporabnika pa je natančno. Vendar pa globalna skladnost med delci med okni varnostnega kopiranja zahteva usklajevanje. Načrti za obnovo po katastrofi morajo upoštevati napake na ravni delcev: izguba delca vpliva na določene obsege uporabnikov, zato je treba preklop na replike delcev in ciljne čase obnovitve izračunati za vsako skupino delcev.
Katere metrike spremljanja so najpomembnejše za geografsko deljenje?
Na vrhu seznama je zakasnitev replikacije med regijami, sledijo ji porazdelitev zakasnitve zahtev na regijo, odstopanje stopnje napak med regijami in stroški na regijo. Ekipe spremljajo tudi količino prenosa podatkov med regijami, saj se stroški izhoda hitro kopičijo. Neodvisno opozarjanje na regionalno stanje preprečuje, da bi se kaskadne napake prikrile zaradi globalnih povprečij.
Ali obstaja razlika v zmogljivosti med deljenjem uporabniških ID-jev na podlagi zgoščene vrednosti in deljenjem na podlagi obsega?
Distribucija na podlagi zgoščene vrednosti (hash) naključno razprši uporabnike, kar preprečuje zaporedne vroče točke, vendar otežuje poizvedbe po obsegu. Razdrobljenost na podlagi obsega ohranja vrstni red in omogoča učinkovito skeniranje obsegov uporabniških ID-jev, vendar tvega vroče točke, če se ID-ji ujemajo z vzorci dejavnosti. Večina obsežnih sistemov raje uporablja zgoščeno vrednost za distribucijo pisanja, nato pa vzdržuje ločene indekse za potrebe dostopa do obsega.
Kako ponovno uravnotežiš drobce brez izpadov?
Sodobni pristopi uporabljajo dosledno zgoščevanje ali inkrementalno migracijo z dvojnimi obdobji pisanja. Sistem zapisuje tako na stare kot na nove lokacije delčkov, medtem ko postopoma zapolnjuje zgodovinske podatke, nato pa preklopi na branje. Nekatere baze podatkov, kot je Cassandra, samodejno obvladujejo ponovno uravnoteženje. Ključni element je ohranjanje doslednosti aplikacije med prehodom, kar se pogosto preveri s senčnim prometom ali preverjanjem kontrolne vsote.
Kakšno vlogo igra predpomnjenje v vsaki strategiji delitve podatkov?
Predpomnjenje različno povečuje prednosti. Pri deljenju uporabniškega ID-ja se plast predpomnilnika, omejena na uporabnika, naravno nahaja ob delcu, kar predvidljivo zmanjša obremenitev baze podatkov. Geografsko deljenje ima koristi od robnega predpomnjenja bližje uporabnikom, vendar razveljavitev predpomnilnika v regijah uvaja kompleksnost. Obe strategiji zahtevata upoštevanje skladnosti predpomnilnika, vendar se geografske uvedbe soočajo z dodatnimi izzivi skladnosti v porazdeljenih vozliščih predpomnilnika.
Kdaj naj se zagonsko podjetje odloči za eno strategijo namesto druge?
Podjetja v zgodnji fazi z globalnimi ambicijami, a omejenimi viri, pogosto začnejo z deljenjem uporabniških ID-jev zaradi enostavnosti, nato pa dodajo geografske dimenzije, ko se pojavijo potrebe po skladnosti. Če je izdelek po naravi lokalen – nepremičnine, lokalna dostava, regionalni trgi – geografsko deljenje od prvega dne preprečuje boleče selitve pozneje. Odločitev je bolj odvisna od regulativnega časovnega okvira in vzorcev mobilnosti uporabnikov kot od tehnične čistosti.
Kako delujejo analitične poizvedbe v deljenih bazah podatkov?
Običajno zahtevajo agregacijske plasti – bodisi federativne mehanizme za poizvedbe, ki razpršijo in zbirajo podatke iz vseh fragmentov, bodisi cevovode ETL, ki se združijo v podatkovna skladišča. Deljenje uporabniških ID-jev pospeši analitiko na ravni uporabnikov, globalno agregiranje pa upočasni. Geografsko deljenje pospeši regionalno poročanje, vendar otežuje svetovne povzetke. Večina organizacij sprejme ta kompromis in vlaga v ločeno analitično infrastrukturo, namesto da bi preobremenila transakcijske fragmente.
Katera je največja napaka, ki jo ekipe naredijo pri izvajanju katere koli strategije?
Podcenjevanje togosti začetne izbire ključa delčkov. Ekipe pogosto optimizirajo za danes znane omejitve, ne da bi predvidele razvoj poslovanja – vstop na nove trge, prevzem podjetij z drugačno arhitekturo ali soočanje z nepričakovanimi regulativnimi spremembami. Gradnja abstrakcijskih plasti okoli usmerjanja delčkov in vzdrževanje migracijskih runbookov od samega začetka preprečuje arhitekturno paralizo leta kasneje.
Ocena
Izberite deljenje uporabniških ID-jev, kadar je vaša aplikacija v osnovi osredotočena na uporabnika, kadar je zakasnitev do katerega koli globalnega uporabnika sprejemljiva in kadar je pomembna preprostost delovanja. Za geografsko deljenje se odločite, kadar regionalna skladnost ni obvezna, kadar uporabniška izkušnja zahteva lokalno prisotnost ali kadar imajo vaši podatki notranje prostorske odnose. Številne zrele platforme se sčasoma razvijejo v dvonivojski pristop: geografske meje, ki vsebujejo gruče, deljene na podlagi uporabniških ID-jev.