Google awọsanma Spanner: O dara, buburu, ilosiwaju

Kaabo, Khabrovits. Ni aṣa, a tẹsiwaju lati pin awọn ohun elo ti o nifẹ si ni aṣalẹ ti ibẹrẹ ti awọn iṣẹ ikẹkọ tuntun. Loni, ni pataki fun ọ, a ti tumọ nkan kan nipa Google Cloud Spanner, ti akoko lati ṣe deede pẹlu ifilọlẹ iṣẹ-ẹkọ naa. "AWS fun Awọn Difelopa".

Google awọsanma Spanner: O dara, buburu, ilosiwaju

Ni akọkọ ti a tẹjade ni Lightspeed HQ bulọọgi.

Gẹgẹbi ile-iṣẹ ti o funni ni ọpọlọpọ awọn iṣeduro POS ti o da lori awọsanma fun awọn alatuta, awọn alatuta, ati awọn oniṣowo ori ayelujara ni ayika agbaye, Lightspeed nlo ọpọlọpọ awọn oriṣiriṣi awọn iru ẹrọ ipilẹ data fun ọpọlọpọ awọn iṣowo, awọn atupale, ati awọn ọran lilo wiwa. Olukuluku awọn iru ẹrọ data wọnyi ni awọn agbara ati ailagbara tirẹ, nitorinaa, nigbati Google ṣafihan Cloud Spanner si ọja - awọn ẹya ti o ni ileri ti a ko rii ni agbaye ti awọn apoti isura infomesonu ibatan, gẹgẹbi iwọn iwọn petele ailopin ati adehun ipele iṣẹ 99,999% (SLA) , A ko le ṣe anfani lati ni i ni ọwọ wa!

Lati funni ni akopọ okeerẹ ti iriri wa pẹlu Cloud Spanner, bakanna bi awọn igbelewọn igbelewọn ti a lo, a yoo bo awọn akọle wọnyi:

  1. Wa igbelewọn àwárí mu
  2. Awọsanma Spanner ni kukuru
  3. Ayẹwo wa
  4. Awọn awari wa

Google awọsanma Spanner: O dara, buburu, ilosiwaju

1. Wa igbelewọn àwárí mu

Ṣaaju ki o to omiwẹ sinu awọn pato ti Cloud Spanner, awọn ibajọra rẹ ati awọn iyatọ pẹlu awọn solusan miiran lori ọja, jẹ ki a kọkọ sọrọ nipa awọn ọran lilo akọkọ ti a ni lokan nigbati a ba gbero ibiti a ti le gbe Cloud Spanner sinu awọn amayederun wa:

  • Bi awọn kan rirọpo fun (ti nmulẹ) ibile SQL database ojutu
  • Gẹgẹbi ojutu OLTP ti o ṣiṣẹ OLAP

akiyesi: Fun irọrun lafiwe, nkan yii ṣe afiwe Awọsanma Spanner pẹlu awọn iyatọ MySQL ti GCP Cloud SQL ati awọn idile ojutu Amazon AWS RDS.

Lilo Awọsanma Spanner bi aropo fun ibi ipamọ data SQL ibile kan

Ni ayika ibile awọn apoti isura infomesonu, nigbati akoko idahun fun ibeere data data ba sunmọ tabi paapaa kọja awọn ala-ilẹ ohun elo ti a ti sọ tẹlẹ (ni pataki nitori ilosoke ninu nọmba awọn olumulo ati/tabi awọn ibeere), awọn ọna pupọ lo wa lati dinku akoko idahun si awọn ipele itẹwọgba. Bibẹẹkọ, pupọ julọ awọn ojutu wọnyi pẹlu idasi afọwọṣe.

Fun apẹẹrẹ, igbesẹ akọkọ lati ṣe ni lati wo ọpọlọpọ awọn eto ibi ipamọ data ti o ni ibatan si iṣẹ ati tune wọn si awọn ilana oju iṣẹlẹ lilo ohun elo ti o dara julọ. Ti eyi ko ba to, o le yan lati ṣe iwọn data data ni inaro tabi petele.

