Google Huab Spanner: Zoo, Phem, Dab tuag

Nyob zoo, Khabrovites. Raws li kev lig kev cai, peb txuas ntxiv muab cov ntaub ntawv nthuav dav rau hnub ua ntej pib ntawm cov kev kawm tshiab. Niaj hnub no, tshwj xeeb tshaj yog rau koj, peb tau txhais ib tsab xov xwm hais txog Google Cloud Spanner, lub sij hawm rau coincide nrog lub community launch txog qhov kev kawm. "AWS for Developers".

Google Huab Spanner: Zoo, Phem, Dab tuag

Keeb kwm luam tawm nyob rau hauv Lightspeed HQ blog.

Raws li lub tuam txhab uas muaj ntau yam huab-raws li POS kev daws teeb meem rau cov khw muag khoom, cov chaw noj mov, thiab cov tub lag luam hauv online thoob ntiaj teb, Lightspeed siv ntau hom kev sib txawv ntawm cov chaw khaws ntaub ntawv rau ntau yam kev lag luam, tshuaj xyuas, thiab kev tshawb nrhiav siv cov ntaub ntawv. Txhua qhov ntawm cov databases platforms muaj nws tus kheej lub zog thiab qhov tsis muaj zog. Yog li ntawd, thaum Google qhia Cloud Spanner rau kev ua lag luam - cov yam ntxwv zoo tsis pom nyob hauv lub ntiaj teb ntawm kev sib raug zoo databases, xws li zoo li tsis muaj kev txwv kab rov tav scalability thiab 99,999% kev pom zoo qib kev pabcuam (SLA) , Peb tsis tuaj yeem hla lub sijhawm kom muaj nws hauv peb txhais tes!

Txhawm rau muab cov ntsiab lus dav dav ntawm peb qhov kev paub dhau los nrog Cloud Spanner, nrog rau cov qauv ntsuas peb siv, peb yuav hais txog cov ncauj lus hauv qab no:

  1. Peb cov txheej txheem ntsuas
  2. Huab Spanner nyob rau hauv ib tug nutshell
  3. Peb qhov kev ntsuam xyuas
  4. Peb qhov kev tshawb pom

Google Huab Spanner: Zoo, Phem, Dab tuag

1. Peb cov qauv ntsuas

Ua ntej dhia mus rau qhov tshwj xeeb ntawm Cloud Spanner, nws qhov zoo sib xws thiab qhov sib txawv nrog lwm cov kev daws teeb meem ntawm kev ua lag luam, cia peb tham txog qhov tseem ceeb ntawm kev siv peb lub siab thaum xav txog qhov twg yuav xa Cloud Spanner hauv peb cov infrastructure:

  • Raws li kev hloov pauv rau (tiav) ib txwm siv SQL database daws teeb meem
  • Raws li kev daws teeb meem OLAP-enabled OLTP

Nco ntsoov: Kom yooj yim ntawm kev sib piv, kab lus no piv Cloud Spanner nrog MySQL variants ntawm GCP Cloud SQL thiab Amazon AWS RDS daws cov tsev neeg.

Siv Cloud Spanner ua ib qho kev hloov pauv rau ib txwm siv SQL database daws teeb meem

Hauv ib puag ncig tsoos databases, thaum lub sij hawm teb rau ib tug database query mus kom ze los yog txawm tshaj li predefined daim ntawv thov pib (feem ntau yog vim ib tug nce nyob rau hauv tus naj npawb ntawm cov neeg siv thiab / los yog thov), muaj ob peb txoj kev los txo lub sij hawm teb rau qib uas tau txais. Txawm li cas los xij, feem ntau ntawm cov kev daws teeb meem no suav nrog kev cuam tshuam ntawm phau ntawv.

Piv txwv li, thawj kauj ruam uas yuav tsum tau ua yog saib ntawm ntau yam kev ua haujlwm ntsig txog cov chaw khaws ntaub ntawv thiab kho lawv kom zoo tshaj plaws kev sib tw siv cov qauv siv scenario. Yog tias qhov no tsis txaus, koj tuaj yeem xaiv ntsuas cov ntaub ntawv vertically lossis horizontally.

Scaling up a application entailing update the server instance, feem ntau yog los ntawm kev ntxiv cov processors / cores ntau dua, ntau RAM, ceev ceev, thiab lwm yam. Ntxiv cov khoom siv kho vajtse ntau ntxiv ua rau muaj kev ua tau zoo ntawm cov ntaub ntawv, ntsuas feem ntau hauv kev lag luam ib ob, thiab kev lag luam latency rau OLTP systems. Relational database systems (uas siv ntau txoj xov zoo) xws li MySQL nplai zoo vertically.

