Brilliancy of quality
Arhitektuur

MySQL ja PostgreSQL standardsete backend-valikutena

Sapphire I.C.D.S.

Andmebaasi valik on juurutusarhitektuuri osa

Ettevõttesüsteemi andmebaasi ei määra ainult arendaja eelistus. Organisatsioonil võivad olla käitusstandardid, oma andmebaasimeeskond, varundusprotseduurid, pilvepakkuja nõuded või hallatud majutuse piirangud. Sapphire I.C.D.S. toetab seetõttu kahte standardset backend-valikut, MySQL-i ja PostgreSQL-i, ega sunni kõiki paigaldusi kasutama üht etteantud andmebaasi.

Avalik Roadmap fikseerib PostgreSQL-i toe koos täieliku valikuga kahe süsteemi vahel. See tähendab enamat kui teist draiverit: moodulite päringud, skeemid ja täitmisreeglid peavad olemas olema mõlema dialekti jaoks ning säilitama võrreldava käitumise.

Üks leping kahe draiveri kohal

Sapphire I.C.D.S.-i kõrgemad kihid ei tohiks sõltuda konkreetse andmebaasi klienditeegist. Andmekontroller loeb valitud backend-tüübi konfiguratsioonist ja hangib vastava standarddraiveri. Moodul kasutab ühist toimingute komplekti: ridade lugemist, andmete muutmist, üksikväärtusi, pakettlisamist, tehinguid ja skeemitoiminguid.

Tehnoloogiavalik jääb nii taristukihti. Artikli- või lokaliseerimismoodul sõnastab valdkonnapäringu ja töötab struktureeritud tulemusega, mitte ei otsusta MySQL-i või PostgreSQL-iga ühendamist. Erinevusi ei peideta: neid käsitlevad sobiv draiver ja SQL-dialekt.

Eraldi SQL-mallid tingimuslike stringide asemel

Tavapärased päringud asuvad moodulikoodist väljas ja on dialektide kaupa eraldatud. Ühel äritoimingul võivad olla sama eesmärgi ja tulemusekujuga MySQL-i ning PostgreSQL-i mallid. Aktiivne draiver valib variandi, rakendab standardse parameetrikihi ja tagastab andmed ühises tabelikandjas.

See on ausam teisaldatavus kui kogu SQL-i universaalseks kuulutamine. Süsteemid erinevad süntaksi, tüüpide, identifikaatorite, loodud väärtuste tagastamise ja mõne avaldise poolest. Eraldi kontrollitavad mallid näitavad erinevusi selgelt, koormamata ärimoodulit tingimuslike harudega.

Mis jääb moodulitele ühiseks

  • Valdkonnatoiming. Loendil, salvestamisel või tehingulisel muudatusel on üks ärieesmärk.
  • Sisendandmed. Moodul annab struktureeritud parameetrid ühise keskkonna kaudu.
  • Tulemuse kuju. Tarbija saab kokkulepitud väljadega tabeli või väärtuse.
  • Tehingupiir. Tervikuna lõppema pidavad toimingud kasutavad ühist tehingulepingut.
  • Backendi valik. Seda teevad konfiguratsioon ja kontroller, mitte moodulitesse hajutatud tingimused.

Mida valik automaatselt ei tee

Kaks standardvarianti ei tähenda, et töötava tootmisandmebaasi saab ühe seadistusega ümber lülitada. Migratsioon nõuab skeemi ja andmete ülekannet, jadade, identifikaatorite, tüüpide, kodeeringute, indeksite ja tehingukäitumise kontrolli. Vaja on varukoopiat, seisu- või sünkroonimisplaani, testkäiku ja tagasipöördumise kriteeriume.

Platvorm ei väida automaatset MySQL-i ja PostgreSQL-i replikatsiooni, sisseehitatud eri süsteemide vahelist tõrkesiiret ega kahest tootest koosnevat üht klastrit. Need on eraldi taristuülesanded. Standardne valik tähendab tööd kummagi variandiga toetatud juurutuses, mitte ettevalmistuseta vahetatavust.

Kuidas valida MySQL-i ja PostgreSQL-i vahel

Mõistlik otsus algab kliendi keskkonnast. Kui organisatsioon juba käitab MySQL-i, kasutab standardset varundust ja tal on pädev meeskond, ei pruugi andmebaasi vahetamine uue projekti pärast kasu tuua. PostgreSQL on sama loomulik seal, kus see on ettevõttestandard, hallatud taristus saadaval ning seire ja taastamisega seotud.

Võrrelda tuleb kogu elutsüklit: spetsialistide saadavust, uuendusi, teenusehinda, jälgitavust, laienduspoliitikat, taastamist ja andmenõudeid. Mooduli eripäraseid päringuid tuleb mõõta esinduslikul andmemahul. Ühine leping ei kõrvalda optimeerijate ja indeksite erinevusi.

Pariteet nõuab arendusdistsipliini

Iga skeemi- või päringumuudatus peab ilmuma mõlemas dialektis, kui moodul toetab mõlemat backendi. Failide olemasolust ei piisa: vaja on puhast paigaldust, ohutute migratsioonide kordust, lugemis- ja kirjutamisteste ning tulemuste võrdlust. Erilist tähelepanu vajavad erinevalt raporteeritud muudetud read ja tühja valiku käitumine.

See suurendab kontrollitööd, kuid teeb teisaldatavuse tegelikuks. Ühe backendi jaoks loodud mooduli piirang tuleb selgelt fikseerida. Tehniline juht saab valmisolekukriteeriumi: sama äritoiming peab andma mõlemal toetatud variandil samaväärse tulemuse.

Käitustulemus

Ettevõtte omanik saab sobitada Sapphire I.C.D.S.-i olemasoleva taristuga ja vältida tarbetut kompetentsivahetust. Arhitektide ühine andmekiht hoiab ärimoodulid otsesest draiverisõltuvusest eemal ning eraldi SQL-dialektid teevad erinevused arendajale nähtavaks ja testitavaks.

Põhiväärtus on vastutuspiir. Organisatsioon valib ja käitab backendi, kontroller ühendab standarddraiveri, moodul täidab valdkonnatoimingu ning testid kinnitavad pariteedi. Tehnoloogiavalik jääb avatuks, kuid migratsiooni ja hoolduse tegelikku maksumust ei varjata.