Gbigbọn ohun elo kan ni mimuṣe imudojuiwọn apẹẹrẹ olupin, ni igbagbogbo nipa fifi awọn ero isise/awọn ohun kohun kun diẹ sii, Ramu diẹ sii, ibi ipamọ yiyara, ati bẹbẹ lọ. Fifi awọn orisun ohun elo ohun elo diẹ sii ni abajade iṣẹ ṣiṣe data pọ si, ni iwọn akọkọ ni awọn iṣowo fun iṣẹju keji, ati idaduro idunadura fun awọn eto OLTP. Awọn ọna ṣiṣe data ibatan (ti o lo ọna ti o ni opo-pupọ) gẹgẹbi iwọn MySQL daradara ni inaro.

Awọn abawọn pupọ wa si ọna yii, ṣugbọn o han julọ ni iwọn olupin ti o pọju lori ọja naa. Ni kete ti opin Apeere Server ti o tobi julọ ti de, ọna kan ṣoṣo lo wa: iwọn jade.

Iwọn-jade jẹ ọna ti o ṣafikun awọn olupin diẹ sii si iṣupọ kan lati mu iṣẹ ṣiṣe pọ si ni laini bi a ṣe ṣafikun awọn olupin diẹ sii. Pupọ ibile Awọn ọna ṣiṣe data ko ṣe iwọn daradara tabi ko ṣe iwọn rara. Fun apẹẹrẹ, MySQL le ṣe iwọn jade fun awọn kika nipa fifi awọn oluka ẹrú kun, ṣugbọn ko le ṣe iwọn jade fun awọn kikọ.

Ni apa keji, nitori iseda rẹ, Cloud Spanner le ni irọrun ṣe iwọn nâa pẹlu idasi kekere.

Ni kikun ifihan DBMS bi iṣẹ kan gbọdọ wa ni akojopo lati yatọ si ăti. Gẹgẹbi ipilẹ, a mu DBMS olokiki julọ ninu awọsanma - fun Google, GCP Cloud SQL ati fun Amazon, AWS RDS. Ninu igbelewọn wa, a dojukọ awọn ẹka wọnyi:

  • Ṣiṣe aworan ẹya: Iwọn SQL, DDL, DML; awọn ile-ikawe asopọ / awọn asopọ, atilẹyin idunadura, ati bẹbẹ lọ.
  • Atilẹyin Idagbasoke: Irọrun ti idagbasoke ati idanwo.
  • Atilẹyin iṣakoso: iṣakoso apẹẹrẹ gẹgẹbi igbelosoke / isalẹ ati awọn iṣẹlẹ igbega; SLA, afẹyinti ati imularada; aabo / wiwọle Iṣakoso.

Lilo Awọsanma Spanner bi OLAP-Ṣiṣe Solusan OLTP

Lakoko ti Google ko sọ ni gbangba pe Cloud Spanner jẹ fun awọn atupale, o pin diẹ ninu awọn abuda pẹlu awọn ẹrọ miiran bii Apache Impala & Kudu ati YugaByte ti o jẹ apẹrẹ fun awọn iṣẹ ṣiṣe OLAP.

Paapaa ti aye kekere ba wa ti Cloud Spanner pẹlu iwọn-jade HTAP (Hybrid Transactional/Analytic Processing) engine pẹlu eto ẹya OLAP ti o lo (diẹ sii tabi kere si), a ro pe yoo tọsi akiyesi wa.

Pẹlu iyẹn ni lokan, a wo awọn ẹka wọnyi:

  • Ikojọpọ data, awọn atọka ati atilẹyin ipin
  • Iṣe ibeere ati DML

2. Awọsanma Spanner ni a Soko

Google Spanner jẹ eto iṣakoso data data ti o ni ibatan (RDBMS) ti Google nlo fun ọpọlọpọ awọn iṣẹ tirẹ. Google jẹ ki o wa ni gbangba fun awọn olumulo Google Cloud Platform ni ibẹrẹ ọdun 2017.