Muaj ob peb qhov tsis zoo rau txoj hauv kev no, tab sis qhov pom tseeb tshaj plaws yog qhov siab tshaj plaws server loj ntawm kev ua lag luam. Thaum qhov loj tshaj plaws Server Instance txwv tau mus txog, tsuas muaj ib txoj hauv kev sab laug: teev tawm.

Scale-out yog ib txoj hauv kev uas ntxiv cov servers ntau dua rau ib pawg los ua kom muaj kev ua tau zoo linearly raws li ntau cov servers ntxiv. Feem coob tsoos database systems tsis scale zoo los yog tsis scale txhua. Piv txwv li, MySQL tuaj yeem ntsuas tawm rau kev nyeem los ntawm kev ntxiv qhev nyeem, tab sis nws tsis tuaj yeem ntsuas tawm rau kev sau.

Ntawm qhov tod tes, vim nws qhov xwm txheej, Huab Spanner tuaj yeem yooj yim ntsuas kab rov tav nrog kev cuam tshuam tsawg.

Full featured DBMS ua ib qho kev pabcuam yuav tsum raug soj ntsuam los ntawm ntau qhov kev xav. Raws li lub hauv paus, peb coj DBMS nrov tshaj plaws hauv huab - rau Google, GCP Cloud SQL thiab rau Amazon, AWS RDS. Hauv peb qhov kev ntsuam xyuas, peb tsom mus rau cov pawg hauv qab no:

  • Feature mapping: SQL raws, DDL, DML; kev sib txuas cov tsev qiv ntawv / connectors, kev them nyiaj yug, thiab lwm yam.
  • Kev Txhawb Kev Txhim Kho: Yooj yim ntawm kev txhim kho thiab kev sim.
  • Kev Pabcuam Kev Pabcuam: Kev tswj hwm piv txwv xws li nce / nqis thiab hloov kho qhov xwm txheej; SLA, thaub qab thiab rov qab; kev ruaj ntseg / kev tswj xyuas.

Siv Cloud Spanner ua OLAP-Enabled OLTP Solution

Thaum Google tsis tau hais meej meej tias Huab Spanner yog rau kev tshuaj xyuas, nws qhia qee tus cwj pwm nrog lwm lub cav xws li Apache Impala & Kudu thiab YugaByte uas tau tsim los rau OLAP cov haujlwm ua haujlwm.

Txawm hais tias tsuas muaj lub caij nyoog me me uas Huab Spanner suav nrog HTAP (Hybrid Transactional/Analytic Processing) lub cav nrog (ntau dua lossis tsawg dua) siv tau OLAP teeb tsa, peb xav tias nws yuav zoo rau peb cov kev xav.

Nrog rau qhov ntawd hauv siab, peb tau saib ntawm cov pawg hauv qab no:

  • Cov ntaub ntawv loading, indexes thiab muab faib kev txhawb nqa
  • Cov lus nug ua haujlwm thiab DML

2. Huab Spanner hauv ib Ntshell

Google Spanner yog pawg tswj hwm kev sib raug zoo (RDBMS) uas Google siv rau ntau yam ntawm nws cov kev pabcuam. Google tau tshaj tawm rau cov neeg siv Google Cloud Platform thaum ntxov 2017.

