{"id":69568,"date":"2020-02-20T15:24:23","date_gmt":"2020-02-20T12:24:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/google-cloud-spanner-horoshij-plohoj-zloj"},"modified":"2020-03-03T16:14:50","modified_gmt":"2020-03-03T13:14:50","slug":"google-cloud-spanner-horoshij-plohoj-zloj","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/google-cloud-spanner-horoshij-plohoj-zloj","title":{"rendered":"Google Cloud Spanner: hea, halb, kole","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Tere, Habr'i lugejad. J\u00e4tkame traditsiooniliselt huvitava materjali jagamist uute kursuste alguse eel\u00f5htul. T\u00e4na oleme teie jaoks t\u00f5lkinud artikli Google Cloud Spannerist, seostades selle kursuse k\u00e4ivitamisega <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/eoP2\/\">AWS arendajatele<\/a><\/noindex>.<\/i><\/b><\/p>\n<p><img decoding=\"async\" alt=\"Google Cloud Spanner: hea, halb, kole\" src=\"\/wp-content\/uploads\/2020\/02\/b27b8a09543d10b078480c317553ca46.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Esialgselt avaldatud <noindex><a rel=\"nofollow\" href=\"https:\/\/www.lightspeedhq.com\/blog\/\">Lightspeed HQ blogis<\/a><\/noindex>.<\/i><\/p>\n<p>Kuna ettev\u00f5te, mis pakub mitmeid pilvep\u00f5hiseid POS-lahendusi jaem\u00fc\u00fcjatele, restoranipidajatele ja veebim\u00fc\u00fcjatele \u00fcle kogu maailma, kasutab Lightspeed mitmeid erinevaid andmebaasiplatvorme, et toetada erinevaid tehingulisi, anal\u00fc\u00fctilisi ja otsingukiire. Igal neist andmebaasiplatvormidest on oma tugevused ja n\u00f5rkused. Seega, kui Google tutvustas turul Cloud Spannerit - t\u00f5otavad omadused, mida pole n\u00e4htud suhte-andmebaaside maailmas, n\u00e4iteks praktiliselt piiramatu horisontaalne skaleeritavus ja 99,999% teenuse taseme leping (SLA) - ei saanud me j\u00e4tta kasutamata v\u00f5imalust selle meie k\u00e4tte saada!<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKuna anname p\u00f5hjaliku \u00fclevaate meie kogemustest Cloud Spanneriga ja hindamiskriteeriumidest, mida oleme kasutanud, vaatame j\u00e4rgmisi teemasid:<\/p>\n<ol>\n<li>Meie hindamiskriteeriumid<\/li>\n<li>Cloud Spanner l\u00fchi\u00fclevaates<\/li>\n<li>Meie hinnang<\/li>\n<li>Meie j\u00e4reldused<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Google Cloud Spanner: hea, halb, kole\" src=\"\/wp-content\/uploads\/2020\/02\/29ed599362fb189283faa9215c18297a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>1. Meie hindamiskriteeriumid<\/h2>\n<p>\nEnne kui s\u00fcveneme Cloud Spanneri erip\u00e4ra, sarnasusi ja erinevusi teiste turul olevate lahendustega, arutame esmalt p\u00f5hikasutusi, mida meollime kaalunud Cloud Spanneri juurutamist meie infrastruktuuris:<\/p>\n<ul>\n<li>Mugavuse huvides traditsioonilise SQL andmebaasilahenduse asendajana<\/li>\n<li>OLTP lahendusena koos OLAP toega<\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p><i><b>M\u00e4rkus:<\/b> Selle artikli eesm\u00e4rk on v\u00f5rrelda Cloud Spannerit MySQL erinevustega, GCP Cloud SQL ja Amazon AWS RDS lahenduste peredega.<\/i><\/p><\/blockquote>\n<p><\/p>\n<h4>Cloud Spanneri kasutamine traditsioonilise SQL andmebaasilahenduse asendajana<\/h4>\n<p>\nKeskkonnas <i>traditsioonilised <\/i>andmebaasid, kus vastuseajad andmebaasi p\u00e4ringutele l\u00e4hevad l\u00e4hedale v\u00f5i isegi \u00fcletavad eelnevalt m\u00e4\u00e4ratud rakenduse l\u00e4viv\u00e4\u00e4rtusi (peamiselt suurenenud kasutajate ja\/v\u00f5i p\u00e4ringute arvu t\u00f5ttu), on mitmeid viise, kuidas v\u00e4hendada vastusaega vastuv\u00f5etavatele tasemetele. Kuid enamik neist lahendustest n\u00f5uab k\u00e4sitsi sekkumist.<\/p>\n<p>N\u00e4iteks on esimene samm, millele t\u00e4helepanu p\u00f6\u00f6rata, erinevad andmebaasi toimivuse parameetrid, ja nende kohandamine rakenduste kasutusstsenaariumide mallidega parima \u00fchtimise saavutamiseks. Kui see ei ole piisav, v\u00f5ib valida andmebaasi vertikaalse v\u00f5i horisontaalse skaleerimise.<\/p>\n<p>Rakenduse vertikaalne skaleerimine t\u00e4hendab serveri instantsi uuendamist, tavaliselt suurema arvu protsessorite \/ tuumade, suurema muutmem\u00e4lu ja kiirema salvestusruumi lisamise teel. Suurema hulga riistvararessursside lisamine toob kaasa andmebaasi toimivuse paranemise, mida m\u00f5\u00f5detakse peamiselt sekundis tehtud tehingute arvu ja OLTP-s\u00fcsteemide tehingute latentsuse j\u00e4rgi. Suhete andmebaasis\u00fcsteemid (mis kasutavad mitme haru l\u00e4henemist), nagu MySQL, skaleeruvad h\u00e4sti vertikaalselt.<\/p>\n<p>Selle l\u00e4henemisega on seotud mitmeid puudusi, kuid ilmselgeim on turu suurima serveri maksimaalne suurus. Kui saavutatakse suurima serveri instantsi piir, on ainus tee horisontaalne skaleerimine.<\/p>\n<p>Horisontaalne skaleerimine on l\u00e4henemine, mille k\u00e4igus lisatakse klastrisse rohkem servereid, et ideaaljuhul suurendada j\u00f5udlust lineaarset muutumist serverite arvu suurenemisega. Enamik <i>traditsioonilised <\/i>andmebaasis\u00fcsteeme ei skaleeru horisontaalselt v\u00f5i ei skaleeru \u00fcldse. N\u00e4iteks MySQL v\u00f5ib horisontaalset skaleerimist kasutada lugemisoperatsioonide jaoks, lisades orja-lugejaid, kuid ei saa seda kasutada kirjutamisoperatsioonide jaoks.<\/p>\n<p>Teisest k\u00fcljest suudab Cloud Spanner t\u00e4nu oma olemusele horisontaalselt h\u00f5lpsasti skaleeruda minimaalse sekkumisega.<\/p>\n<p>T\u00e4ielikult funktsionaalne<i> andmebaas kui teenus<\/i> peab olema hinnatud erinevate aspektide kohaselt. Aluseks v\u00f5tsime k\u00f5ige populaarsema pilve andmebaasi \u2014 Google'i jaoks, GCP Cloud SQL ja Amazoni jaoks, AWS RDS. Oma hindamises keskendusime j\u00e4rgmistele kategooriatele:<\/p>\n<ul>\n<li>Funktsioonide v\u00f5rdlemine: SQL ulatus, DDL, DML; \u00fchendusraamatukogud\/konnektorid, tehingute tugi ja nii edasi.<\/li>\n<li>Arenduse tugi: arendamise ja testimise lihtsus.<\/li>\n<li>Halduse tugi: instance'ide haldamine \u2014 n\u00e4iteks \u00fcles\/alla skaleerimine ja instance\u2019ide uuendamine; SLA, varundamine ja taastamine; turvalisus\/juurdep\u00e4\u00e4sukontroll.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Cloud Spanneri kasutamine OLTP lahendusena, mis toetab OLAP-i.<\/h4>\n<p>\nKuigi Google ei v\u00e4ida selgelt, et Cloud Spanner on m\u00f5eldud anal\u00fc\u00fctiliseks t\u00f6\u00f6tlemiseks, jagab see m\u00f5ningaid omadusi teiste mehhanismidega, nagu Apache Impala &amp; Kudu ja YugaByte, mis on m\u00f5eldud OLAP t\u00f6\u00f6koormustele.<\/p>\n<p>Isegi kui oleks olemas ainult v\u00e4hene v\u00f5imalus, et Cloud Spanner sisaldab horisontaalselt skaaleeritavat HTAP (h\u00fcbriidne tehinguline\/anal\u00fc\u00fctiline t\u00f6\u00f6tlemine) mootori koos (v\u00e4hem-v\u00e4lja) kasutatava OLAP funktsioonide komplektiga, arvan, et see v\u00e4\u00e4riks meie t\u00e4helepanu.<\/p>\n<p>Seda silmas pidades oleme vaadanud j\u00e4rgmisi kategooriaid:<\/p>\n<ul>\n<li>Andmete laadimine, indeksid ja partitsioneerimise tugi<\/li>\n<li>K\u00fcsimuste ja DML tulemuslikkus<\/li>\n<\/ul>\n<p><\/p>\n<h2>2. Cloud Spanner l\u00fchidalt<\/h2>\n<p>\nGoogle Spanner on klasterdatabaaside haldamise s\u00fcsteem (RDBMS), mida Google kasutab oma mitmesugustes teenustes. Google tegi selle 2017. aasta alguses Google Cloud Platformi kasutajatele k\u00e4ttesaadavaks.<\/p>\n<p>Siin on m\u00f5ned Cloud Spanneri omadused:<\/p>\n<ul>\n<li>K\u00f5rge koosk\u00f5lastusv\u00f5imekusega skaleeritav RDBMS: kasutab ajasinroniseerimist andmete koosk\u00f5lastatuse tagamiseks.<\/li>\n<li>Toetab mitme tabeli tehinguid: tehingud v\u00f5ivad h\u00f5lmata mitmeid tabeleid \u2014 ei pea olema piiratud \u00fche tabeliga (erinevalt Apache HBase'ist v\u00f5i Apache Kudust).<\/li>\n<li>Tabelid, mis p\u00f5hinevad primaaraval: k\u00f5ik tabelid peavad omama m\u00e4\u00e4ratud primaarv\u00f5tit (PV), mis v\u00f5ib koosneda mitmest tabeli veerust. Tabeli andmed salvestatakse PV alusel, mis muudab need v\u00e4ga efektiivseks ja kiireks PV alusel otsimiseks. Nagu teiste PV-p\u00f5histe s\u00fcsteemide puhul, peab rakendamine olema modelleeritud arvestades eelnevalt l\u00e4bi m\u00f5eldud juhtumeid parima tulemuse saavutamiseks. <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/spanner\/docs\/schema-and-data-model\">parima j\u00f5udluse saavutamiseks.<\/a><\/noindex>.<\/li>\n<li>Vahelduvad tabelid: tabelid v\u00f5ivad omavahel f\u00fc\u00fcsiliselt s\u00f5ltuda. Alamtabeli read v\u00f5ivad olla seotud \u00fclemineku tabeli ridadega. Selline l\u00e4henemine kiirendab suhete leidmist, mis v\u00f5ivad olla m\u00e4\u00e4ratletud andmemudeli koostamise etapis, n\u00e4iteks klientide ja nende arvekohtade \u00fchismajutuse korral.<\/li>\n<li>Indeksid: Cloud Spanner toetab teiseseid indekseid. Indeks koosneb indekseeritud veergudest ja k\u00f5igist PK veergudest. Soovi korral v\u00f5ib indeks sisaldada ka muid indekseerimata veerge. Indeks v\u00f5ib vahelduda \u00fclemineku tabeliga p\u00e4ringute kiirendamiseks. Indeksitele kehtivad mitmed piirangud, n\u00e4iteks maksimaalne arv lisaveerge, mida indeksis hoitakse. Samuti v\u00f5ivad p\u00e4ringud indekseid kaudu olla keerulisemad kui teistes RDBMS-ides.<\/li>\n<\/ul>\n<p>\n<i>Cloud Spanner valib indeksi automaatselt ainult harvadel juhtudel. Eelk\u00f5ige ei valita Cloud Spanner teisest indeksist automaatselt, kui p\u00e4ring n\u00f5uab mingeid veerge, mis ei ole salvestatud <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/spanner\/docs\/secondary-indexes\">indeksis <\/a><\/noindex>\u00bb.<\/i><\/p>\n<ul>\n<li>Teenuste tasemelepingu (SLA) puhul: juurutamine \u00fches regioonis SLA-ga 99,99%; mitmeregionaalsed juurutused 99,999% SLA-ga. Ehkki teenuste tasemeleping on lihtsalt leping, mitte garantii, arvan, et Google'i t\u00f6\u00f6tajatel on t\u00f5epoolest m\u00f5ned t\u00e4psed andmed, et teha sellist t\u00f5sist v\u00e4idet. (Viidates, 99,999% t\u00e4hendab 26,3 sekundit teenuse katkestust kuus.)<\/li>\n<li>Rohkem: <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/spanner\/\">https:\/\/cloud.google.com\/spanner\/<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p><i><b>M\u00e4rkus:<\/b> Apache Tephra projekt lisab Apache HBase-le laiendatud tehingute toe (n\u00fc\u00fcd on see beetaversioonis ellu viidud ka Apache Phoenixis).<\/i><\/p><\/blockquote>\n<p><\/p>\n<h2>3. Meie hinnang<\/h2>\n<p>\nNii et oleme k\u00f5ik lugenud Google'i v\u00e4iteid Cloud Spanneri eeliste kohta \u2014 praktiliselt piiramatu horisontaalne skaleeritavus, s\u00e4ilitades samas k\u00f5rge j\u00e4rjepidevuse ja v\u00e4ga k\u00f5rge SLA. Hoolimata sellest, et neid n\u00f5udeid on t\u00f5eliselt \u00e4\u00e4rmiselt raske saavutada, ei olnud meie eesm\u00e4rk neid \u00fcmber l\u00fckata. Keskendugem hoopis muudele asjadele, mis muretsevad enamikku andmebaasi kasutajaid: usaldusv\u00e4\u00e4rsus ja kasutusmugavus.<\/p>\n<h4>Hindasime Cloud Spannerit Sharded MySQL asendajana<\/h4>\n<p>\nGoogle Cloud SQL ja Amazon AWS RDS, kaks k\u00f5ige populaarsemat OLTP andmebaasi pilvemarketis, omavad v\u00e4ga suurt funktsioonide komplekti. Kuid selleks, et neid andmebaase skaleerida \u00fche s\u00f5lme suurusest kaugemale, peate rakendustes tegema partitsioneerimist. Selline l\u00e4henemine loob t\u00e4iendavat keerukust nii rakendustele kui ka haldamisele. Oleme uurinud, kuidas Spanner sobib mitme segmendi \u00fchendamise stsenaariumi ja millistest funktsioonidest (kui leidub) v\u00f5ib-olla tuleb loobuda.<\/p>\n<h4>SQL, DML ja DDL tugi, samuti \u00fchendus ja raamatukogud?<\/h4>\n<p>\nEsiteks, andmebaasi kasutamise alguses tuleb luua andmemudel. Kui arvate, et saate JDBC Spannerit oma lemmik SQL t\u00f6\u00f6riista juurde \u00fchendada, leiate, et saate andmeid nende kaudu p\u00e4rida, kuid ei saa neid kasutada tabeli loomiseks v\u00f5i muutmiseks (DDL) ega ka mis tahes sisestamise, uuendamise v\u00f5i kustutamise (DML) operatsioonide jaoks. Google\u2019i ametlik JDBC ei toeta kumbagi.<\/p>\n<blockquote><p><i>\u201ePraegu ei toeta draiverid DML- v\u00f5i DDL-operatsioone.\u201d<\/i><br \/>\nSpanneri dokumentatsioon<\/p><\/blockquote>\n<p>\nGCP konsooliga ei ole olukord parem \u2014 saate saata ainult SELECT-p\u00e4ringuid. \u00d5nneks on olemas DML ja DDL toe jaoks JDBC draiver, mille on v\u00e4lja t\u00f6\u00f6tanud kogukond, sealhulgas tehingud. <noindex><a rel=\"nofollow\" href=\"http:\/\/github.com\/olavloite\/spanner-jdbc\">github.com\/olavloite\/spanner-jdbc<\/a><\/noindex>. Kuigi see draiver on \u00e4\u00e4rmiselt kasulik, \u00fcllatab Google'i puuduv JDBC draiver. \u00d5nneks pakub Google \u00fcsna laia toetust kliendiraamatukogudele (p\u00f5hinevad gRPC-l): C#, Go, Java, node.js, PHP, Python ja Ruby.<\/p>\n<p>Peaaegu kohustuslik kohandatud Cloud Spanner API-de kasutamine (DDL ja DML puudumise t\u00f5ttu JDBC-s) toob kaasa teatud piirangud seotud koodialadele, nagu \u00fchenduse kogumid v\u00f5i andmebaasi sidumise raamistikud (nt Spring MVC). \u00dcldiselt on JDBC kasutamisel v\u00f5imalik vabalt valida lemmik\u00fchenduse kogum (nt HikariCP, DBCP, C3PO jne), mis on testitud ja toimib h\u00e4sti. Kohandatud Spanner API-de puhul peame toetuma ise loodud raamistikele\/\u00fchenduste kogudele\/sessioonidele.<\/p>\n<p>Peamine v\u00f5tmega (PK) struktuur v\u00f5imaldab Cloud Spanneril andmetele PK kaudu v\u00e4ga kiiresti juurde p\u00e4\u00e4seda, kuid toob kaasa ka teatud p\u00e4ringute probleemid.<\/p>\n<ul>\n<li>Te ei saa muuta peamise v\u00f5tme v\u00e4\u00e4rtust; peate esmalt kustutama kirje originaalse PK-ga ja seej\u00e4rel uuesti sisestama selle uue v\u00e4\u00e4rtusega. (See on sarnane teiste PK-p\u00f5histe andmebaaside\/salvestusmehhanismidega.)<\/li>\n<li>K\u00f5ik UPDATE ja DELETE operaatorid peavad n\u00e4itama PK-d WHERE, seega ei saa olla t\u00fchje DELETE all \u2014 alaliselt peab olema alamk\u00fcsitlus, n\u00e4iteks: UPDATE xxx WHERE id IN (SELECT id FROM table1)<\/li>\n<li>Puudub automaatse suurendamise variant v\u00f5i midagi sarnast, mis m\u00e4\u00e4rab PK v\u00e4lja j\u00e4rjestuse. Selle t\u00f6\u00f6tamiseks peab vastav v\u00e4\u00e4rtus olema loodud rakenduse poolel.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Teised indeksid?<\/h4>\n<p>\nGoogle Cloud Spanner toetab sisseehitatud teisi indekseid. See on v\u00e4ga meeldiv omadus, mida teistes tehnoloogiates ei pruugi alati olla. Apache Kudu ei toeta \u00fcldse teisi indekseid, samas kui Apache HBase ei toeta indekseid otse, vaid saab neid lisada Apache Phoenixi kaudu.<\/p>\n<p>Indekseid Kudu ja HBase-s saab modelleerida kui eraldi tabelit erineva primaarv\u00f5tmete koosseisuga, kuid toimingute aatomomaatsus, mida tehakse vanemtabeli ja sellega seotud indeksitabelitega, peab toimuma rakenduse tasemel ja ei ole lihtne \u00f5igesti ellu viia.<\/p>\n<p>Nagu mainitud Cloud Spaneri \u00fclevaates, v\u00f5ivad selle indeksid erineda MySQL indeksitest. Seet\u00f5ttu tuleks olla ettevaatlik p\u00e4ringute koostamisel ja profileerimisel, et tagada sobiva indeksi kasutamine seal, kus see on vajalik.<\/p>\n<h4>Vaated?<\/h4>\n<p>\nV\u00e4ga populaarne ja kasulik objekt andmebaasis on vaated. Need v\u00f5ivad olla kasulikud paljude kasutusjuhtude jaoks; minu kaks lemmikut on loogilise abstraktsiooni tase ja turvalisuse tase. Kahjuks ei toeta Cloud Spanner vaateid. Kuid see piirab meid vaid osaliselt, kuna juurdep\u00e4\u00e4su\u00f5iguste osas ei ole veerge tasemel detailide eristamist, kus vaated v\u00f5ivad olla vastuv\u00f5etav lahendus.<\/p>\n<p>Cloud Spanneri dokumentatsioonis jaotises, kus kirjeldatakse kvoote ja piiranguid (<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/spanner\/quotas\">spanner\/quotas<\/a><\/noindex>), on \u00fcks, mis v\u00f5ib olla probleemne m\u00f5nede rakenduste jaoks: Cloud Spanner'il on mingeid limite, mis on maksimaalselt 100 andmebaasi iga instantsi kohta. Ilmselt v\u00f5ib see muutuda t\u00f5siseks takistuseks andmebaasile, mis on m\u00f5eldud skaleerimiseks enam kui 100 andmebaasi jaoks. \u00d5nneks, p\u00e4rast vestlust meie Google'i tehnikuga, selgus, et seda piiri saab praktiliselt igas suuruses t\u00f5sta Google'i tugiteenuse kaudu.<\/p>\n<h4>Arenduse tugi?<\/h4>\n<p>\nCloud Spanner pakub \u00fcsna head programmeerimiskeelte toetust oma API-de kasutamiseks. Ametlikult toetatud teegid on C#, Go, Java, node.js, PHP, Python ja Ruby. Dokumentatsioon on piisavalt detailne, kuid nagu teiste tipptasemel tehnoloogiate puhul, on ka kogukond \u00fcsna v\u00e4ike v\u00f5rreldes k\u00f5ige populaarsemate andmebaasitehnoloogiate kogukondadega, mis v\u00f5ib suurendada aega, mis kulub v\u00e4hem levinud kasutusjuhtude v\u00f5i probleemide lahendamiseks.<\/p>\n<h4>Nii et kuidas on kohaliku arenduse toega?<\/h4>\n<p>\nMe ei leidnud viisi Cloud Spanneri instantsi loomiseks kohalikus keskkonnas. K\u00f5ige l\u00e4hem, mida saime, oli Docker-i pilt <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/r\/cockroachdb\/cockroach\">CockroachDB<\/a><\/noindex>, mis on p\u00f5him\u00f5tteliselt sarnane, kuid praktikas v\u00e4ga erinev. N\u00e4iteks CockroachDB saab kasutada PostgreSQL JDBC-d. Kuna arenduskeskkond peaks olema v\u00f5imalikult l\u00e4hedane tootmiskeskkonnale, ei ole Cloud Spanner ideaalne, kuna peab toetuma t\u00e4ielikule Spanneri instantsile. Kulude kokkuhoidmiseks v\u00f5ite valida \u00fche regiooni instantsi.<\/p>\n<h4>Halduse tugi?<\/h4>\n<p>\nCloud Spanneri instantsi loomine on v\u00e4ga lihtne. Peate lihtsalt valima, kas luua mitmeregionaalne v\u00f5i \u00fche regiooni instants, m\u00e4\u00e4rama regiooni(d) ja s\u00f5lmede arvu. V\u00e4hem kui minuti jooksul on instants k\u00e4ivitatud ja t\u00f6\u00f6ks valmis.<\/p>\n<p>M\u00f5ned p\u00f5himetriigid on otse juurdep\u00e4\u00e4setavad Google'i konsoolis Spanneri lehelt. \u00dcksikasjalikumad vaated on saadaval Stackdriveri kaudu, kus saate ka seadistada metrikate ja h\u00e4irepoliiitikate l\u00e4vev\u00e4\u00e4rtusi.<\/p>\n<h4>Juurdep\u00e4\u00e4s ressurssidele?<\/h4>\n<p>\nMySQL pakub laia ja v\u00e4ga detailselt reguleeritud kasutaja\u00f5igusi\/rolle. Juhtimist saab h\u00f5lpsasti seadistada konkreetsele tabelile v\u00f5i isegi lihtsalt osa selle veergudest. Cloud Spanner kasutab Google'i identiteedi ja juurdep\u00e4\u00e4su haldamise (IAM) t\u00f6\u00f6riistu, mis v\u00f5imaldavad kehtestada poliitikaid ja \u00f5igusi ainult v\u00e4ga k\u00f5rgel tasemel. K\u00f5ige detailsem variant on andmebaasi taseme \u00f5igus, mis ei sobi enamiku tootmisjuhtumitega. See piirang sunnib teid lisama oma koodi, infrastruktuuri v\u00f5i m\u00f5lemat t\u00e4iendavaid turvameetmeid, et v\u00e4ltida Spanneri ressursside ebaseaduslikku kasutamist.<\/p>\n<h4>Varukoopiad?<\/h4>\n<p>\nLihtsalt \u00f6eldes ei eksisteeri Cloud Spanneris varukoopiaid. Kuigi Google'i SLA k\u00f5rged n\u00f5udmised v\u00f5ivad tagada, et te ei kaota andmeid riistvarast v\u00f5i andmebaasist tingitud riketest, on inimvigade, tarkvara defektide jne t\u00f5ttu andmekaitse oluline. Me k\u00f5ik teame reeglit: k\u00f5rge k\u00e4ttesaadavus ei asenda m\u00f5istlikku varundusstrateegiat. Hetkel on andmete varundamiseks ainus viis nende voogedastamine andmebaasist eraldi salvestuskeskkonda.<\/p>\n<h4>K\u00fcsimuste j\u00f5udlus?<\/h4>\n<p>\nAndmete laadimiseks ja p\u00e4ringute testimiseks kasutasime Yahoo! Cloud Serving Benchmarki. Allpool on esitatud YCSB t\u00f6\u00f6koormus, kus lugemise ja kirjutamise suhe on 95% ja 5%.<\/p>\n<p><img decoding=\"async\" alt=\"Google Cloud Spanner: hea, halb, kole\" src=\"\/wp-content\/uploads\/2020\/02\/8fca14875af33c8ed3cd04b602c52b78.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>* Koormustesti viidi l\u00e4bi n1-standard-32 (32 vCPU, 120 GB RAM) arvutusmootoril, ning testi instants ei olnud kunagi kitsaskohaks testide k\u00e4igus.<\/i><br \/>\n<i>** YCSB \u00fches instantsis on maksimaalne niitide arv 400. Kokku oli vaja k\u00e4ivitada kuus paralleelset YCSB testi instantsi, et saavutada kokku 2400 niiti.<\/i><\/p>\n<p>Testitulemusi vaadates, eriti protsessorikoormuse ja TPS kombinatsiooni osas, n\u00e4eme selgelt, et Cloud Spanner skaleerub \u00fcsna h\u00e4sti. Suur koormus, mida tekitavad paljud p\u00e4\u00e4sud, kompenseeritakse Cloud Spanneri klastris olevate s\u00f5lmede suure arvu kaudu. Kuigi latentsus tundub olevat \u00fcsna k\u00f5rge, eriti 2400 p\u00e4\u00e4su korral, v\u00f5ib t\u00e4psemate numbrite saamiseks olla vajalik testimise kordamine, kasutades 6 v\u00e4iksemat arvutusmootorit. Iga instants jooksutab \u00fchte YCSB testi, mitte \u00fchte suurt CE instantsi kuue paralleelse testiga. Nii on lihtsam eristada Cloud Spanneri p\u00e4ringute latentsust ning latentsust, mis on lisatud v\u00f5rgu\u00fchenduses Cloud Spanneri ja CE instantsi vahel, kus test toimub.<\/p>\n<h3>Kuidas Cloud Spanner OLAP-ina toime tuleb?<\/h3>\n<p><\/p>\n<h4>Partitsioneering?<\/h4>\n<p>\nAndmete jagamine f\u00fc\u00fcsiliselt ja\/v\u00f5i loogiliselt s\u00f5ltumatuteks segmentideks, mida nimetatakse partiitideks, on v\u00e4ga populaarne kontseptsioon, mis kuulub enamikku OLAP-mootoritest. Partiid v\u00f5ivad oluliselt parandada p\u00e4ringute j\u00f5udlust ja andmebaasi hooldatavust. S\u00fcgavam s\u00fcvenemine partiitidesse v\u00e4\u00e4riks eraldi artiklit, seet\u00f5ttu mainime lihtsalt skeemi olemasolu ning alampartiitide t\u00e4htsust. Andmete jagamine partiitideks ja isegi alampartiitideks on anal\u00fc\u00fctiliste p\u00e4ringute j\u00f5udluse v\u00f5ti.<\/p>\n<p>Cloud Spanner ei toeta partiiteid sellisel kujul. See jagab andmed sees nii nimetatud <i>split<\/i>-deks, mis p\u00f5hinevad esmase v\u00f5tme vahemikel. Jagamine toimub automaatselt Cloud Spanneri klastris koormuse tasakaalustamiseks. Cloud Spanneri mugav funktsioon on vanemate tabelite (tabelite, mida ei vaheldustata teistega) p\u00f5hikoormuse jagamine. Spanner m\u00e4\u00e4rab automaatselt, kas <i>split <\/i>andmed, mida loetakse sagedamini, kui teised. <i>split<\/i>-des, ja v\u00f5ib teha otsuseid edasise jagamise kohta. Seel\u00e4bi v\u00f5ib p\u00e4ringus osaleda rohkem s\u00f5lmesid, mis t\u00f5husalt suurendab ka l\u00e4bilaskev\u00f5imet.<\/p>\n<h4>Andmete laadimine?<\/h4>\n<p>\nCloud Spanner'i meetod mahukate andmete jaoks on sama, mis tavalise laadimise puhul. Parima j\u00f5udluse saavutamiseks peate j\u00e4rgima m\u00f5ningaid soovitusi, sealhulgas:<\/p>\n<ul>\n<li>Korrastage oma andmed p\u00f5hiv\u00f5tme j\u00e4rgi.<\/li>\n<li>Jagage need 10*<i>s\u00f5lmede arv<\/i> erinevate osade kaupa.<\/li>\n<li>Looge t\u00f6\u00f6\u00fclesannete komplekt, mis laadib andmed paralleelselt.<\/li>\n<\/ul>\n<p>\nSellise andmete laadimise korral kasutatakse k\u00f5iki Cloud Spanner'i s\u00f5lmesid.<\/p>\n<p>Oleme kasutanud koormust\u00f6\u00f6d A YCSB andmestiku genereerimiseks, mis sisaldab 10 miljonit rida.<\/p>\n<p><img decoding=\"async\" alt=\"Google Cloud Spanner: hea, halb, kole\" src=\"\/wp-content\/uploads\/2020\/02\/89b9c0353716be2d389b3e8da82781ad.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>* Koormustest viidi l\u00e4bi n1-standard-32 (32 vCPU, 120 GB RAM) arvutusmootoris ning testimise instants ei olnud kunagi kitsaskohaks testides.<br \/>\n** 1-s\u00f5lme seadistust ei soovitata \u00fchegi tootmiskoormuse jaoks.<\/i><\/p>\n<p>Nagu eelnevalt mainitud, t\u00f6\u00f6tab Cloud Spanner automaatselt jagamisi, s\u00f5ltuvalt nende koormusest, seega paranevad tulemused p\u00e4rast mitmeid j\u00e4rjestikuseid teste. Siin esitatud tulemused on parimad, mida oleme saavutanud. Vaadates \u00fclaltoodud numbreid, n\u00e4eme, kuidas Cloud Spanner skaleerub h\u00e4sti klastris s\u00f5lmede arvu suurenedes. K\u00f5rgetasemed, mis silma paistavad, n\u00e4itavad \u00e4\u00e4rmiselt madalat keskmist latentsust, mis kontrastib segakoormuse tulemustega (95% lugemist ja 5% kirjutamist), nagu eelnevas osas kirjas.<\/p>\n<h4>Skaleerimine?<\/h4>\n<p>\nCloud Spanneri s\u00f5lmede arvu suurendamine ja v\u00e4hendamine on \u00fclesanne, mida saab teha \u00fche klikiga. Kui soovite kiiresti andmeid laadida, v\u00f5ite kaaluda instantsi maksimaalsesse suurendamisse (meie puhul oli see 25 s\u00f5lme US-EAST regioonis), ning p\u00e4rast andmete laadimist andmebaasi v\u00e4hendada s\u00f5lmede arvu, mis sobib teie tavalise koormuse jaoks, meeles pidades piirangut 2 TB\/s\u00f5lm.<\/p>\n<p>Meeldeti meile selle piiri kohta isegi palju v\u00e4iksema andmebaasiga. P\u00e4rast mitmeid koormusteste oli meie andmebaasi suurus umbes 155 GB ja kui v\u00e4hendasime \u00fche s\u00f5lme instantsile, tekkis meil j\u00e4rgmine viga:<\/p>\n<p><img decoding=\"async\" alt=\"Google Cloud Spanner: hea, halb, kole\" src=\"\/wp-content\/uploads\/2020\/02\/4a46c97e7943b5105bf178316dc67433.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMe suutsime v\u00e4hendada skaalat 25-lt 2-le instantsile, kuid j\u00e4ime kahe s\u00f5lme juurde kinni.<\/p>\n<p>Cloud Spanneri klastris s\u00f5lmede arvu suurendamist ja v\u00e4hendamist saab automatiseerida REST API abil. See v\u00f5ib olla eriti kasulik s\u00fcsteemi suurenenud koormuse v\u00e4hendamiseks tipptundidel.<\/p>\n<h4>OLAP p\u00e4ringute j\u00f5udlus?<\/h4>\n<p>\nAlguses kavandasime sellele osale Spanneri hindamisel m\u00e4rkimisv\u00e4\u00e4rselt aega p\u00fchendada. P\u00e4rast mitmeid SELECT COUNT p\u00e4ringuid m\u00f5istsime kohe, et testimine on l\u00fchike ja Spanner EI sobi OLAP mootoriks. \u00dcksk\u00f5ik, kui palju s\u00f5lmi on klastris, v\u00f5ttis 10M rida tabelist ridade arvu valimine aega 55-60 sekundit. Lisaks l\u00f5petasid k\u00f5ik p\u00e4ringud, mis n\u00f5udsid rohkem m\u00e4lu vaheresultaatide hoidmiseks, OOM veaga.<\/p>\n<p><code>SELECT COUNT(DISTINCT(field0)) FROM usertable; \u2014 (10M distinct values) -&gt; SpoolingHashAggregateIterator ran out of memory during new row.<\/code><\/p>\n<p>M\u00f5ned numbrid TPC-H p\u00e4ringute kohta leiate Todd Lipkoni artiklist <noindex><a rel=\"nofollow\" href=\"https:\/\/kudu.apache.org\/2017\/10\/23\/nosql-kudu-spanner-slides.html\">Nosql-kudu-spanner-slides.html<\/a><\/noindex>, slaidid 42 ja 43. Need numbrid vastavad meie enda tulemustele (kahjuks).<\/p>\n<p><img decoding=\"async\" alt=\"Google Cloud Spanner: hea, halb, kole\" src=\"\/wp-content\/uploads\/2020\/02\/d070c839bbc62b1ba1bebbaf64127e93.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>4. Meie j\u00e4reldused<\/h4>\n<p>\nArvestades Cloud Spanneri praegust funktsionaalset seisundit, on keeruline ette kujutada selle lihtsat asendamist olemasoleva OLTP-lahenduse jaoks, eriti siis, kui teie vajadused \u00fcletavad selle v\u00f5imeid. Oleks vaja kulutada m\u00e4rkimisv\u00e4\u00e4rselt aega lahenduse arendamiseks, arvestades Cloud Spanneri puudusi.<\/p>\n<p>Kui alustasime Cloud Spanneri hindamist, ootasime, et selle haldustooted on teiste Google SQL lahendustega samal tasemel v\u00f5i v\u00e4hemalt mitte kaugel neist. Kuid meid \u00fcllatas t\u00e4iesti varukoopiate puudumine ja v\u00e4ga piiratud juurdep\u00e4\u00e4suteenuste kontroll. R\u00e4\u00e4kimata vaadete puudumisest, kohaliku arenduskeskkonna puudumisest, mitte toetatud j\u00e4rjestustest, JDBC-st ilma DML ja DDL toeta ja nii edasi.<\/p>\n<p>Nii et kuhu peaks minema inimene, kellel on vaja suurendada tehingute andmebaasi? Tundub, et turul ei ole praegu \u00fchtset lahendust, mis sobiks k\u00f5ikide kasutusjuhtude jaoks. On olemas palju mitte- ja avatud l\u00e4htekoodiga lahendus, millest m\u00f5ned on selles artiklis mainitud, iga\u00fchel on oma tugevused ja n\u00f5rkused, kuid \u00fchtegi neist ei paku SLA-d 99,999% ja k\u00f5rget j\u00e4rjepidevust. Kui k\u00f5rge SLA tase on teie p\u00f5hiline eesm\u00e4rk ja te pole kaldunud looma oma lahendust mitme pilvekeskkonna jaoks, v\u00f5ib Cloud Spanner olla see lahendus, mida otsite. Kuid peate olema teadlik k\u00f5ikidest selle piirangutest.<\/p>\n<p>Ausugude m\u00e4rkida, et Cloud Spanner avati \u00fcldiseks kasutamiseks alles 2017. aasta kevadel, seet\u00f5ttu on m\u00f5istlik oodata, et m\u00f5ned selle praegused puudused v\u00f5ivad l\u00f5puks kaduda (loodetavasti), ja kui see juhtub, v\u00f5ib see m\u00e4ngu muuta. L\u00f5ppude l\u00f5puks ei ole Cloud Spanner lihtsalt k\u00f5rvalprojekt Google'ile. Google kasutab seda teiste Google'i toodete aluseks. Ja kui Google hiljuti asendas Megastore Google Cloud Storage'is Cloud Spanneriga, v\u00f5imaldas see Google Cloud Storage'il olla rangelt koosk\u00f5lastatud globaalsete objektide loetlemisel (mis endiselt ei kehti <noindex><a rel=\"nofollow\" href=\"https:\/\/cloudplatform.googleblog.com\/2018\/02\/how-Google-Cloud-Storage-offers-strongly-consistent-object-listing-thanks-to-Spanner.html\">Amazon\u2019i<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/cloudplatform.googleblog.com\/2018\/02\/how-Google-Cloud-Storage-offers-strongly-consistent-object-listing-thanks-to-Spanner.html\">S3<\/a><\/noindex>).<\/p>\n<p>Nii et lootus on endiselt olemas\u2026 loodame.<\/p>\n<p>Sellega on k\u00f5ik. Nagu artikli autor, j\u00e4tkame ka meie loodetavasti ja mida arvate teie? Kirjutage kommentaarides<\/p>\n<p><b>Kutsume k\u00f5iki \u00fcles k\u00fclastama meie <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/eoP2\/\">tasuta veebinarile<\/a><\/noindex> mille raames r\u00e4\u00e4gime kursusest \u00fcksikasjalikult<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/eoP2\/\"> AWS arendajatele<\/a><\/noindex> OTUSelt.<\/b><br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/489012\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435. \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c \u0432 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0430\u0441 \u043c\u044b \u043f\u0440\u0435\u0432\u0435\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u043e Google Cloud Spanner, \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0432 \u0435\u0435 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abAWS \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u0432 \u0431\u043b\u043e\u0433\u0435 Lightspeed HQ. \u041a\u0430\u043a \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 POS-\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u043e\u0437\u043d\u0438\u0447\u043d\u044b\u0445 \u0442\u043e\u0440\u0433\u043e\u0432\u0446\u0435\u0432, \u0440\u0435\u0441\u0442\u043e\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u043e\u043d\u043b\u0430\u0439\u043d-\u043f\u0440\u043e\u0434\u0430\u0432\u0446\u043e\u0432 \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443, Lightspeed \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":69569,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-69568","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435. \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c \u0432 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0430\u0441 \u043c\u044b \u043f\u0440\u0435\u0432\u0435\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u043e Google Cloud Spanner, \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0432 \u0435\u0435 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abAWS \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u0432 \u0431\u043b\u043e\u0433\u0435 Lightspeed HQ. \u041a\u0430\u043a \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 POS-\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u043e\u0437\u043d\u0438\u0447\u043d\u044b\u0445 \u0442\u043e\u0440\u0433\u043e\u0432\u0446\u0435\u0432, \u0440\u0435\u0441\u0442\u043e\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u043e\u043d\u043b\u0430\u0439\u043d-\u043f\u0440\u043e\u0434\u0430\u0432\u0446\u043e\u0432 \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443, Lightspeed \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/google-cloud-spanner-horoshij-plohoj-zloj\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Google Cloud Spanner: \u0445\u043e\u0440\u043e\u0448\u0438\u0439, \u043f\u043b\u043e\u0445\u043e\u0439, \u0437\u043b\u043e\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435. \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c \u0432 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0430\u0441 \u043c\u044b \u043f\u0440\u0435\u0432\u0435\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u043e Google Cloud Spanner, \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0432 \u0435\u0435 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abAWS \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u0432 \u0431\u043b\u043e\u0433\u0435 Lightspeed HQ. \u041a\u0430\u043a \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 POS-\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u043e\u0437\u043d\u0438\u0447\u043d\u044b\u0445 \u0442\u043e\u0440\u0433\u043e\u0432\u0446\u0435\u0432, \u0440\u0435\u0441\u0442\u043e\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u043e\u043d\u043b\u0430\u0439\u043d-\u043f\u0440\u043e\u0434\u0430\u0432\u0446\u043e\u0432 \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443, Lightspeed \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/google-cloud-spanner-horoshij-plohoj-zloj\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-20T12:24:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:14:50+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Google Cloud Spanner: hea, halb, kole | ProHoster","description":"Tere, Habrovtsy. J\u00e4tkame traditsiooniliselt huvitava teabe jagamist uute kursuste alguse eel\u00f5htul. T\u00e4na oleme teie jaoks t\u00f5lkinud artikli Google Cloud Spannerist, seostades selle \"AWS arendajatele\" kursuse lansseerimisega. Algne avaldamine Lightspeed HQ blogis. Ettev\u00f5ttena, mis pakub mitmeid pilve-POS-lahendusi jaem\u00fc\u00fcjatele, restoranidele ja veebim\u00fc\u00fcjatele \u00fcle kogu maailma, kasutab Lightspeed","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/google-cloud-spanner-horoshij-plohoj-zloj","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Google Cloud Spanner: \u0445\u043e\u0440\u043e\u0448\u0438\u0439, \u043f\u043b\u043e\u0445\u043e\u0439, \u0437\u043b\u043e\u0439 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435. \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c \u0432 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0430\u0441 \u043c\u044b \u043f\u0440\u0435\u0432\u0435\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u043e Google Cloud Spanner, \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0432 \u0435\u0435 \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abAWS \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043e \u0432 \u0431\u043b\u043e\u0433\u0435 Lightspeed HQ. \u041a\u0430\u043a \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 POS-\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u043e\u0437\u043d\u0438\u0447\u043d\u044b\u0445 \u0442\u043e\u0440\u0433\u043e\u0432\u0446\u0435\u0432, \u0440\u0435\u0441\u0442\u043e\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u043e\u043d\u043b\u0430\u0439\u043d-\u043f\u0440\u043e\u0434\u0430\u0432\u0446\u043e\u0432 \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443, Lightspeed \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/google-cloud-spanner-horoshij-plohoj-zloj","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-20T12:24:23+00:00","article:modified_time":"2020-03-03T13:14:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"69568","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:20:25","updated":"2022-09-30 15:10:07"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/69568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=69568"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/69568\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/69569"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=69568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=69568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=69568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}