Eyi ni diẹ ninu awọn abuda Spanner:

  • Dídéédéé Gíga, Àkópọ̀ RDBMS Scalable: Nlo amuṣiṣẹpọ akoko hardware lati rii daju ibamu data.
  • Atilẹyin idunadura tabili tabili: Awọn iṣowo le fa ọpọlọpọ awọn tabili - ko ni opin si tabili kan (bii Apache HBase tabi Apache Kudu).
  • Awọn tabili ipilẹ Kokoro akọkọ: Gbogbo awọn tabili gbọdọ ni Bọtini Akọbẹrẹ ti a kede (PC), eyiti o le ni awọn ọwọn tabili lọpọlọpọ. Awọn data Tabular ti wa ni ipamọ ni aṣẹ PC, eyiti o jẹ ki o munadoko pupọ ati yara fun awọn wiwa PC. Gẹgẹbi pẹlu awọn ọna ṣiṣe orisun PC miiran, imuse gbọdọ jẹ apẹrẹ lodi si awọn ọran lilo iṣaaju lati le ṣaṣeyọri ti o dara ju išẹ.
  • Awọn tabili yiyọ: Awọn tabili le ni awọn igbẹkẹle ti ara lori ara wọn. Awọn ori ila ti tabili ọmọ le ni ibamu pẹlu awọn ori ila ti tabili obi. Ọna yii ṣe iyara wiwa fun awọn ibatan ti o le pinnu ni ipele awoṣe data, fun apẹẹrẹ, nigba gbigbe awọn alabara ati awọn risiti wọn papọ.
  • Awọn atọka: Awọsanma Spanner ṣe atilẹyin awọn atọka keji. Atọka kan ni awọn ọwọn itọka ati gbogbo awọn ọwọn PC. Ni iyan, atọka naa tun le ni awọn ọwọn miiran ti kii ṣe atọka ninu. Atọka naa le ni idapọ pẹlu tabili obi lati yara awọn ibeere. Awọn ihamọ pupọ lo si awọn atọka, gẹgẹbi nọmba ti o pọju ti awọn afikun awọn ọwọn ti o le wa ni ipamọ sinu atọka. Paapaa, awọn ibeere nipasẹ awọn atọka le ma jẹ taara bi ninu awọn RDBMS miiran.

“Spanner awọsanma yan atọka laifọwọyi ni awọn ọran to ṣọwọn nikan. Ni pataki, Awọsanma Spanner ko yan atọka keji laifọwọyi ti ibeere naa ba beere awọn ọwọn eyikeyi ti a ko tọju sinu atọka ».

  • Adehun Ipele Iṣẹ (SLA): Imuṣiṣẹ agbegbe ẹyọkan pẹlu 99,99% SLA; olona-ekun deployments pẹlu 99,999% SLA. Lakoko ti SLA funrararẹ jẹ adehun nikan kii ṣe iṣeduro iru eyikeyi, Mo gbagbọ pe awọn eniyan Google ni diẹ ninu awọn data lile lati ṣe iru ẹtọ to lagbara. (Fun itọkasi, 99,999% tumọ si awọn iṣẹju-aaya 26,3 ti idinku iṣẹ ni oṣu kan.)
  • Siwaju sii: https://cloud.google.com/spanner/

akiyesi: Ise agbese Apache Tephra ṣe afikun atilẹyin iṣowo ilọsiwaju si Apache HBase (tun ṣe imuse ni Apache Phoenix bi beta).

3. Agbeyewo wa

Nitorinaa, gbogbo wa ti ka awọn alaye Google nipa awọn anfani ti Cloud Spanner - iwọn iwọn petele ti ko ni opin lakoko ti o ṣetọju aitasera giga ati SLA giga pupọ. Botilẹjẹpe awọn iṣeduro wọnyi jẹ, ni eyikeyi ọran, nira pupọ lati ṣaṣeyọri, ibi-afẹde wa kii ṣe lati tako wọn. Dipo, jẹ ki a dojukọ awọn ohun miiran ti ọpọlọpọ awọn olumulo ibi ipamọ data ṣe abojuto nipa: irẹwẹsi ati lilo.

A ṣe iwọn Awọsanma Spanner bi aropo fun Sharded MySQL

Google Cloud SQL ati Amazon AWS RDS, meji ninu awọn apoti isura data OLTP olokiki julọ ni ọja awọsanma, ni ẹya ti o tobi pupọ ti ṣeto. Bibẹẹkọ, lati le ṣe iwọn awọn apoti isura infomesonu wọnyi kọja iwọn oju ipade kan, o nilo lati ṣe pipin ohun elo. Ọna yii ṣẹda idiju afikun fun awọn ohun elo mejeeji ati iṣakoso. A wo bii Spanner ṣe baamu si oju iṣẹlẹ ti apapọ ọpọlọpọ awọn shards sinu apẹẹrẹ kan ati awọn ẹya wo (ti o ba jẹ eyikeyi) le ni lati rubọ.

Atilẹyin fun SQL, DML ati DDL, bakanna bi asopo ati awọn ile-ikawe?