Nov yog qee qhov ntawm Cloud Spanner tus cwj pwm:

  • Kev Ua Tau Zoo, Scalable RDBMS Cluster: Siv lub sijhawm kho vajtse synchronization los xyuas kom meej cov ntaub ntawv sib xws.
  • Kev them nyiaj yug hla rooj: Kev lag luam tuaj yeem hla ntau lub rooj - tsis tas yuav txwv rau ib lub rooj (tsis zoo li Apache HBase lossis Apache Kudu).
  • Thawj Cov Ntsiab Lus Tseem Ceeb: Txhua lub rooj yuav tsum muaj lub ntsiab lus tseem ceeb (PC), uas tuaj yeem muaj ntau kab lus. Tabular cov ntaub ntawv khaws cia hauv PC kev txiav txim, uas ua rau nws ua haujlwm tau zoo thiab nrawm rau kev tshawb nrhiav PC. Raws li nrog rau lwm cov txheej txheem PC-raws li, qhov kev siv yuav tsum tau ua qauv tiv thaiv kev siv ua ntej kom ua tiav kev ua tau zoo tshaj plaws.
  • Cov ntxhuav kab txaij: Cov ntxhuav tuaj yeem muaj lub cev nyob ntawm ib leeg. Cov kab ntawm tus me nyuam lub rooj tuaj yeem ua ke nrog cov kab ntawm niam txiv lub rooj. Txoj hauv kev no ua kom nrawm rau kev tshawb nrhiav kev sib raug zoo uas tuaj yeem txiav txim siab ntawm cov ntaub ntawv qauv, piv txwv li, thaum muab cov neeg siv khoom thiab lawv cov ntawv xa tuaj ua ke.
  • Indexs: Huab Spanner txhawb nqa qhov ntsuas thib ob. Ib qho Performance index muaj cov kab indexed thiab tag nrho cov kab PC. Optionally, qhov Performance index kuj tseem muaj lwm cov kab uas tsis yog indexed. Qhov ntsuas tau tuaj yeem cuam tshuam nrog cov lus niam txiv kom nrawm cov lus nug. Ntau qhov kev txwv siv rau qhov ntsuas ntsuas, xws li qhov siab tshaj plaws ntawm cov kab ntxiv uas tuaj yeem khaws cia hauv qhov ntsuas. Tsis tas li, cov lus nug los ntawm kev ntsuas yuav tsis ncaj nraim li hauv lwm RDBMS.

"Cloud Spanner xaiv qhov ntsuas tau tsuas yog nyob rau qee qhov tsis tshua muaj. Tshwj xeeb, Huab Spanner tsis cia li xaiv qhov ntsuas thib ob yog tias cov lus nug thov txhua kab uas tsis khaws cia hauv qhov ntsuas ".

  • Daim Ntawv Pom Zoo Qib Kev Pabcuam (SLA): Ib cheeb tsam xa tawm nrog 99,99% SLA; Kev xa tawm ntau thaj tsam nrog 99,999% SLA. Thaum SLA nws tus kheej tsuas yog kev pom zoo thiab tsis yog kev lees paub ntawm txhua yam, Kuv ntseeg tias Google cov neeg muaj qee cov ntaub ntawv nyuaj los ua qhov kev thov muaj zog. (Rau kev siv, 99,999% txhais tau tias 26,3 vib nas this ntawm kev pabcuam poob haujlwm ib hlis.)
  • Ntau ntxiv: https://cloud.google.com/spanner/

Nco ntsoov: Apache Tephra qhov project ntxiv kev txhawb nqa kev lag luam siab heev rau Apache HBase (tseem tam sim no siv hauv Apache Phoenix ua beta).

3. Peb qhov kev ntsuam xyuas

Yog li, peb txhua tus tau nyeem Google cov lus hais txog cov txiaj ntsig ntawm Cloud Spanner - zoo li tsis muaj kev txwv kab rov tav scaling thaum tuav qhov sib xws thiab SLA siab heev. Txawm hais tias cov lus thov no yog, txawm li cas los xij, nyuaj heev kom ua tiav, peb lub hom phiaj tsis yog los thim lawv. Hloov chaw, cia peb tsom mus rau lwm yam uas feem ntau cov neeg siv database saib xyuas txog: kev sib luag thiab kev siv tau.

Peb ntsuas huab Spanner ua qhov hloov pauv rau Sharded MySQL

Google Cloud SQL thiab Amazon AWS RDS, ob qhov nrov tshaj plaws OLTP databases hauv huab lag luam, muaj cov teeb tsa loj heev. Txawm li cas los xij, txhawm rau ntsuas cov ntaub ntawv no dhau qhov loj ntawm ib qho ntawm ib qho, koj yuav tsum tau ua daim ntawv thov sib cais. Txoj hauv kev no tsim kev nyuaj ntxiv rau ob qho tib si kev siv thiab kev tswj hwm. Peb tau saib yuav ua li cas Spanner haum rau hauv qhov xwm txheej ntawm kev sib txuas ntau cov shards rau hauv ib qho piv txwv thiab dab tsi nta (yog tias muaj) yuav tsum tau txi.

Kev them nyiaj yug rau SQL, DML thiab DDL, nrog rau cov txuas thiab cov tsev qiv ntawv?

