3.4 Pensaernïaeth a storio data
Trosolwg a chymhelliant
Mae data’n goroesi cod. Mae cymwysiadau’n cael eu hailysgrifennu bob ychydig flynyddoedd, ond mae’r data y maent yn ei reoli (cofnodion cwsmeriaid, cyfrifon ariannol, hanesion budd-daliadau, cofnodion iechyd) yn parhau am ddegawdau. Yn aml dyma ased mwyaf gwerthfawr a mwyaf rheoledig y sefydliad. Pensaernïaeth data yw’r ddisgyblaeth o benderfynu sut mae’r data hwnnw’n cael ei fodelu, ble mae’n cael ei storio, sut mae’n cael ei gadw’n gyson, sut mae’n esblygu, a sut mae’n cael ei wasanaethu’n ddigon cyflym ar raddfa fawr. I sefydliad mawr mae’r penderfyniadau hyn yn sylfaenol. Mae eich dewis o beiriannau storio a modelau data’n cyfyngu ar yr hyn y gall y busnes ei wneud, pa mor gyflym y gall symud, a faint mae’n ei gostio, am oes gyfan y system.
Mae’r risgiau ar eu huchaf mewn menter a llywodraeth oherwydd graddfa, hirhoedledd, a rheoleiddio. Ni ddylai storfa drafodion banc byth golli na chyfrif ceiniog ddwywaith. Rhaid i gofrestrfa lywodraeth gadw cofnodion am gyfnodau statudol a phrofi eu cywirdeb i archwilwyr. Rhaid i system iechyd orfodi rheolau mynediad a phreswyliad manwl. Ar yr un pryd, mae’r sefydliadau hyn yn gwasanaethu cyfeintiau darllen ac ysgrifennu enfawr ac ni allant fforddio i bob ymholiad daro un gronfa ddata berthynol. Felly mae’n rhaid i bensaernïaeth data gymodi cywirdeb a gwydnwch â pherfformiad a graddfa, a gwneud hynny tra bo’r sgema’n dal i newid i fodloni mandadau newydd.
Mae’r bennod hon yn ymdrin â’r prif baradeimau storio a phryd i ddefnyddio pob un, disgyblaeth dyfalbarhad amlieithog, modelu data a’r broblem a danamcangyfrifir yn aml sef esblygiad sgema a mudo, storfa gudd a CDNs (rhwydweithiau cyflenwi cynnwys) gyda’r broblem ddrwg-enwog o anneilltuo (invalidation), a sut mae trafodion, cloi, a chydamseroldeb yn ymddwyn pan fyddwch yn eu gwthio i raddfa fawr. Mae’r llinyn sy’n rhedeg trwyddi’n syml: nid oes cronfa ddata gyffredinol. Mae cyfaddawdau, ac mae pensaernïaeth data dda’n golygu eu dewis yn ymwybodol, un llwyth gwaith ar y tro.
Egwyddorion allweddol
- Modelwch y data i ffitio’r patrymau mynediad, nid y ffordd arall. Cynlluniwch storfa o amgylch sut y bydd data’n cael ei ddarllen a’i ysgrifennu, nid o amgylch model “cywir” haniaethol.
- Nid oes un gronfa ddata i’w rheoli i gyd. Mae llwythi gwaith gwahanol eisiau peiriannau gwahanol; mae dyfalbarhad amlieithog yn normal ar raddfa fawr.
- Cywirdeb yn gyntaf ar gyfer systemau cofnod. Ar gyfer data awdurdodol, nid yw gwydnwch a chysondeb yn agored i drafodaeth; optimeiddiwch berfformiad o’u cwmpas, nid trwyddynt.
- Bydd y sgema’n newid, felly cynlluniwch ar ei gyfer. Mae mudo’n weithgaredd peirianneg parhaus, dosbarth cyntaf, nid un-tro.
- Byddwch yn berchen ar eich data y tu ôl i ffin gwasanaeth. Mae pob cyd-destun ffiniedig (model parth hunangynhwysol gyda’i ffin ei hun yn benodol) yn berchen ar ei ddata; mae rhannu cronfa ddata’n cyplysu timau ac yn dinistrio ymreolaeth.
- Mae storfa gudd yn broblem cywirdeb wedi’i chuddliwio fel buddugoliaeth berfformiad. Mae pob storfa gudd yn cyflwyno risg hendod ac anneilltuo; triniwch hi’n fwriadol.
- Mae dadnormaleiddio’n gyfnewid, nid pechod. Mae dyblygu data ar gyfer perfformiad darllen yn ddilys os ydych yn berchen ar ganlyniadau’r cysondeb.
- Mae cysondeb a graddfa’n cyfnewid â’i gilydd. Y cryfaf yw’r warant drafodiadol, y anoddaf yw ei dosbarthu; prynwch ddim ond yr hyn sydd ei angen ar y llwyth gwaith.
Argymhellion
Dewiswch y paradeim storio o’r llwyth gwaith
Parwch bob llwyth gwaith â’r model sy’n ei ffitio. Mae cronfeydd data perthynol yn rhoi cysondeb cryf, cyfuniadau, a thrafodion aeddfed; nhw yw’r rhagosodiad ar gyfer systemau cofnod ac unrhyw beth gyda rheolau cywirdeb cymhleth. Mae storfeydd dogfen yn ffitio data hierarchaidd, hyblyg o ran sgema a ddarllenir fel uned (archeb gyfan, proffil cyfan). Mae storfeydd allwedd-gwerth yn rhoi cyflymder eithafol ar gyfer chwiliadau syml (sesiynau, baneri nodwedd, storfeydd cudd). Mae cronfeydd data graff yn rhagori lle mae perthnasoedd yn ganolog i’r ymholiad (cylchoedd twyll, siartiau sefydliadol, hawliau, cadwyni cyflenwi). Mae storfeydd colofnol yn pweru ymholiadau dadansoddol sy’n sganio ychydig o golofnau dros filiynau o resi (warysau data, adrodd). Mae cronfeydd data cyfres amser yn optimeiddio ar gyfer data trwm ar atodi, wedi’i stampio ag amser (metrigau, telemetreg, synhwyryddion Rhyngrwyd Pethau (IoT), data marchnad). Gwrthsefwch orfodi un peiriant i wneud pob swydd. Mae defnyddio cronfa ddata berthynol fel ciw, neu storfa ddogfen fel llyfr cyfrifon, yn gwahodd trafferth.
Mabwysiadwch ddyfalbarhad amlieithog yn fwriadol
Mae systemau mawr yn ddilys yn defnyddio sawl storfa: system gofnod berthynol, mynegai chwilio, storfa gudd, warws dadansoddeg, ac efallai peiriant graff neu gyfres amser. Dyma ddyfalbarhad amlieithog, ac mae’n batrwm cywir pan fydd llwythi gwaith yn wirioneddol wahanol. Mae’r gost yn weithredol, oherwydd mae gennych bellach fwy o beiriannau i’w rhedeg, eu diogelu, eu bacio i fyny, a’u staffio. Rheolwch y gost honno drwy drin pob storfa fel eiddo i wasanaeth, safoni offer gweithredol, a chadw nifer y technolegau i’r rhai sy’n ennill eu lle. Byddwch yn wyliadwrus o fabwysiadu cronfa ddata newydd ar gyfer pob angen mân. Mae pob un yn ymrwymiad gweithredol parhaol.
Modelwch ddata a thriniwch esblygiad sgema fel un parhaus
Buddsoddwch mewn modelu data ymlaen llaw ar gyfer systemau cofnod. Normaleiddiwch i ddiogelu cywirdeb, yna dadnormaleiddiwch yn ddetholus ar gyfer mannau poeth darllen profedig. Beth bynnag yw’r model, mae’r sgema’n esblygu am byth, felly gwnewch fudo’n ddiogel ac yn rheolaidd. Defnyddiwch sgriptiau mudo wedi’u fersiynu, eu hawtomeiddio, ymlaen-yn-unig, wedi’u gwirio i mewn i reolaeth ffynhonnell a’u cymhwyso trwy’r biblinell ddefnyddio. Ar gyfer newidiadau dim-amser-segur ar dablau mawr, defnyddiwch y patrwm ehangu-cyfangu (newid cyfochrog): ychwanegu’r golofn neu’r tabl newydd, ôl-lenwi ac ysgrifennu deuol, mudo darllenwyr, yna dileu’r hen siâp. Byth un newid torfol. Gwnewch newidiadau sgema’n gydnaws yn ôl ar draws defnyddiadau fel bod hen god a chod newydd yn rhedeg ar yr un pryd. Mewn systemau wedi’u sianelu gan ddigwyddiadau neu negeseuon, fersiynwch eich sgemâu digwyddiad a neges yn benodol a chefnogwch drosi hen ddigwyddiadau i fyny (upcasting) (eu trawsffurfio i’r sgema gyfredol wrth ddarllen).
Cynlluniwch storfa gudd ac anneilltuo â llygaid agored
Storfa gudd a CDNs yw’r offer perfformiad mwyaf pwerus. Mae CDN yn gwasanaethu cynnwys statig a storadwy o’r ymyl yn agos at ddefnyddwyr, ac mae storfeydd cudd cymhwysiad yn arbed y gronfa ddata rhag darlleniadau ailadroddus. Ond y rhan anodd yw anneilltuo: gwybod pryd mae data wedi’i storio’n gudd yn hen. Dewiswch strategaeth fesul achos. Defnyddiwch ddarfodiad seiliedig ar amser (TTL) lle mae rhywfaint o hendod yn dderbyniol ac yn symlaf. Defnyddiwch anneilltuo penodol neu ysgrifennu-trwodd lle mae ffresni’n bwysig. Defnyddiwch storfa-gudd-o’r-neilltu (cache-aside) lle mae’r cymhwysiad yn rheoli poblogi. Gosodwch TTLs yn ymwybodol, gwarchodwch rhag rhuthr storfa gudd (llawer o gleientiaid yn ailadeiladu’r un cofnod wedi darfod ar unwaith) gyda chloi neu gyfuno ceisiadau, ac atalwch heidiau taranllyd ar storfeydd cudd oer. Byth peidiwch â storio data’n gudd y gallai ei hendod achosi methiant cywirdeb neu gydymffurfiaeth (hawliau, balansau, caniatâd) heb lwybr anneilltuo penodol, wedi’i brofi. Triniwch allweddi storfa gudd, TTLs, ac anneilltuo fel arteffactau wedi’u cynllunio, nid ffurfweddiad damweiniol.
Rheolwch drafodion, cloi, a chydamseroldeb ar gyfer graddfa
Deallwch lefelau ynysu a dewiswch y gwannaf sy’n dal yn gywir ar gyfer pob trafodiad, oherwydd mae ynysu uwch yn costio cydamseroldeb. Ffafriwch gydamseroldeb optimistaidd (gwiriadau fersiwn wrth ysgrifennu) ar gyfer llwythi gwaith cystadleuaeth isel, trwm ar ddarllen, a throwch at gloi pesimistaidd dim ond o dan gystadleuaeth boeth wirioneddol, gan gadw cloeon yn fyr ac wedi’u trefnu’n gyson i osgoi marwglo (deadlocks). Wrth i chi raddio, mae un gronfa ddata ysgrifenadwy’n dod yn dagfa. Cyflwynwch efelychiadau darllen ar gyfer graddio darllen (gan dderbyn oediad efelychu), a rhannwch/parthwch wrth allwedd sy’n lledaenu llwyth yn gyfartal ac yn cadw data cysylltiedig gyda’i gilydd i osgoi trafodion traws-siard. Cofiwch fod rhannu’n cyfnewid cyfuniadau traws-siard hawdd a thrafodion ACID (Atomigrwydd, Cysondeb, Ynysiad, Gwydnwch) aml-siard, sy’n aml pam mae sagâu a dadnormaleiddio’n ymddangos. Gwthiwch y technegau hyn i mewn dim ond wrth i’r llwyth gwaith fynnu hynny. Mae rhannu cynamserol yn ychwanegu cymhlethdod parhaol.
Cyfaddawdau: manteision ac anfanteision
| Math o storfa | Gorau ar gyfer | Cryfderau | Gwendidau |
|---|---|---|---|
| Perthynol | Systemau cofnod, cywirdeb cymhleth | ACID, cyfuniadau, offer aeddfed | Anoddach graddio ysgrifau’n llorweddol |
| Dogfen | Darlleniadau cyfun, sgema hyblyg | Darllen/ysgrifennu gwrthrych cyfan yn gyflym, hyblyg | Cyfuniadau/trafodion traws-ddogfen gwan |
| Allwedd-gwerth | Sesiynau, storfeydd cudd, chwiliadau syml | Cyflymder a graddfa eithafol | Dim ymholi y tu hwnt i’r allwedd |
| Graff | Ymholiadau trwm ar berthnasoedd | Croesiadau cyflym, mynegiannol | Sgiliau gweithredu arbenigol, cyfyngiadau graddio |
| Colofnol | Dadansoddeg, adrodd | Sganiau cyfun cyflym, cywasgiad | Gwael ar gyfer ysgrifau trafodiadol lefel-rhes |
| Cyfres amser | Metrigau, telemetreg, IoT | Atodi ac ymholiadau amser effeithlon | Diben cul |
Y cyfaddawd amlycaf yw cysondeb ac ymholi cyfoethog yn erbyn graddadwyedd llorweddol a chyflymder. Mae systemau perthynol yn rhoi’r gwarantau cryfaf a’r ymholiadau mwyaf hyblyg, ond nhw yw’r anoddaf i raddio ysgrifau ar draws llawer o beiriannau. Mae teuluoedd NoSQL (anberthynol) yn llacio cyfuniadau, trafodion, neu sgema er mwyn ennill graddfa a chyflymder. Mae storfa gudd yn cyfnewid ffresni am oedi. Mae rhannu’n cyfnewid trafodion traws-raniad am gynhyrchedd ysgrifennu. Nid oes yr un o’r rhain yn gywir yn gyffredinol. Y grefft yw gosod pob llwyth gwaith ar y pwynt ar y gromlin y mae ei anghenion cywirdeb a pherfformiad mewn gwirionedd yn ei fynnu.
Cwestiynau i’w trafod gyda’ch tîm
Ar gyfer pob set ddata critigol, a all pawb enwi’r un system gofnod, neu a yw storfeydd cudd a thaflunau’n cael eu trin yn dawel fel gwirionedd? Mae data’n goroesi cod, ac mae’r digwyddiadau data mwyaf niweidiol yn dod o lithriad: mae storfa gudd, mynegai chwilio, neu daflun darllen yn cael ei gamgymryd fel awdurdodol ac yn gwyro’n dawel o’r ffynhonnell wirioneddol. Ar dîm mawr mae hyn yn digwydd pan fydd perchnogaeth yn aneglur a bod sawl gwasanaeth yn ysgrifennu copïau sy’n gorgyffwrdd, fel na all neb ddweud pa werth sy’n gywir yn ystod digwyddiad. Dewch â map o’ch data pwysig ac, ar gyfer pob eitem, yr un storfa sy’n awdurdodol ynghyd â’r copïau deilliedig sy’n gorfod bod yn adeiladadwy eto ohoni. Mewn cyllid a llywodraeth, mae gallu profi pa gofnod yw’r ffynhonnell gyfreithiol ac ailadeiladu’r gweddill yn aml yn ofyniad rheoleiddiol, nid yn gyfleustra. Mae unrhyw beth na allwch ei ailadeiladu o’r system gofnod yn system gofnod ynddo’i hun, boed hynny’n fwriadol ai peidio.
Beth mae pob peiriant cronfa ddata yn eich ystad yn ei gostio mewn gwirionedd i’w redeg, ei ddiogelu, a’i facio i fyny, ac a yw pob un yn dal i ennill ei le? Mae dyfalbarhad amlieithog yn iawn pan fydd llwythi gwaith yn wirioneddol wahanol, ond mae pob peiriant yn ymrwymiad gweithredol parhaol: clytio, copïau wrth gefn, monitro, adolygiad diogelwch, a staff sy’n ei adnabod am 3 y bore. Gall sefydliad mawr lithro i mewn i sw o storfeydd a fabwysiadwyd ar gyfer un nodwedd yr un, ac mae’r un ymylol yn ychwanegu cost am byth tra’n gwasanaethu llwyth gwaith y gallai storfa rydych chi eisoes yn ei rhedeg ei drin. Rhestrwch bob peiriant, y llwyth gwaith sy’n ei gyfiawnhau, a phwy sydd ar alwad ar ei gyfer, yna nodwch unrhyw un a fabwysiadwyd ar gyfer angen y gallai prif storfa ei fodloni bellach. Dylai mabwysiadu cronfa ddata newydd glirio bar uchel, oherwydd mae dileu un yn ddiweddarach yn golygu mudo arall. Safoni offer gweithredol ar draws y storfeydd rydych yn eu cadw yw sut rydych yn dal y gost i lawr heb orfodi un peiriant i wneud pob swydd.
Ble y gall defnyddiwr ddarllen gwerth hen o efelychiad yn syth ar ôl ei ysgrifennu ei hun, ac a yw hynny’n torri addewid a wnaethoch iddo? Mae efelychiadau darllen yn graddio darlleniadau ond yn oedi y tu ôl i’r prif un, felly gall defnyddiwr sy’n diweddaru proffil ac yn ail-lwytho ar unwaith weld yr hen werth, sy’n darllen fel bwg neu, ar gyfer balans neu faner caniatâd, yn fethiant cydymffurfiaeth. Penderfynwch fesul llif p’un a yw darllen-eich-ysgrifau’n bwysig, a chyfeiriwch y darlleniadau hynny at y prif un neu defnyddiwch fecanwaith cysondeb sesiwn. Dewch â’r rhestr o lifau a wasanaethir o efelychiadau a marciwch pa rai y mae defnyddiwr yn gweithredu arnynt yn syth ar ôl ysgrifennu. Ar gyfer balansau, hawliau, a chaniatâd, triniwch ddarlleniadau hen fel methiannau cywirdeb, nid rhai cosmetig. Y pwynt yw prynu’r cysondeb sydd ei angen mewn gwirionedd ar bob llwyth gwaith, a gwneud yr hendod rydych yn ei dderbyn yn benodol yn hytrach na damweiniol.
A allwch chi newid sgema eich tabl mwyaf, prysuraf heddiw heb amser segur, a phwy sydd wedi ymarfer y camau ehangu-cyfangu mewn gwirionedd? Mae sgema’n esblygu am byth, a’r methiant sy’n brifo fwyaf yw newid mawr-un-tro sy’n cloi tabl enfawr, yn rhewi’r gwasanaeth, ac na ellir ei wrthdroi’n lân. Ar dîm mawr mae’r risg yn lluosi oherwydd bod sawl gwasanaeth yn darllen yr un siâp, felly mae angen i newid torfol gael hen god a chod newydd yn rhedeg ochr yn ochr ar draws defnyddiad graddol. Y pwysau cystadleuol yw cyflymder: mae un newid yn gyflym i’w ysgrifennu, tra bod ehangu-cyfangu (ychwanegu’r siâp newydd, ôl-lenwi, ysgrifennu deuol, mudo darllenwyr, gollwng yr hen siâp) yn fwy o gamau a mwy o amynedd. Dewch â’ch tabl mwyaf, amcangyfrif gonest o pa mor hir y byddai newid naïf yn ei gloi, a mudo penodol y mae rhywun wedi’i redeg o’r dechrau i’r diwedd mewn ymarfer yn hytrach nag mewn theori. Mewn systemau menter a llywodraeth sy’n rhedeg yn barhaus ac yn cario targedau argaeledd statudol, mae amser segur ar gyfer mudo’n dor-cyfraith, felly disgyblaeth ehangu-cyfangu yw’r pris am gael caniatâd i newid y sgema o gwbl.
Pa werthoedd wedi’u storio’n gudd neu eu hefelychu, pe baent yn cael eu gwasanaethu’n hen, a fyddai’n achosi methiant cydymffurfiaeth neu ddiogelwch yn hytrach na chosmetig, ac a yw pob un o’r llwybrau anneilltuo hynny wedi’i brofi? Mae storfa gudd yn broblem cywirdeb sy’n gwisgo gwisg berfformiad: nid arafwch yw’r perygl ond gwasanaethu hawl, balans, baner caniatâd, neu benderfyniad mynediad ar ôl iddo newid. I sefydliad mawr mae’r perygl yn wasgaredig, oherwydd mae storfeydd cudd a haenau ymyl yn cronni ar draws timau ac ni all yr un person restru beth sy’n cael ei storio’n gudd ble neu pryd mae’n clirio. Mae’r tyndra’n real: mae storfa gudd ymosodol a TTLs hir yn prynu oedi ac yn diogelu’r gronfa ddata, tra bod ffresni llym yn costio’r ddau. Dewch â rhestr o ddata wedi’i storio’n gudd ac a wasanaethir gan CDN, wedi’i farcio ar gyfer pa gofnodion sy’n cario canlyniad cydymffurfiaeth neu ddiogelwch, ynghyd â thystiolaeth bod y llwybr anneilltuo ar gyfer pob un o’r rheiny wedi’i ymarfer yn ymarferol yn hytrach na dim ond ei ffurfweddu. Mewn lleoliadau rheoledig a chyhoeddus, mae gwerth caniatâd neu gymhwysedd hen yn fethiant archwiliadwy, felly mae angen llwybr anneilltuo penodol, wedi’i brofi ar yr eitemau hynny neu ni ddylent gael eu storio’n gudd o gwbl.
Beth yw eich strategaeth cadw, archifo, a phreswyliad data ar gyfer pob storfa awdurdodol, ac a allwch ei brofi i archwilydd? Mae data’n goroesi cod ac yn aml yn goroesi’r tîm a’i ysgrifennodd, felly mae twf diderfyn a rheolau preswyliad amwys yn dawel yn dod yn broblem nad oes neb yn berchen arni nes bod tabl yn anrheoladwy neu gofnod yn eistedd yn y jwrisdicsiwn anghywir. Mae sefydliad mawr yn rhychwantu llawer o storfeydd a rhanbarthau, a’r ystyriaethau cystadleuol yw cost (mae storfa boeth yn ddrud, felly archifwch a haenwch), perfformiad (mae tablau chwyddedig yn arafu popeth), a dyletswydd gyfreithiol (lloriau cadw statudol a therfynau preswyliad a all wrthdaro). Dewch, fesul set ddata awdurdodol, â’r cyfnod cadw, ble mae’r data’n byw’n gorfforol, y mecanwaith archifo a dileu, ac enw’r person sy’n atebol amdano. I systemau menter ac yn enwedig llywodraeth, mae cadw a phreswyliad fel arfer yn fandadau cyfreithiol gyda gofynion archwilio a sofraniaeth, felly mae gallu profi ble mae pob cofnod yn byw, am ba hyd y’i cedwir, a phryd y’i dinistrir yn drwydded i weithredu, nid yn fân beth braf.
Trwy lens sector
Cwmni newydd. Rhedwch un gronfa ddata a gwrthsefwch y sw. Mae un storfa berthynol reoledig yn rhoi trafodion i chi, un peth i’w facio i fyny, ac un lle i resymu ynghylch cysondeb, sef yn union yr hyn y gall tîm o dri berson fforddio ei ddal yn ei ben. Ychwanegwch storfa gudd, efelychiad darllen, neu fynegai chwilio dim ond pan fydd ymholiad araf penodol neu gyfaint darllen go iawn yn ei orfodi, fel bod cymhlethdod yn cyrraedd gyda rheswm sy’n talu. Cadwch fudo wedi’i fersiynu o’r diwrnod cyntaf, oherwydd mae ôl-ffitio disgyblaeth mudo ar gynnyrch byw yn llawer anoddach na dechrau gyda hi.
Busnes bach. Nid oes gennych arbenigwr cronfa ddata na’r amser i weithredu sawl peiriant, felly ffafriwch storfa reoledig a gadewch i’ch darparwr platfform drin copïau wrth gefn, clytio, ac efelychu. Triniwch ddewis storfa fel penderfyniad prynu: dewiswch y peiriant diflas, wedi’i gefnogi’n dda y mae eich teclynnau eisoes yn integreiddio ag ef yn hytrach na’r un cyflymaf ar feincnod. Gosodwch bolisi cadw a chopïau wrth gefn syml y gallwch ei wirio mewn gwirionedd, a byth peidiwch â storio unrhyw beth yn gudd sy’n gysylltiedig ag arian neu ganiatâd heb ffordd glir o’i glirio, oherwydd mae pris neu hawl hen yn costio cwsmer i chi.
Menter. Y sialens graidd yw dyfalbarhad amlieithog ar draws llawer o dimau: system gofnod berthynol ynghyd â chwilio, storfa gudd, warws, ac efallai peiriannau graff neu gyfres amser, pob un yn eiddo i wasanaeth yn hytrach na’i rannu. Safonwch offer gweithredol, copïau wrth gefn, a monitro ar draws y storfeydd rydych yn eu cadw, daliwch fabwysiadu peiriant newydd i far uchel, a gwnewch fudo ehangu-cyfangu ac anneilltuo storfa gudd penodol yn rhagosodiad. Rheolwch yr ystad fel portffolio gyda pherchnogaeth ddata glir, fel nad oes yr un peiriant yn goroesi y tu hwnt i’r llwyth gwaith a’i cyfiawnhaodd ac nad oes yr un tîm wedi’i gyplysu drwy gronfa ddata a rennir.
Llywodraeth. Mae preswyliad data, cadw statudol, a chywirdeb profadwy’n llunio pob dewis. Darparwch bob storfa mewn rhanbarthau sofran, ffurfweddwch CDNs i storio’n gudd ddim ond data anbersonol, a chadwch hanes archwilio anghyfnewidiol ar gyfer cofnodion y mae’n rhaid gallu eu hailadeiladu ar gyfer rheoleiddwyr. Rhaid cymhwyso mudo a orfodir gan ddeddfwriaeth newydd yn gydnaws yn ôl trwy’r biblinell fel bod y gwasanaeth yn aros ar gael trwy derfynau amser deddfwriaethol, a rhaid i’r system gofnod fod yn adnabyddadwy fel y gallwch brofi pa werth yw’r ffynhonnell gyfreithiol ac ailadeiladu pob copi deilliedig ohoni.
Enghreifftiau
Cwmni newydd. Mae cwmni newydd cam-hedyn yn rhedeg popeth ar un enghraifft PostgreSQL reoledig ac yn gwrthsefyll yr ysfa i ychwanegu peiriant chwilio, storfa gudd, a warws ar wahân cyn eu bod eu hangen. Mae un gronfa ddata’n golygu un peth i’w facio i fyny, un lle i resymu ynghylch cysondeb, a thrafodion sy’n gweithio’n syml, sy’n bwysig pan mai’r tîm cyfan yw tri pheiriannydd. Maent yn ychwanegu storfa gudd Redis ac efelychiad darllen dim ond pan fydd ymholiad araf penodol a chyfaint darllen go iawn yn ei gyfiawnhau, fel bod cymhlethdod yn cyrraedd gyda rheswm sy’n talu yn hytrach nag o’i flaen.
Menter. Mae banc manwerthu’n cadw ei lyfr cyfrifon awdurdodol mewn cronfa ddata berthynol gryf o ran cysondeb: mae pob cofnod yn drafodiad ACID priodol, wedi’i rannu yn ôl ystod cyfrif ar gyfer graddfa ysgrifennu. O’i amgylch mae ystad amlieithog: mynegai chwilio ar gyfer chwilio cwsmeriaid, storfa gudd Redis (ysgrifennu-trwodd, TTL byr) ar gyfer crynodebau cyfrif ar yr ap symudol, warws colofnol ar gyfer adrodd rheoleiddiol a dadansoddol, a chronfa ddata graff ar gyfer canfod twyll rhwydwaith trafodion. Mae newidiadau sgema i’r llyfr cyfrifon yn defnyddio ehangu-cyfangu gydag ysgrifennu deuol fel nad yw’r system 24/7 byth yn cymryd amser segur ar gyfer mudo.
Llywodraeth. Mae cofrestrfa gerbydau genedlaethol yn storio cofnodion awdurdodol mewn system gofnod berthynol gyda chadw statudol a hanes archwilio llawn. Gwasanaethir chwiliadau “gwiriwch gerbyd” sy’n wynebu’r cyhoedd o efelychiad darllen a storfa gudd ymyl gyda TTL byr, oherwydd bod data cyhoeddus ychydig yn hen yn dderbyniol a bod y cyfaint darllen yn gorbwyso ysgrifau o bell ffordd. Mae cyfraith preswyliad data’n mynnu bod pob cofnod yn aros yn y wlad, felly darperir pob storfa mewn rhanbarthau sofran a ffurfweddir y CDN i storio’n gudd ddim ond data anbersonol. Cymhwysir mudo i ychwanegu meysydd newydd a orfodir gan bolisi trafnidiaeth yn gydnaws yn ôl trwy’r biblinell fel bod y gwasanaeth yn aros ar gael yn ystod terfynau amser deddfwriaethol.
Achos busnes: cymhellion, ROI, a TCO
Mae gan benderfyniadau pensaernïaeth data rai o’r cynffonnau cost hiraf a mwyaf mewn meddalwedd, oherwydd data a’i sgema yw’r pethau anoddaf i’w newid unwaith y bydd systemau ac integreiddiadau’n dibynnu arnynt. Amser peirianneg uwch a rhywfaint o offer gweithredol ychwanegol yw cost mabwysiadu arfer da (dewis storfa fwriadol, mudo disgybledig, storfa gudd wedi’i chynllunio, a rhannu priodol), gan mwyaf. Mae cost peidio â’i fabwysiadu’n ymddangos fel un gronfa ddata orlwythog yn tagu’r busnes cyfan, ail-lwyfannu brys pan ddarganfyddir y storfa anghywir yn rhy hwyr, toriadau estynedig o fudo wedi’i fwnglera, ac, yn fwyaf niweidiol, llygredd data neu doriad cydymffurfiaeth o storfa gudd wedi’i hanneilltuo’n anghywir neu drafodiad coll.
Gwnewch yr achos i arweinyddiaeth yn nhermau lle i raddio, risg digwyddiad, ac amlygiad rheoleiddiol. Y dewisiadau storio cywir yw’r hyn sy’n gadael i’r busnes dyfu cyfaint darllen ac ysgrifennu heb ailysgrifennu. Mudo disgybledig yw’r hyn sy’n gadael i’r sgema gadw i fyny â mandadau newydd heb amser segur. Storfa gudd gywir yw’r hyn sy’n cyflenwi profiadau defnyddwyr cyflym heb fygiau hendod tawel. Meintiolwch y TCO dros oes y system. Mae un bensaernïaeth data wedi’i dewis yn dda’n osgoi cost ailadroddus gweithio o gwmpas un wael, ac mae un digwyddiad llygredd data a atalwyd fel arfer yn gorbwyso cost gyfan gwneud hynny’n dda o bell ffordd. Mewn sectorau rheoledig, nid canolfan gost yw’r gallu i brofi cywirdeb a phreswyliad data ond trwydded i weithredu.
Gwrth-batrymau a pheryglon
- Cronfa ddata a rennir ar draws gwasanaethau. Sawl gwasanaeth yn darllen ac yn ysgrifennu un sgema, gan gyplysu timau a gwneud pob newid yn argyfwng cydgysylltu.
- Un gronfa ddata ar gyfer popeth. Gorfodi dadansoddeg, ciwiau, chwilio, a thrafodion ar un peiriant perthynol nes ei fod yn chwalu.
- Mudo mawr-un-tro. Newidiadau sgema torfol unigol sy’n gofyn am amser segur ac na ellir eu gwrthdroi’n ddiogel.
- Storio’n gudd heb strategaeth anneilltuo. Data hen yn cael ei wasanaethu’n ddiderfyn, neu fygiau cywirdeb oherwydd nad oes neb yn berchen ar pryd mae’r storfa gudd yn clirio.
- Rhannu cynamserol. Dosbarthu data cyn bod y llwyth yn ei fynnu, gan golli cyfuniadau a thrafodion yn barhaol heb fudd.
- Anwybyddu oediad efelychu. Darllen eich ysgrifen eich hun o efelychiad sy’n oedi a chael data hen, gan dorri disgwyliadau defnyddwyr.
- Twf data diderfyn. Dim strategaeth archifo na chadw, fel bod tablau’n tyfu nes bod perfformiad a chost yn mynd yn annioddefol.
- Storio data deilliedig fel gwirionedd. Trin storfa gudd, mynegai, neu daflun fel y system gofnod, wedyn darganfod ei fod wedi gwyro.
Model aeddfedrwydd
- Lefel 1: Cychwyn. Defnyddir un gronfa ddata at bob diben. Mae newidiadau sgema’n llafurol ac ad hoc, heb ddisgyblaeth mudo. Mae storio’n gudd yn ddamweiniol ac mae anneilltuo’n ôl-ystyriaeth. Datrysir problemau perfformiad yn adweithiol drwy brynu peiriant mwy, ac ni all neb enwi’n ddibynadwy y system gofnod ar gyfer set ddata benodol.
- Lefel 2: Datblygu. Mae rhai dewisiadau storio’n fwriadol ac mae storfa gudd neu warws wedi ymddangos, ond mae arfer yn amrywio fesul tîm. Mae mudo wedi’i fersiynu ac eto weithiau angen amser segur, a defnyddir ehangu-cyfangu gan bwy bynnag sy’n digwydd ei adnabod. Mae sawl gwasanaeth yn dal i rannu cronfa ddata, ac mae strategaethau storio cudd yn wahanol o un tîm i’r llall.
- Lefel 3: Safoni. Mae dyfalbarhad amlieithog yn cael ei baru â llwythi gwaith, pob storfa’n eiddo i wasanaeth a byth yn cael ei rhannu. Mudo ehangu-cyfangu wedi’i awtomeiddio, yn gydnaws yn ôl, dim-amser-segur yw’r safon ddogfennedig, orfodedig ar draws y sefydliad. Mae strategaethau storio cudd, TTLs, a llwybrau anneilltuo’n arteffactau cynllunio penodol, ac mae’r un system gofnod ar gyfer pob set ddata wedi’i dogfennu, gyda chopïau deilliedig yn adeiladadwy eto ohoni.
- Lefel 4: Rheoli. Mae’r ystad ddata’n cael ei mesur a’i rheoli yn erbyn llinellau sylfaen. Rydych yn olrhain hyd mudo a chyfradd gwrthdroi, oediad efelychu yn erbyn gofynion darllen-eich-ysgrifau, cymhareb trawiad storfa gudd a digwyddiadau hendod, cost weithredol fesul storfa, ac oedi ymholiad ar ganraddau targed, yna gweithredu ar y rhifau. Archwilir cadw a phreswyliad yn erbyn gofynion statudol, gwirir cywirdeb data deilliedig yn barhaus, a rhaid i bob peiriant gyfiawnhau ei gost yn erbyn y llwyth gwaith y mae’n ei wasanaethu.
- Lefel 5: Trefniannu. Caiff pensaernïaeth data ei gwella’n barhaus a’i hintegreiddio â chynllunio capasiti, cost, a risg ar draws y sefydliad. Ail-gydbwysir dewisiadau rhannu, storio cudd, a chysondeb fesul llwyth gwaith wrth i batrymau mynediad a chost symud, ac ymddeolir storfeydd nad ydynt bellach yn ennill eu lle drwy fudo wedi’i gynllunio. Mae esblygiad sgema, archifo, a phreswyliad wedi’u hawtomeiddio’n llawn ac yn addasadwy, fel bod yr ystad yn ailffurfio ei hun i fandadau a llwyth newydd heb ail-lwyfannu brys.
Syniadau i’w trafod
- Pa rai o’ch storfeydd presennol sy’n gwneud gwaith na chawsant eu cynllunio ar ei gyfer, a beth fyddai’r peiriant cywir?
- A allwch chi wneud newid sgema ar eich tabl mwyaf heddiw heb amser segur? Os na allwch, pam ddim?
- Ble mae eich system yn storio’n gudd ddata y gallai ei hendod achosi methiant cydymffurfiaeth neu gywirdeb?
- Pa wasanaethau sy’n rhannu cronfa ddata, a beth fyddai ei angen i roi un ei hun i bob un?
- Ble mae un gronfa ddata ysgrifenadwy’n nenfwd graddio i chi, ac ai efelychu darllen neu rannu yw’r cam nesaf cywir?
- Beth yw eich strategaeth cadw ac archifo, a phwy sy’n atebol amdani?
Prif ganfyddiadau
- Mae data’n goroesi cod; mae penderfyniadau storio a modelu’n cyfyngu ar y busnes am oes gyfan y system.
- Parwch bob llwyth gwaith â’r paradeim storio sy’n ffitio’i batrwm mynediad; disgwyliwch ddyfalbarhad amlieithog ar raddfa fawr.
- Rhowch berchnogaeth ar ei ddata i bob gwasanaeth; byth peidiwch â chyplysu timau drwy gronfa ddata a rennir.
- Triniwch esblygiad sgema fel un parhaus a defnyddiwch fudo ehangu-cyfangu sy’n gydnaws yn ôl, dim-amser-segur.
- Mae storio’n gudd yn broblem cywirdeb: cynlluniwch TTLs, anneilltuo, ac amddiffyniad rhag rhuthr yn fwriadol, a byth peidiwch â storio data critigol i gydymffurfiaeth yn gudd heb lwybr anneilltuo wedi’i brofi.
- Prynwch ddim ond y gwarantau cysondeb a thrafodiadol sydd eu hangen ar bob llwyth gwaith; mae rhannu ac efelychu’n cyfnewid trafodion traws-raniad am raddfa.
Cyfeiriadau a darllen pellach
- Martin Kleppmann, Designing Data-Intensive Applications
- Pramod Sadalage and Martin Fowler, NoSQL Distilled
- Pramod Sadalage and Scott Ambler, Refactoring Databases: Evolutionary Database Design
- C. J. Date, An Introduction to Database Systems
- Joe Celko, SQL for Smarties
- Vlad Mihalcea, High-Performance Java Persistence (trafodion, ynysu, cydamseroldeb)
- Eric Evans, Domain-Driven Design (cyd-destunau ffiniedig a pherchnogaeth ddata)
- Werner Vogels, “Eventually Consistent”