Ni akọkọ, nigbati o bẹrẹ pẹlu eyikeyi data data, o nilo lati ṣẹda awoṣe data kan. Ti o ba ro pe o le so JDBC Spanner pọ si ọpa SQL ayanfẹ rẹ, iwọ yoo rii pe o le beere data rẹ pẹlu rẹ, ṣugbọn o ko le lo lati ṣẹda tabili kan tabi imudojuiwọn (DDL) tabi eyikeyi fi sii / imudojuiwọn / paarẹ awọn iṣẹ (DML). JDBC osise Google ko ṣe atilẹyin boya.

"Awọn awakọ ko ṣe atilẹyin lọwọlọwọ awọn alaye DML tabi DDL."
Spanner Documentation

Ipo naa ko dara julọ pẹlu console GCP - o le firanṣẹ awọn ibeere Yan nikan. Ni Oriire, awakọ JDBC wa pẹlu atilẹyin DML ati DDL lati agbegbe, pẹlu awọn iṣowo github.com/olavloite/spanner-jdbc. Lakoko ti awakọ yii wulo pupọ, isansa ti awakọ JDBC ti Google tirẹ jẹ iyalẹnu. Ni Oriire, Google nfunni ni atilẹyin ile-ikawe alabara gbooro (da lori gRPC): C #, Go, Java, node.js, PHP, Python, ati Ruby.

Lilo isunmọ-aṣẹ ti awọn API aṣa Spanner awọsanma (nitori aini DDL ati DML ni JDBC) awọn abajade ni diẹ ninu awọn idiwọn fun awọn agbegbe ti o ni ibatan ti koodu gẹgẹbi idapọ asopọ tabi awọn ilana abuda data data (bii Orisun omi MVC). Ni gbogbogbo, nigba lilo JDBC, o ni ominira lati yan adagun asopọ asopọ ayanfẹ rẹ (fun apẹẹrẹ HikariCP, DBCP, C3PO, ati bẹbẹ lọ) ti o ni idanwo ati ṣiṣẹ daradara. Ninu ọran ti aṣa Spanner APIs, a ni lati gbẹkẹle awọn ipilẹ / abuda / awọn adagun igba ti a ti ṣẹda ara wa.

Apẹrẹ iṣalaye bọtini akọkọ (PC) ngbanilaaye Cloud Spanner lati yara pupọ nigbati o wọle si data nipasẹ PC, ṣugbọn tun ṣafihan diẹ ninu awọn ọran ibeere.

  • O ko le ṣe imudojuiwọn iye bọtini akọkọ; O gbọdọ kọkọ paarẹ titẹsi PC atilẹba naa ki o tun fi sii pẹlu iye tuntun. (Eyi jẹ iru si data orisun PC miiran / awọn ẹrọ ibi ipamọ.)
  • Eyikeyi imudojuiwọn ati awọn alaye PA gbọdọ pato PC ni NIBI, nitorinaa, ko le jẹ ṣofo PA gbogbo awọn alaye - nigbagbogbo gbọdọ jẹ abẹlẹ, fun apẹẹrẹ: imudojuiwọn xxx NIBI id IN (Yan id LATI tabili1)
  • Aini aṣayan afikun-laifọwọyi tabi nkan ti o jọra ti o ṣeto ọkọọkan fun aaye PC. Fun eyi lati ṣiṣẹ, iye ti o baamu gbọdọ ṣẹda ni ẹgbẹ ohun elo.

Awọn atọka Atẹle?

Google Cloud Spanner ti ni atilẹyin ti a ṣe sinu fun awọn atọka atẹle. Eyi jẹ ẹya ti o wuyi pupọ ti kii ṣe nigbagbogbo ninu awọn imọ-ẹrọ miiran. Apache Kudu ko ṣe atilẹyin lọwọlọwọ awọn atọka atẹle rara, ati Apache HBase ko ṣe atilẹyin awọn atọka taara, ṣugbọn o le ṣafikun wọn nipasẹ Apache Phoenix.

Awọn atọka ni Kudu ati HBase le jẹ apẹrẹ bi tabili lọtọ pẹlu oriṣiriṣi oriṣiriṣi ti awọn bọtini akọkọ, ṣugbọn atomity ti awọn iṣẹ ṣiṣe ti a ṣe lori tabili obi ati awọn tabili atọka ti o jọmọ gbọdọ ṣee ṣe ni ipele ohun elo ati pe kii ṣe bintin lati ṣe ni deede.