Ua ntej, thaum pib nrog ib qho database, koj yuav tsum tsim cov ntaub ntawv qauv. Yog tias koj xav tias koj tuaj yeem txuas JDBC Spanner rau koj lub cuab yeej SQL uas koj nyiam, koj yuav pom tias koj tuaj yeem nug koj cov ntaub ntawv nrog nws, tab sis koj tsis tuaj yeem siv nws los tsim ib lub rooj lossis hloov tshiab (DDL) lossis ib qho ntxig / hloov tshiab / rho tawm. kev ua haujlwm (DML). Google tus nom JDBC tsis txhawb nqa ib qho.

"Cov neeg tsav tsheb tam sim no tsis txhawb nqa DML lossis DDL nqe lus."
Cov ntaub ntawv Spanner

Qhov xwm txheej tsis zoo dua nrog GCP console - koj tuaj yeem xa cov lus nug SELECT xwb. Luckily muaj tus tsav tsheb JDBC nrog DML thiab DDL kev txhawb nqa los ntawm zej zog suav nrog kev lag luam github.com/olavloite/spanner-jdbc. Thaum tus tsav tsheb no muaj txiaj ntsig zoo, qhov tsis muaj Google tus kheej JDBC tsav tsheb yog qhov xav tsis thoob. Hmoov zoo, Google muab kev txhawb nqa rau cov neeg siv khoom siv dav dav (raws li gRPC): C#, Go, Java, node.js, PHP, Python, thiab Ruby.

Qhov ze-yuav tsum tau siv ntawm Cloud Spanner cov kev cai APIs (vim tsis muaj DDL thiab DML hauv JDBC) ua rau qee qhov kev txwv rau cov cheeb tsam ntawm cov cai xws li kev sib txuas sib txuas lossis cov ntaub ntawv sib txuas (xws li Spring MVC). Feem ntau, thaum siv JDBC, koj muaj kev ywj pheej xaiv koj nyiam kev sib txuas pas dej ua ke (xws li HikariCP, DBCP, C3PO, thiab lwm yam) uas tau sim thiab ua haujlwm zoo. Nyob rau hauv cov ntaub ntawv ntawm kev cai Spanner APIs, peb yuav tsum cia siab rau lub moj khaum/binding/session pas dej ua ke uas peb tau tsim peb tus kheej.

Lub ntsiab tseem ceeb (PC) taw qhia tsim tso cai rau Huab Spanner ceev heev thaum nkag mus rau cov ntaub ntawv ntawm PC, tab sis kuj qhia txog qee cov lus nug.

  • Koj tsis tuaj yeem hloov kho tus nqi ntawm tus yuam sij tseem ceeb; Koj yuav tsum xub rho tawm qhov qub PC nkag thiab rov ntxig nws nrog tus nqi tshiab. (Qhov no zoo ib yam li lwm lub PC taw qhia cov ntaub ntawv / khaws cia xyaw.)
  • Ib qho kev hloov tshiab thiab DELETE cov lus yuav tsum qhia lub PC nyob rau hauv qhov twg, yog li ntawd, tsis tuaj yeem khoob DELETE tag nrho cov nqe lus - yuav tsum muaj ib qho lus nug, piv txwv li: HLOOV xxx qhov twg id IN (SELECT id FROM table1)
  • Tsis muaj qhov kev xaiv pib nce ntxiv lossis qee yam zoo sib xws uas teeb tsa cov kab ke rau lub PC. Txhawm rau ua qhov no, tus nqi sib thooj yuav tsum tau tsim rau ntawm daim ntawv thov sab.

Secondary Indices?

Google Cloud Spanner muaj kev txhawb nqa rau cov kev ntsuas thib ob. Qhov no yog ib qho zoo heev feature uas tsis yog ib txwm muaj nyob rau hauv lwm yam technologies. Apache Kudu tam sim no tsis txhawb nqa qhov ntsuas thib ob ntawm txhua qhov, thiab Apache HBase tsis txhawb nqa qhov ntsuas ncaj qha, tab sis tuaj yeem ntxiv lawv ntawm Apache Phoenix.

Indexs hauv Kudu thiab HBase tuaj yeem ua qauv raws li cov lus sib txawv nrog cov ntsiab lus sib txawv ntawm cov yuam sij tseem ceeb, tab sis cov atomicity ntawm kev ua haujlwm tau ua nyob rau ntawm niam txiv lub rooj thiab cov rooj txheeb xyuas yuav tsum tau ua nyob rau hauv daim ntawv thov thiab tsis tseem ceeb rau kev siv kom raug.

