Andmete jagamine kasutaja ID järgi vs. jagamine geograafilise asukoha järgi
Kasutaja ID alusel andmete killustamine jaotab kirjed unikaalsete kasutajaidentifikaatorite alusel prognoositavate juurdepääsumustrite jaoks, samas kui geograafilise asukoha killustamine jaotab andmed piirkondade kaupa, et minimeerida latentsust ja järgida andmete suveräänsuse seadusi. Mõlemad strateegiad lahendavad mastaabiprobleeme, kuid optimeerivad põhimõtteliselt erinevate prioriteetide jaoks.
Esiletused
Kasutaja ID killustamine välistab kasutajaulatuslike toimingute puhul killustatuseülesed päringud, mistõttu sobib see ideaalselt sotsiaalmeedia- ja tarbijarakenduste jaoks.
Geograafiline killustamine vastab loomulikult andmete residentsuse seadustele ilma rakenduskihi jõustamise keerukuseta
Lihtsustab vastavust GDPR-i, CCPA ja muude piirkondlike andmete asukoha eeskirjadega
See tekitab piirkondade vahel reisivatele kasutajatele keerukust, mis nõuab andmete sünkroniseerimist või puhverserveri kihte
Võimaldab suure liiklusega piirkondade sõltumatut skaleerimist ilma teisi geograafilisi segmente mõjutamata
Nõuab põhjalikku katastroofidejärgset taastamisplaani, kuna piirkondlikud katkestused võivad isoleerida terveid kasutajaskondi
Võrdlustabel
Funktsioon
Andmete jagamine kasutaja ID järgi
Sharding geograafilise asukoha järgi
Peamine jaotusvõti
Kasutaja ID (räsi või vahemik)
Geograafiline piirkond või andmekeskus
Latentsuse optimeerimine
Ühtne kõigile kasutajatele olenemata asukohast
Optimeeritud kasutajatele nende määratud shardi lähedal
Andmete suveräänsus
Nõuab täiendavat loogikat piirkondliku vastavuse tagamiseks
Loomulikult jõustab piirkondliku andmete residentsuse
Päringumustri efektiivsus
Suurepärane kasutaja poolt määratud ulatusega toimingute jaoks
Suurepärane asukohapõhise analüüsi jaoks
Kuuma koha risk
Kõrge, kui kasutajate aktiivsus on ebaühtlaselt jaotunud
Kõrge, kui rahvastikutihedus varieerub märkimisväärselt
Kildudevaheline keerukus
Kasutajapäringute puhul minimaalne; globaalsete koondamiste puhul kõrge
Minimaalne piirkondlike päringute puhul; kõrge globaalsete aruannete puhul
Operatiivsed üldkulud
Madalam; lihtsam kildude haldus
Kõrgem; nõuab mitme piirkonna orkestreerimist
Tõrkesiirde käitumine
Kasutajaandmed jäävad kättesaadavaks mis tahes shard-replikast
Regionaalne katkestus võib vajada piirkondadevahelist ümbersuunamist
Üksikasjalik võrdlus
Toimivusomadused
Kasutaja ID killustamine pakub märkimisväärselt prognoositavat jõudlust, kuna iga päring on suunatud ühele killule. Kui süsteem on kasutaja ID räsinud ja päringu suunanud, pole enam ebaselgust andmete asukoha osas. Geograafiline killustamine seevastu särab siis, kui millisekundid on kasutajakogemuse jaoks olulised. Tokyos asuv kasutaja, kes ühendab end Tokyos asuva killuga, näeb oluliselt madalamat latentsusaega kui siis, kui tema andmed asuksid Virginia andmekeskuses. Kompromiss ilmneb siis, kui keegi reisib: tema andmed jäävad paigale, seega kauged päringud maksavad latentsusaja trahvi.
Vastavus ja juriidilised nõuded
GDPR ja sarnased raamistikud on muutnud geograafilise killustamise üha atraktiivsemaks. Kui Prantsuse kasutajate andmed ei lahku kunagi Pariisi piirkonna killust, saavad vastavusmeeskonnad rahulikumalt magada. Kasutaja ID killustamine võib endiselt eeskirju täita, kuid see nõuab täiendavat rakenduskihi loogikat andmete märgistamiseks, jälgimiseks ja liikumise piiramiseks. Mõned organisatsioonid rakendavad hübriidlähenemisi – killustamist kasutaja ID järgi geograafilistes piirides –, et saada kasu mõlemast strateegiast.
Operatiivne keerukus
Kasutajatunnusega killustatud klastri käitamine on tavaliselt operatiivselt lihtsam. Lisate kilde, jaotate räsivahemikke ümber ja jälgite tasakaalustamatust. Geograafiline killustumine mitmekordistab operatsioonipinda: mitu pilvepiirkonda, nendevaheline võrgustumine, replikatsiooni viivituse jälgimine mandrite lõikes ja erinevad rikkerežiimid. Meeskonnad vajavad geograafiliste juurutuste tõhusaks haldamiseks küpseid jälgitavuse tavasid ja sageli spetsiaalseid platvormi inseneriressursse.
Andmemudel ja juurdepääsumustrid
Sügavalt kasutajakesksete mudelitega rakendused – sotsiaalmeedia profiilid, sõnumiajalugu, isiklikud armatuurlauad – seostuvad loomulikult kasutaja ID killustamisega. Iga funktsioonipäring algab sõnadega „sellele kasutajale“, mistõttu on killustamisvõti ilmselge. Geograafiline killustamine sobib paremini olukordadesse, kus asukoht ise annab väärtust: sisuedastusvõrgud, piirkondlikud turuplatsid või asjade interneti platvormid, kus anduriandmetel on tugev ruumiline lokaalsus. Vale valimine avaldub sageli valulike lahendustena kuus kuud hiljem.
Skaleeritavuse trajektoor
Kasutaja ID killustamine skaleerub lineaarselt kasutajaskonna kasvuga. Iga uus kild neelab osa kasutajatest ja süsteem kasvab prognoositavalt. Geograafiline killustamine skaleerub piirkondliku nõudlusega: Kagu-Aasia kasutajate arvu plahvatuslik kasv tähendab selle konkreetse kildklastri skaleerimist. Viimane võib viia küpsete turgude võimsuse piiramiseni, samal ajal kui uute turgude pakkumisega on kiire. Nutikas võimsuse planeerimine muutub hädavajalikuks.
Plussid ja miinused
Andmete jagamine kasutaja ID järgi
Eelised
+Ennustatav päringute marsruutimine
+Lihtsam tegevusmudel
+Kasutajate ristlõikeotsinguid ei tehta
+Lihtne võimsuse tasakaalustamine
+Ühtne andmestruktuur
Kinnitatud
−Vastavus nõuab lisaloogikat
−Reisivatel kasutajatel on latentsus
−Ebaühtlane kasutajate aktiivsus loob levialasid
−Globaalne analüüs vajab koondamist
−Piirkonna vead mõjutavad juhuslikke kasutajaid
Sharding geograafilise asukoha järgi
Eelised
+Madal latentsus kohalikele kasutajatele
+Sisseehitatud vastavus regulatiivsetele nõuetele
+Sõltumatu piirkondlik skaleerimine
+Loodusõnnetuste isoleerimine
+Piirkondlik kohandamine on lubatud
Kinnitatud
−Komplekssed mitme piirkonna operatsioonid
−Reisivate kasutajate andmed jäävad alles
−Piirkondadevahelise replikatsiooni kulud
−Globaalsed päringud nõuavad föderatsiooni
−Piirkonna katkestused isoleerivad elanikkonda
Tavalised eksiarvamused
Müüt
Kasutaja ID killustamine ei vasta andmete suveräänsuse nõuetele.
Tõelisus
Piisavate rakendustasandi kontrollidega – kirjete sildistamine elukohanõuetega ja marsruutimisreeglite jõustamine – saavad kasutajatunnusega killustatud süsteemid eeskirjadega kooskõlas olla. Koormus langeb pigem inseneridistsipliinile kui arhitektuurilisele võimatusele. Paljud ettevõtted rakendavad seda edukalt, kuigi see nõuab suuremat koodi keerukust kui geograafiline killustamine.
Müüt
Geograafiline killustumine annab alati parema jõudluse.
Tõelisus
Jõudluse paranemine realiseerub ainult kasutajate puhul, kes asuvad neile määratud killu lähedal. Brasiilia kasutaja, kellel on andmed São Paulos, kogeb suurepärast latentsusaega, kuid sama kasutaja Tokyos kannatab selle all. Ilma intelligentse marsruutimise või andmete replikatsioonita võib geograafiline killustamine mobiilse või reisiva elanikkonna jõudlust märkimisväärselt halvendada.
Müüt
Shard-võtme valik on püsiv ja pöördumatu.
Tõelisus
Kuigi killustikuvõtmete muutmine on tõeliselt valus ja riskantne, pole see võimatu. Organisatsioonid on kasutajatunnustelt geograafilisele killustatusele ja vastupidi üle läinud hoolikate topeltkirjutamise perioodide, andmete migreerimise ja üleminekustrateegiate abil. Maksumus on kõrge – sageli kuude pikkune inseneritöö –, kuid arhitektuur saab areneda vastavalt ärivajadustele.
Müüt
Kasutaja ID killustamine hoiab automaatselt ära levialade leviku.
Tõelisus
Kasutajatunnuste räsimine jaotab võtmed ühtlaselt ainult siis, kui aluseks olev jaotus on ühtlane. Järjestikune kasutajatunnuste määramine, hulgimport või ebaproportsionaalselt suurt aktiivsust genereerivad võimekad kasutajad loovad kõik tasakaalustamatuse. Jälgimine ja tasakaalustamine jäävad olulisteks operatiivseteks ülesanneteks olenemata killuvõtme valikust.
Müüt
Geograafiline killustamine lihtsustab andmebaasi haldamise kõiki aspekte.
Tõelisus
Kuigi vastavus ja kohalik latentsus paranevad, toob geograafiline killustatus kaasa märkimisväärset keerukust järjepidevusmudelites, konfliktide lahendamises partitsioonide ajal ja operatiivses jälgimises piirkondade vahel. Ühe dimensiooni lihtsustamine tekitab sageli teistes varjatud kulusid, mis ilmnevad intsidentidele reageerimise ajal.
Sageli küsitud küsimused
Mis juhtub kasutaja andmetega, kui nad reisivad rahvusvaheliselt geograafilise killustatuse abil?
Nende andmed jäävad algsesse piirkonda, välja arvatud juhul, kui rakendus rakendab selgesõnalisi migreerimis- või vahemällu salvestamise strateegiaid. Mõned platvormid kasutavad latentsuse vähendamiseks lugemiskoopiaid kaugetes piirkondades, hoides samal ajal autoriteetset koopiat kodupiirkonnas. Teised rakendavad konfliktide lahendamisega lõplikke järjepidevuse mudeleid. Kasutajakogemus sõltub täielikult sellest, kuidas insenerimeeskond seda levinud stsenaariumi ette nägi.
Kuidas käsitleda kasutajat, kellel on tohutu andmemaht kasutaja ID-ga piiratud süsteemis?
Insenerid rakendavad tavaliselt astmelisi strateegiaid: jagavad kasutaja andmed kildude vahel alamvõtmete (näiteks ajavahemike) abil, kasutavad ületäituvaid kildude andmeid või arhiveerivad külmandmeid. Mõned andmebaasid toetavad kildude jagamist, kus üks kuum kildud jaguneb kaheks. Peamine on tasakaalustamatuse varajane tuvastamine jälgimise abil ja automatiseerimine, mis reageerib enne jõudluse halvenemist.
Kas saate mõlemad varjutamisstrateegiad ühes arhitektuuris kombineerida?
Absoluutselt, ja paljud suured platvormid teevad just seda. Levinud muster killustab esmalt geograafilise asukoha järgi – tagades andmete asukoha – ja seejärel rakendab igas piirkonnas kasutaja ID killustamist. See kahetasandiline lähenemisviis hõlmab vastavuse eeliseid ja kasutajakeskse päringu tõhusust. Kompromissiks on süsteemi suurem keerukus ja vajadus hoolika marsruutimisloogika järele mitmel tasandil.
Millised pilveteenuse pakkujad pakuvad hallatud teenuseid, mis lihtsustavad neid killustamisstrateegiaid?
AWS pakub DynamoDB-d globaalsete tabelitega geograafilise jaotuse ja partitsioonivõtmetega kasutaja ID-stiilis killustamiseks. Google Cloud Spanner pakub automaatset killustamist geograafilise paigutuse direktiividega. Azure Cosmos DB võimaldab partitsioonivõtmeid mitme piirkonna kirjutamisega. Igaüks neist abstrakteerib teatud keerukust, kuid nõuab siiski läbimõeldud võtmete kujundamist ja partitsioonimõõdikute jälgimist, et vältida piiramist.
Kuidas mõjutab kasutaja ID alusel killustamine varundamist ja katastroofidejärgset taastamist?
Varundamine muutub lihtsaks iga fragmendi jaoks ja ühe kasutaja andmete taastamine on täpne. Kuid globaalne järjepidevus eri fragmendide vahel varundusakende ajal nõuab koordineerimist. Katastroofidejärgsed taasteplaanid peavad arvestama fragmendi tasemel riketega: fragmendi kaotamine mõjutab konkreetseid kasutajavahemikke, seega tuleb koopiafragmentidele üleminek ja taastamisaja eesmärgid arvutada fragmendirühma kohta.
Millised jälgimisnäitajad on geograafilise killustatuse puhul kõige olulisemad?
Regioonidevaheline replikatsiooni viivitus on nimekirja tipus, millele järgnevad päringute latentsuse jaotus piirkondade kaupa, veamäära erinevus piirkondade vahel ja maksumus piirkondade kaupa. Meeskonnad jälgivad ka piirkondadevahelisi andmeedastusmahtusid, kuna väljundtasud kogunevad kiiresti. Piirkondliku seisundi kohta eraldi hoiatamine hoiab ära kaskaadsete tõrgete varjamise globaalsete keskmiste poolt.
Kas räsipõhise ja vahemikupõhise kasutaja ID varieerimise vahel on jõudluses erinevus?
Räsipõhine jaotus hajutab kasutajad juhuslikult, hoides ära järjestikuste levialade tekkimise, kuid raskendades vahemiku päringuid. Vahemikupõhine killustamine säilitab järjestuse, võimaldades kasutaja ID-de vahemike tõhusat skannimist, kuid riskib levialade tekkega, kui ID-d korreleeruvad aktiivsusmustritega. Enamik suuremahulisi süsteeme eelistab kirjutamisjaotuse jaoks räsipõhist jaotust ja haldab seejärel vahemikule juurdepääsu vajaduste jaoks eraldi indekseid.
Kuidas sa kildude tasakaalu taastad ilma seisakuid tekitamata?
Kaasaegsed lähenemisviisid kasutavad järjepidevat räsimist või inkrementaalset migratsiooni kahekordse kirjutamise perioodidega. Süsteem kirjutab nii vanadesse kui ka uutesse shardi asukohtadesse, täites järk-järgult ajaloolisi andmeid, seejärel lülitab lugemise ümber. Mõned andmebaasid, näiteks Cassandra, tegelevad tasakaalustamisega automaatselt. Kriitiline element on rakenduse järjepidevuse säilitamine ülemineku ajal, mida sageli kontrollitakse variliikluse või kontrollsumma valideerimise abil.
Milline roll on vahemällu salvestamisel igas killustamisstrateegias?
Vahemälus salvestamine võimendab eeliseid erinevalt. Kasutaja ID killustamisel paikneb kasutajapõhine vahemälu kiht loomulikult killu kõrval, vähendades andmebaasi koormust prognoositavalt. Geograafiline killustamine saab kasu servavahemälust kasutajatele lähemal, kuid vahemälu kehtetuks tunnistamine piirkondades tekitab keerukust. Mõlemad strateegiad nõuavad vahemälu sidususe arvestamist, kuid geograafilised juurutused seisavad silmitsi täiendavate järjepidevusprobleemidega hajutatud vahemälu sõlmede vahel.
Millal peaks idufirma valima ühe strateegia teise asemel?
Globaalsete ambitsioonide, kuid piiratud ressurssidega varases staadiumis ettevõtted alustavad sageli lihtsuse huvides kasutajatunnuste killustamisega, seejärel lisavad geograafilised dimensioonid vastavusvajaduste ilmnemisel. Kui toode on oma olemuselt lokaalne – kinnisvara, kohalik tarne, piirkondlikud turuplatsid –, hoiab geograafiline killustamine esimesest päevast alates ära hilisema valuliku migratsiooni. Otsus sõltub pigem regulatiivsest ajakavast ja kasutajate liikuvuse mustritest kui tehnilisest puhtusest.
Kuidas analüütikapäringud eri andmebaasides töötavad?
Tavaliselt vajavad need agregeerimiskihte – kas föderaalseid päringumootoreid, mis hajutavad ja koguvad andmeid kõigist kildudest, või ETL-torustikke, mis koondavad andmeid andmeladudesse. Kasutaja ID killustamine muudab kasutajataseme analüüsi kiireks, kuid globaalse koondamise aeglaseks. Geograafiline killustamine kiirendab piirkondlikku aruandlust, kuid muudab ülemaailmsete kokkuvõtete koostamise keerulisemaks. Enamik organisatsioone aktsepteerib seda kompromissi ja investeerib eraldi analüüsitaristusse, selle asemel et tehingulisi kildudest üle koormata.
Mis on suurim viga, mida meeskonnad kummagi strateegia rakendamisel teevad?
Oma esialgse shardivõtme valiku jäikuse alahindamine. Meeskonnad optimeerivad sageli tänapäeva teadaolevate piirangute jaoks, ette nägemata äri arengut – uutele turgudele sisenemist, erineva arhitektuuriga ettevõtete omandamist või ootamatute regulatiivsete muudatustega silmitsi seismist. Abstraktsioonikihtide loomine shardi marsruutimise ümber ja migratsiooni käsiraamatute haldamine algusest peale hoiab ära arhitektuurilise paralüüsi aastaid hiljem.
Otsus
Valige kasutaja ID killustamine, kui teie rakendus on põhimõtteliselt kasutajakeskne, latentsus iga globaalse kasutaja puhul on vastuvõetav ja toimimise lihtsus on oluline. Valige geograafiline killustamine, kui piirkondlik vastavus on vältimatu, kasutuskogemus nõuab kohalikku kohalolekut või teie andmetel on sisemised ruumilised seosed. Paljud küpsed platvormid arenevad lõpuks kahetasandilise lähenemisviisi suunas: geograafilised piirid, mis sisaldavad kasutaja ID killustatud klastreid.