Gẹgẹbi a ti mẹnuba ninu atunyẹwo Spanner awọsanma, awọn atọka rẹ le yato si awọn atọka MySQL. Nitorinaa, a gbọdọ ṣe itọju pataki ni kikọ ibeere ati profaili lati rii daju pe a lo itọka to pe nibiti o nilo rẹ.

Aṣoju?

Ohun olokiki pupọ ati iwulo ninu aaye data jẹ awọn iwo. Wọn le wulo fun nọmba nla ti awọn ọran lilo; mi meji awọn ayanfẹ ni awọn mogbonwa abstraction Layer ati aabo Layer. Laanu Cloud Spanner KO ṣe atilẹyin awọn iwo. Bibẹẹkọ, eyi nikan fi opin si wa ni apakan, nitori ko si granularity ipele-iwe fun awọn igbanilaaye iwọle nibiti awọn iwo le jẹ ojutu itẹwọgba.

Wo iwe-ipamọ Spanner awọsanma fun apakan kan ti n ṣalaye awọn ipin ati awọn opin (spanner / awọn ipin), ọkan wa ni pato ti o le jẹ iṣoro fun diẹ ninu awọn ohun elo: Cloud Spanner jade kuro ninu apoti ni o pọju 100 database fun apẹẹrẹ. O han ni, eyi le jẹ idiwọ nla fun data data ti o ṣe apẹrẹ lati ṣe iwọn si awọn apoti isura data 100 ju. Ni Oriire, lẹhin sisọ pẹlu aṣoju imọ-ẹrọ Google wa, a rii pe opin yii le pọsi si fere eyikeyi iye nipasẹ Atilẹyin Google.

Atilẹyin idagbasoke?

Awọsanma Spanner nfunni ni atilẹyin ede siseto to bojumu fun ṣiṣẹ pẹlu API rẹ. Awọn ile-ikawe ti o ni atilẹyin ni ifowosi wa ni agbegbe ti C #, Go, Java, node.js, PHP, Python, ati Ruby. Iwe naa jẹ alaye ti o tọ, ṣugbọn bii pẹlu awọn imọ-ẹrọ gige-eti miiran, agbegbe jẹ ohun kekere ni akawe si awọn imọ-ẹrọ data olokiki julọ, eyiti o le ja si ni akoko diẹ sii ti a lo lori awọn ọran lilo ti ko wọpọ tabi awọn iṣoro.

Nitorinaa kini nipa atilẹyin idagbasoke agbegbe?

A ko rii ọna lati ṣẹda apẹẹrẹ Awọsanma Spanner kan lori awọn agbegbe ile. Ti o sunmọ julọ ti a ni ni aworan Docker kan ÀkùkọDBeyiti o jọra ni ipilẹ, ṣugbọn o yatọ pupọ ni iṣe. Fun apẹẹrẹ CockroachDB le lo PostgreSQL JDBC. Niwọn igba ti agbegbe idagbasoke yẹ ki o wa nitosi bi o ti ṣee ṣe si agbegbe iṣelọpọ, Cloud Spanner ko dara nitori o nilo lati gbarale apẹẹrẹ Spanner ni kikun. Lati ṣafipamọ awọn idiyele, o le yan apẹẹrẹ agbegbe kan.

Atilẹyin iṣakoso?

Ṣiṣẹda apẹẹrẹ Awọsanma Spanner kan rọrun pupọ. O kan nilo lati yan laarin ṣiṣẹda ọpọlọpọ-agbegbe tabi apẹẹrẹ ẹkun kan, pato agbegbe (awọn) ati nọmba awọn apa. Ni o kere ju iṣẹju kan, apẹẹrẹ yoo wa ni oke ati ṣiṣe.

Ọpọlọpọ awọn metiriki alakọbẹrẹ wa taara lori oju-iwe Spanner ni Google Console. Awọn iwo alaye diẹ sii wa nipasẹ Stackdriver, nibi ti o tun le ṣeto awọn iloro metric ati awọn ilana itaniji.

Wiwọle si awọn orisun?

MySQL nfunni ni igbanilaaye / awọn eto ipa olumulo lọpọlọpọ ati granular pupọ. O le ni rọọrun ṣe iwọle si tabili kan pato, tabi paapaa ipin kan ti awọn ọwọn rẹ. Awọsanma Spanner nlo Google Identity & Access Management (IAM) ọpa, eyiti o fun ọ laaye nikan lati ṣeto awọn eto imulo ati awọn igbanilaaye ni ipele ti o ga julọ. Aṣayan granular julọ julọ jẹ igbanilaaye ipele-ipamọ data, eyiti ko baamu ni ọpọlọpọ awọn ọran iṣelọpọ. Ihamọ yii fi agbara mu ọ lati ṣafikun awọn igbese aabo ni afikun si koodu rẹ, awọn amayederun, tabi mejeeji lati ṣe idiwọ lilo laigba aṣẹ ti awọn orisun Spanner.