Raws li tau hais hauv Cloud Spanner tshuaj xyuas, nws cov indexes yuav txawv ntawm MySQL indexes. Yog li, kev saib xyuas tshwj xeeb yuav tsum tau coj mus rau hauv cov lus nug hauv tsev thiab profileing kom ntseeg tau tias qhov ntsuas qhov tseeb yog siv qhov twg nws xav tau.

Sawv cev?

Ib yam khoom nrov heev thiab muaj txiaj ntsig zoo hauv cov ntaub ntawv yog kev pom. Lawv tuaj yeem pab tau rau ntau qhov kev siv; kuv ob qhov kev nyiam tshaj plaws yog txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej txheej. Hmoov tsis zoo Cloud Spanner tsis txhawb kev pom. Txawm li cas los xij, qhov no tsuas yog qee qhov txwv peb, vim tias tsis muaj kab ntawv-qib granularity rau kev tso cai nkag mus qhov twg cov kev xav tuaj yeem yog qhov kev daws teeb meem.

Saib Cloud Spanner cov ntaub ntawv rau ib ntu uas qhia txog quotas thiab txwv (spanner/quotas), muaj ib qho tshwj xeeb uas tuaj yeem ua teeb meem rau qee qhov kev siv: Huab Spanner tawm ntawm lub thawv muaj qhov siab tshaj plaws ntawm 100 databases ib qho piv txwv. Pom tseeb, qhov no tuaj yeem yog qhov teeb meem loj rau cov ntaub ntawv uas tau tsim los ntsuas ntau dua 100 databases. Hmoov zoo, tom qab hais lus nrog peb tus neeg sawv cev ntawm Google, peb pom tias qhov kev txwv no tuaj yeem nce mus rau yuav luag txhua tus nqi los ntawm Google Support.

Kev txhawb nqa kev loj hlob?

Cloud Spanner muaj kev txhawb nqa lus programming zoo nkauj rau kev ua haujlwm nrog nws API. Cov tsev qiv ntawv raug txhawb nqa yog nyob rau thaj tsam ntawm C#, Go, Java, node.js, PHP, Python, thiab Ruby. Cov ntaub ntawv yog cov ncauj lus kom ntxaws, tab sis nrog rau lwm cov thev naus laus zis tshiab, cov zej zog muaj tsawg heev piv rau cov ntaub ntawv nrov tshaj plaws, uas tuaj yeem ua rau ntau lub sij hawm siv tsawg dua los yog teeb meem.

Yog li cas txog kev txhawb nqa hauv zos?

Peb tsis tau pom txoj hauv kev los tsim Cloud Spanner piv txwv ntawm thaj chaw. Qhov ze tshaj peb tau txais yog Docker duab CwjmuajDBuas zoo sib xws hauv txoj cai, tab sis txawv heev hauv kev xyaum. Piv txwv li CockroachDB tuaj yeem siv PostgreSQL JDBC. Txij li thaum qhov kev loj hlob ib puag ncig yuav tsum nyob ze li sai tau rau qhov chaw tsim khoom, Cloud Spanner tsis yog qhov zoo tagnrho vim tias koj yuav tsum tau cia siab rau tag nrho Spanner piv txwv. Txhawm rau txuag cov nqi, koj tuaj yeem xaiv ib cheeb tsam piv txwv.

Kev txhawb nqa kev tswj hwm?

Tsim Cloud Spanner piv txwv yog qhov yooj yim heev. Koj tsuas yog yuav tsum xaiv ntawm kev tsim ib cheeb tsam ntau lossis ib cheeb tsam ib zaug, qhia thaj tsam (s) thiab tus naj npawb ntawm cov nodes. Hauv tsawg dua ib feeb, qhov piv txwv yuav nce thiab khiav.

Ntau qhov kev ntsuas theem pib muaj ncaj qha rau ntawm nplooj ntawv Spanner hauv Google Console. Cov ncauj lus kom ntxaws ntxiv muaj nyob ntawm Stackdriver, qhov uas koj tuaj yeem teeb tsa qhov ntsuas ntsuas thiab ceeb toom cov cai.

Nkag mus rau cov peev txheej?

MySQL muaj kev tso cai rau cov neeg siv ntau heev thiab muaj txiaj ntsig zoo / lub luag haujlwm. Koj tuaj yeem hloov kho tau yooj yim nkag mus rau ib lub rooj tshwj xeeb, lossis txawm tias tsuas yog ib pawg ntawm nws cov kab. Cloud Spanner siv Google Identity & Access Management (IAM) cov cuab yeej, uas tsuas yog tso cai rau koj los teeb tsa cov cai thiab kev tso cai ntawm qib siab heev. Qhov kev xaiv granular tshaj plaws yog kev tso cai qib database, uas tsis haum rau feem ntau cov khoom. Qhov kev txwv no yuam koj ntxiv kev ntsuas kev nyab xeeb ntxiv rau koj cov cai, kev tsim kho vaj tse, lossis ob qho tib si los tiv thaiv kev siv tsis raug cai ntawm Spanner cov peev txheej.

Cov thaub qab?

Txhawm rau muab nws yooj yim, tsis muaj qhov thaub qab hauv Cloud Spanner. Thaum Google cov kev xav tau siab SLA tuaj yeem ua kom koj tsis txhob poob cov ntaub ntawv vim kev kho vajtse lossis cov ntaub ntawv tsis ua haujlwm, tib neeg yuam kev, kev ua haujlwm tsis zoo, thiab lwm yam. Peb txhua tus paub txoj cai: muaj ntau yam tsis muaj kev hloov pauv rau lub tswv yim thaub qab ntse. Tam sim no, tib txoj hauv kev los thaub qab cov ntaub ntawv yog programmatically kwj nws los ntawm cov ntaub ntawv mus rau qhov chaw khaws cia cais.

Nrhiav kev ua haujlwm?

Peb siv Yahoo! los thauj cov ntaub ntawv thiab xeem thov. Cloud Serving Benchmark. Cov lus hauv qab no qhia txog B YCSB ua haujlwm nrog 95% nyeem rau 5% sau piv.

Google Huab Spanner: Zoo, Phem, Dab tuag

* Kev ntsuas kev thauj khoom tau khiav ntawm n1-standard-32 Compute Engine (CE) (32 vCPUs, 120 GB nco) thiab qhov piv txwv tsis yog lub hauv paus hauv kev sim.
** Qhov siab tshaj plaws ntawm cov xov hauv ib qho YCSB piv txwv yog 400. Nyob rau hauv tag nrho, rau qhov piv txwv ntawm YCSB cov kev xeem yuav tsum tau khiav kom tau tag nrho ntawm 2400 xov.

Saib ntawm qhov ntsuas ntsuas, tshwj xeeb yog kev sib xyaw ntawm CPU load thiab TPS, peb tuaj yeem pom meej tias Huab Spanner ntsuas tau zoo heev. Qhov loj load tsim los ntawm cov xov tooj loj yog offset los ntawm ntau cov nodes hauv huab Spanner pawg. Txawm hais tias lub latency zoo nkaus li siab heev, tshwj xeeb tshaj yog thaum khiav ntawm 2400 xov, nws yuav tsum tau rov kuaj dua nrog 6 qhov me me ntawm lub tshuab suav kom tau txais cov lej raug ntau dua. Txhua qhov piv txwv yuav khiav ib qho kev xeem YCSB tsis yog ib qho piv txwv CE loj nrog 6 qhov kev xeem sib npaug. Qhov no ua rau nws yooj yim dua kom paub qhov txawv ntawm Cloud Spanner thov ncua kev ncua thiab ncua ntxiv los ntawm kev sib txuas network ntawm Cloud Spanner thiab CE piv txwv ua qhov kev sim.

Cloud Spanner ua li cas ua OLAP?

Kev faib tawm?

Kev faib cov ntaub ntawv rau hauv lub cev thiab / lossis cov kev ywj pheej raws li kev xav, hu ua partitions, yog ib lub tswv yim nrov heev nyob rau hauv feem ntau OLAP cav. Partitions tuaj yeem txhim kho cov lus nug kev ua tau zoo thiab kev ruaj ntseg database. Ntxiv delving rau hauv partitioning yuav yog ib tsab xov xwm cais (s), yog li cia li hais txog qhov tseem ceeb ntawm muaj ib tug partitioning scheme thiab sub-partitioning. Lub peev xwm los faib cov ntaub ntawv mus rau hauv partitions thiab txawm ntxiv mus rau hauv sub-partitions yog qhov tseem ceeb rau kev ua tau zoo ntawm kev txheeb xyuas cov lus nug.