Awọn afẹyinti?

Lati fi sii ni irọrun, ko si awọn afẹyinti ni Cloud Spanner. Lakoko ti awọn ibeere SLA giga ti Google le rii daju pe o ko padanu data eyikeyi nitori hardware tabi awọn ikuna data data, aṣiṣe eniyan, awọn abawọn ohun elo, ati bẹbẹ lọ, gbogbo wa mọ ofin naa: wiwa giga kii ṣe aropo fun ilana imudani ti o gbọn. Lọwọlọwọ, ọna kan ṣoṣo lati ṣe afẹyinti data ni lati sanwọle ni eto lati ibi ipamọ data si agbegbe ibi ipamọ lọtọ.

Iṣe ibeere?

A lo Yahoo! lati kojọpọ data ati idanwo awọn ibeere. Awọsanma Sìn tunbo ma. Tabili ti o wa ni isalẹ fihan iṣẹ ṣiṣe B YCSB pẹlu kika 95% si ipin kikọ 5%.

Google awọsanma Spanner: O dara, buburu, ilosiwaju

* Igbeyewo fifuye ti a ṣiṣẹ lori n1-bošewa-32 Oniṣiro Engine (CE) (32 vCPUs, 120 GB iranti) ati awọn igbeyewo apẹẹrẹ wà kò igo ninu awọn igbeyewo.
** Nọmba ti o pọ julọ ti awọn okun ni apẹẹrẹ YCSB kan jẹ 400. Ni apapọ, awọn iṣẹlẹ afiwera mẹfa ti awọn idanwo YCSB ni lati ṣiṣẹ lati gba apapọ awọn okun 2400.

Wiwo awọn abajade ala-ilẹ, ni pataki apapo ti fifuye Sipiyu ati TPS, a le rii ni kedere pe Cloud Spanner ṣe iwọn daradara daradara. Ẹru nla ti a ṣẹda nipasẹ nọmba nla ti awọn okun jẹ aiṣedeede nipasẹ nọmba nla ti awọn apa inu iṣupọ Spanner awọsanma. Botilẹjẹpe lairi wulẹ ga gaan, ni pataki nigbati o nṣiṣẹ ni awọn okun 2400, o le jẹ pataki lati tun ṣe pẹlu awọn iṣẹlẹ kekere 6 ti ẹrọ iṣiro lati gba awọn nọmba deede diẹ sii. Apeere kọọkan yoo ṣe idanwo YCSB kan dipo apẹẹrẹ CE nla kan pẹlu awọn idanwo afiwera 6. Eyi yoo jẹ ki o rọrun lati ṣe iyatọ laarin awọn idaduro ibeere Cloud Spanner ati awọn idaduro ti a ṣafikun nipasẹ asopọ nẹtiwọọki laarin Cloud Spanner ati apẹẹrẹ CE ti nṣiṣẹ idanwo naa.

Bawo ni Cloud Spanner ṣe ṣiṣẹ bi OLAP kan?

Pipin?

Pipin data si awọn apakan ominira ti ara ati/tabi ọgbọn ọgbọn, ti a pe ni awọn ipin, jẹ imọran olokiki pupọ ti a rii ni ọpọlọpọ awọn ẹrọ OLAP. Awọn ipin le ṣe ilọsiwaju iṣẹ ṣiṣe ibeere ati iduroṣinṣin data. Ilọsiwaju siwaju si ipin yoo jẹ nkan (awọn) lọtọ, nitorinaa jẹ ki a kan darukọ pataki ti nini ero ipin ati ipin-ipin. Agbara lati pin data sinu awọn ipin ati paapaa siwaju si awọn ipin-ipin jẹ bọtini si iṣẹ ti awọn ibeere itupalẹ.