Cloud Spanner tsis txhawb nqa partitions per se. Nws cais cov ntaub ntawv internally rau hauv thiaj li hu cais-s raws li cov ntsiab lus tseem ceeb. Kev faib tawm yog ua tiav kom sib npaug ntawm cov khoom thauj ntawm Cloud Spanner pawg. Ib qho khoom siv zoo heev ntawm Cloud Spanner yog cais lub hauv paus load ntawm niam txiv lub rooj (lub rooj uas tsis cuam tshuam nrog lwm tus). Spanner txiav txim siab yog tias nws muaj cais cov ntaub ntawv uas tau nyeem ntau dua li cov ntaub ntawv hauv lwm yam cais-ah, thiab tej zaum yuav txiav txim siab txog kev sib cais ntxiv. Yog li, ntau cov nodes tuaj yeem koom nrog hauv kev thov, uas tseem ua kom muaj txiaj ntsig zoo.

Loading cov ntaub ntawv?

Cloud Spanner txoj kev rau cov ntaub ntawv ntau yog tib yam li rau ib txwm upload. Txhawm rau ua haujlwm siab tshaj plaws, koj yuav tsum ua raws qee cov lus qhia, suav nrog:

  • Txheeb koj cov ntaub ntawv los ntawm tus yuam sij tseem ceeb.
  • Faib lawv los ntawm 10 *tus naj npawb ntawm cov nodes ib feem.
  • Tsim cov txheej txheem ntawm cov neeg ua haujlwm ua haujlwm uas thauj cov ntaub ntawv sib luag.

Cov ntaub ntawv no thauj khoom siv tag nrho Cloud Spanner nodes.

Peb siv A YCSB workload los tsim 10M kab dataset.

Google Huab Spanner: Zoo, Phem, Dab tuag

* Kev ntsuas kev thauj khoom tau khiav ntawm n1-txheej txheem-32 lub tshuab xam zauv (32 vCPUs, 120 GB nco) thiab qhov piv txwv ntawm qhov kev sim no yeej tsis muaj qhov cuam tshuam hauv kev sim.
** A 1 node teeb tsis pom zoo rau ib qho kev ua haujlwm ntau lawm.

Raws li tau hais los saum toj no, Huab Spanner cia li ua cov txheej txheem sib cais nyob ntawm lawv cov khoom thauj, yog li cov txiaj ntsig tau txhim kho tom qab ob peb sib law liag ntawm qhov kev xeem. Cov txiaj ntsig tau nthuav tawm ntawm no yog cov txiaj ntsig zoo tshaj plaws uas peb tau txais. Saib ntawm cov lej saum toj no, peb tuaj yeem pom tias huab Spanner ntsuas li cas (zoo) raws li tus naj npawb ntawm cov nodes hauv pawg nce. Cov naj npawb uas sawv tawm yog qhov nruab nrab qis qis heev, uas sib piv nrog cov txiaj ntsig los ntawm kev sib xyaw ua haujlwm (95% nyeem thiab 5% sau) raws li tau piav qhia hauv nqe lus saum toj no.

Scaling?

Kev nce thiab txo tus lej ntawm Cloud Spanner nodes yog ib txoj haujlwm nyem. Yog tias koj xav thauj cov ntaub ntawv sai sai, koj tuaj yeem xav txog kev txhawb nqa qhov piv txwv mus rau qhov siab tshaj plaws (hauv peb cov ntaub ntawv nws yog 25 nodes hauv thaj tsam US-EAST) thiab tom qab ntawd txo tus naj npawb ntawm cov nodes tsim nyog rau koj li qub load tom qab tag nrho cov ntaub ntawv. nyob rau hauv lub database, nco ntsoov 2 TB / node txwv.

Peb tau ceeb toom txog qhov txwv no txawm tias muaj cov ntaub ntawv me dua. Tom qab ob peb lub sijhawm ua haujlwm, peb cov ntaub ntawv muaj txog li 155 GB hauv qhov loj me, thiab thaum ntsuas qis rau 1 ntawm qhov piv txwv, peb tau txais qhov yuam kev hauv qab no:

Google Huab Spanner: Zoo, Phem, Dab tuag

Peb tuaj yeem ntsuas los ntawm 25 mus rau 2 zaus, tab sis peb tau daig ntawm ob lub pob.

Kev nce thiab txo tus naj npawb ntawm cov nodes hauv Cloud Spanner pawg tuaj yeem ua haujlwm siv REST API. Qhov no tuaj yeem muaj txiaj ntsig tshwj xeeb rau kev txo qis kev thauj khoom ntawm lub cev thaum lub sijhawm tsis khoom.

OLAP nug kev ua haujlwm?

Peb thawj zaug tau npaj los siv sijhawm ntau rau peb qhov kev ntsuam xyuas ntawm Spanner ntawm qhov no. Tom qab ob peb SELECT COUNTs, peb tam sim ntawd pom tau tias qhov kev xeem yuav luv luv thiab tias Spanner yuav TSIS yog lub cav tsim nyog rau OLAP. Txawm hais tias tus naj npawb ntawm cov nodes hauv pawg, tsuas yog xaiv tus lej ntawm kab hauv 10M kab lus coj 55 mus rau 60 vib nas this. Tsis tas li, cov lus nug uas xav tau ntau lub cim xeeb los khaws cov txiaj ntsig nruab nrab ua tsis tiav nrog OOM yuam kev.

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

Qee tus lej rau TPC-H cov lus nug tuaj yeem pom hauv Todd Lipcon tsab xov xwm nosql-kudu-spanner-slides.html, slides 42 thiab 43. Cov lej no zoo ib yam nrog peb tus kheej cov txiaj ntsig (hmoov).

Google Huab Spanner: Zoo, Phem, Dab tuag

4. Peb qhov kev tshawb pom

Muab lub xeev tam sim no ntawm Cloud Spanner cov yam ntxwv, nws nyuaj rau pom tias nws yog qhov hloov pauv yooj yim rau cov kev daws teeb meem OLTP uas twb muaj lawm, tshwj xeeb tshaj yog thaum koj xav tau ntau dua. Lub sijhawm tseem ceeb yuav tsum tau siv los tsim kev daws teeb meem ntawm qhov tsis txaus ntawm Cloud Spanner.

Thaum peb pib soj ntsuam Cloud Spanner, peb xav tias nws cov kev tswj hwm yuav tsum sib npaug nrog, lossis tsawg kawg tsis nyob deb, lwm cov kev daws teeb meem Google SQL. Tab sis peb xav tsis thoob los ntawm qhov tsis muaj kev thaub qab tag nrho thiab kev tswj xyuas kev siv tau tsawg heev. Tsis hais tsis muaj kev xav, tsis muaj ib puag ncig kev txhim kho hauv zos, tsis muaj kev txhawb nqa, JDBC tsis muaj DML thiab DDL kev txhawb nqa, thiab lwm yam.

Yog li, qhov twg mus rau ib tus neeg uas yuav tsum tau ntsuas qhov kev lag luam database? Tsis zoo li yuav muaj ib qho kev daws teeb meem ntawm kev ua lag luam tsis tau haum rau txhua qhov kev siv. Muaj ntau qhov kev daws teeb meem kaw thiab qhib (qee qhov tau hais hauv tsab xov xwm no), txhua tus muaj lawv tus kheej lub zog thiab qhov tsis muaj zog, tab sis tsis muaj leej twg muab SaaS nrog 99,999% SLA thiab qib siab sib xws. Yog tias qhov siab SLA yog koj lub hom phiaj tseem ceeb thiab koj tsis xav tsim koj tus kheej kev daws teeb meem rau ntau huab, Huab Spanner yuav yog qhov kev daws teeb meem uas koj tab tom nrhiav. Tab sis koj yuav tsum paub txog tag nrho nws cov kev txwv.

Yuav kom ncaj ncees, Cloud Spanner tsuas yog tso tawm rau pej xeem thaum lub caij nplooj ntoo hlav xyoo 2017, yog li nws tsim nyog xav tias qee qhov ntawm nws qhov tsis zoo tam sim no yuav ploj mus (cia siab), thiab thaum nws ua, nws tuaj yeem yog qhov hloov pauv kev ua si. Tom qab tag nrho, Cloud Spanner tsis yog ib qho haujlwm sab rau Google xwb. Google siv nws ua lub hauv paus rau lwm yam khoom Google. Thiab thaum Google nyuam qhuav hloov Megastore hauv Google Cloud Storage nrog Cloud Spanner, nws tau tso cai rau Google Cloud Storage kom ua tau zoo heev rau cov npe khoom ntawm thoob ntiaj teb teev (uas tseem tsis yog qhov teeb meem rau Amazon tus S3).

Yog li, tseem muaj kev cia siab...peb cia siab.

Yog tag nrho. Ib yam li tus sau ntawm tsab xov xwm no, peb kuj tseem cia siab, tab sis koj xav li cas txog qhov no? Sau rau hauv cov lus

Peb caw sawv daws tuaj saib peb dawb webinar nyob rau hauv uas peb yuav qhia rau koj paub meej txog cov chav kawm "AWS for Developers" los ntawm OTUS.

Tau qhov twg los: www.hab.com

Ntxiv ib saib