Awọsanma Spanner ko ṣe atilẹyin awọn ipin fun ẹyọkan. O ya data inu sinu ohun ti a npe ni Pin-s da lori awọn sakani bọtini akọkọ. Pipin ti wa ni ṣe laifọwọyi lati dọgbadọgba fifuye lori awọsanma Spanner iṣupọ. Ẹya ti o ni ọwọ pupọ ti Awọsanma Spanner n pin ẹru ipilẹ ti tabili obi kan (tabili ti ko ni ifaramọ pẹlu miiran). Spanner laifọwọyi ṣe iwari ti o ba wa ninu Pin data ti o ka siwaju nigbagbogbo ju data ninu miiran Pin-ah, ati ki o le pinnu lori kan siwaju Iyapa. Nitorinaa, awọn apa diẹ sii le ni ipa ninu ibeere kan, eyiti o tun mu iṣelọpọ pọ si ni imunadoko.

Nkojọpọ data?

Ọna Spanner awọsanma fun data olopobobo jẹ kanna bi fun ikojọpọ deede. Fun iṣẹ ṣiṣe ti o pọju, o nilo lati tẹle awọn itọnisọna kan, pẹlu:

  • Too data rẹ nipasẹ bọtini akọkọ.
  • Pin wọn si 10*nọmba ti apa olukuluku ruju.
  • Ṣẹda akojọpọ awọn iṣẹ ṣiṣe ti oṣiṣẹ ti o gbe data ni afiwe.

Ẹru data yii nlo gbogbo awọn apa Cloud Spanner.

A lo iṣẹ ṣiṣe YCSB lati ṣe ipilẹṣẹ data ti ila 10M kan.

Google awọsanma Spanner: O dara, buburu, ilosiwaju

* Igbeyewo fifuye naa ni ṣiṣe lori ẹrọ oniṣiro n1-boṣewa-32 (32 vCPUs, iranti 120 GB) ati apẹẹrẹ idanwo ko jẹ igo ninu awọn idanwo naa.
** Eto ipade 1 ko ṣe iṣeduro fun eyikeyi iṣẹ iṣelọpọ.

Gẹgẹbi a ti sọ loke, Cloud Spanner laifọwọyi ṣe ilana awọn pipin ti o da lori ẹru wọn, nitorinaa awọn abajade dara si lẹhin ọpọlọpọ awọn itara itẹlera ti idanwo naa. Awọn abajade ti a gbekalẹ nibi ni awọn abajade to dara julọ ti a ti gba. Wiwo awọn nọmba ti o wa loke, a le rii bi Cloud Spanner ṣe ṣe iwọn (daradara) bi nọmba awọn apa inu iṣupọ pọ si. Awọn nọmba ti o duro jade jẹ lairi aropin iwọn kekere, eyiti o ṣe iyatọ pẹlu awọn abajade lati awọn iṣẹ ṣiṣe ti o dapọ (95% kika ati 5% kikọ) bi a ti ṣalaye ninu apakan loke.

Diwọn bi?

Nlọ ati idinku nọmba awọn apa Spanner awọsanma jẹ iṣẹ-tẹ ẹyọkan. Ti o ba fẹ gbe data ni kiakia, o le fẹ lati ronu igbelaruge apẹẹrẹ si o pọju (ninu ọran wa o jẹ awọn apa 25 ni agbegbe US-EAST), ati lẹhinna dinku nọmba awọn apa ti o dara fun fifuye deede rẹ lẹhin gbogbo awọn data in the database , fifi ni lokan awọn 2 TB/ node opin.

A ni won leti ti yi iye ani pẹlu kan Elo kere database. Lẹhin ọpọlọpọ awọn ṣiṣe idanwo fifuye, data data wa jẹ iwọn 155 GB, ati pe nigba ti iwọn si isalẹ si apẹẹrẹ ipade 1, a ni aṣiṣe atẹle:

Google awọsanma Spanner: O dara, buburu, ilosiwaju

A ni anfani lati iwọn si isalẹ lati awọn iṣẹlẹ 25 si 2, ṣugbọn a di lori awọn apa meji.

Igbega ati idinku nọmba awọn apa inu iṣupọ Spanner awọsanma le jẹ adaṣe ni lilo API REST. Eyi le wulo paapaa fun idinku fifuye ti o pọ si lori eto lakoko awọn wakati nšišẹ.

Iṣe ibeere OLAP?

A pinnu ni akọkọ lati ya akoko pipọ si igbelewọn wa ti Spanner ni apakan yii. Lẹhin awọn nọmba ti o yan diẹ, a rii lẹsẹkẹsẹ pe idanwo naa yoo kuru ati pe Spanner kii yoo jẹ ẹrọ ti o yẹ fun OLAP. Laibikita nọmba awọn apa inu iṣupọ, yiyan nọmba awọn ori ila nirọrun ni tabili ila 10M gba iṣẹju 55 si 60. Paapaa, eyikeyi ibeere ti o nilo iranti diẹ sii lati fipamọ awọn abajade agbedemeji kuna pẹlu aṣiṣe OOM kan.

SELECT COUNT(DISTINCT(field0)) FROM usertable; — (10M distinct values)-> SpoolingHashAggregateIterator ran out of memory during new row.

Diẹ ninu awọn nọmba fun awọn ibeere TPC-H ni a le rii ni nkan Todd Lipcon nosql-kudu-spanner-slides.html, kikọja 42 ati 43. Awọn nọmba wọnyi ni ibamu pẹlu awọn esi ti ara wa (laanu).

Google awọsanma Spanner: O dara, buburu, ilosiwaju

4. Awari wa

Fi fun ipo lọwọlọwọ ti awọn ẹya Spanner Cloud, o ṣoro lati rii bi rirọpo ti o rọrun fun ojutu OLTP ti o wa tẹlẹ, paapaa nigbati awọn iwulo rẹ ba dagba. Iye pataki ti akoko yoo ni lati lo kikọ ojutu kan ni ayika awọn ailagbara ti Cloud Spanner.

Nigba ti a bẹrẹ iṣiro Cloud Spanner, a nireti awọn ẹya iṣakoso rẹ lati wa ni deede pẹlu, tabi o kere ju ko jina si, awọn solusan Google SQL miiran. Ṣugbọn a yà wa nipasẹ aini pipe ti awọn afẹyinti ati iṣakoso iwọle lopin pupọ si awọn orisun. Lai mẹnuba ko si awọn iwo, ko si agbegbe idagbasoke agbegbe, awọn ilana ti ko ni atilẹyin, JDBC laisi atilẹyin DML ati DDL, ati bẹbẹ lọ.

Nitorinaa, nibo ni lati lọ fun ẹnikan ti o nilo lati ṣe iwọn data data idunadura kan? Ko dabi pe o jẹ ojutu kan ṣoṣo lori ọja sibẹsibẹ ti o baamu gbogbo awọn ọran lilo. Ọpọlọpọ awọn solusan pipade ati ṣiṣi silẹ (diẹ ninu eyiti a mẹnuba ninu nkan yii), ọkọọkan pẹlu awọn agbara ati ailagbara tiwọn, ṣugbọn ko si ọkan ninu wọn ti o funni ni SaaS pẹlu 99,999% SLA ati iwọn giga ti aitasera. Ti SLA giga ba jẹ ibi-afẹde akọkọ rẹ ati pe o ko ni itara lati kọ ojutu tirẹ fun awọn awọsanma pupọ, Cloud Spanner le jẹ ojutu ti o n wa. Ṣugbọn o yẹ ki o mọ gbogbo awọn idiwọn rẹ.

Lati jẹ otitọ, Cloud Spanner nikan ni idasilẹ si gbogbo eniyan ni orisun omi ọdun 2017, nitorinaa o jẹ oye lati nireti diẹ ninu awọn abawọn lọwọlọwọ rẹ le bajẹ lọ (ireti), ati nigbati o ba ṣe, o le jẹ oluyipada ere. Lẹhinna, Cloud Spanner kii ṣe iṣẹ akanṣe ẹgbẹ nikan fun Google. Google nlo o bi ipilẹ fun awọn ọja Google miiran. Ati nigbati Google laipẹ rọpo Megastore ni Ibi ipamọ awọsanma Google pẹlu Spanner Cloud, o gba Google Cloud Ibi ipamọ laaye lati ni ibamu pupọ fun awọn atokọ ohun ni iwọn agbaye (eyiti kii ṣe ọran fun Amazon ká S3).

Nitorina, ireti tun wa... a nireti.

Gbogbo ẹ niyẹn. Gẹgẹbi onkọwe ti nkan naa, a tun tẹsiwaju lati nireti, ṣugbọn kini o ro nipa eyi? Kọ ninu awọn comments

A pe gbogbo eniyan lati ṣabẹwo si wa free webinar ninu eyiti a yoo sọ fun ọ ni alaye nipa ẹkọ naa "AWS fun Awọn Difelopa" lati OTUS.

orisun: www.habr.com

Fi ọrọìwòye kun