Klahviruum sees CassandraNäide loomisest, muutmisest ja eemaldamisest

⚡ Nutikas kokkuvõte

Klahviruum sees Cassandra on relatsioonisüsteemis andmebaasiga samaväärne kõige välimine andmekonteiner ja see määrab, kuidas iga selles olev tabel replikeerub. See leht käsitleb loomist, muutmist ja kustutamist.ping võtmeruum, pluss selle omadused ja süsteemi võtmeruumid.

  • 🗄️ Põhidefinitsioon: Võtmeruum sisaldab tabeleid, indekseid ja kasutaja määratletud tüüpe ning salvestab replikatsioonisätted, mille nad kõik pärivad.
  • 🧭 Strateegia valik: SimpleStrategy sobib ühele andmekeskusele; NetworkTopologyStrategy määrab replikatsiooniteguri iga andmekeskuse jaoks.
  • 🔢 Replikatsioonitegur: Kolm koopiat on standardne tootmissäte, kuna see jääb ellu ühe sõlme rikke korral QUORUM-is.
  • ✏️ Muuda limiite: Strateegia, replikatsioonitegur ja püsivad kirjutusmeetodid võivad muutuda; võtmeruumi nimi mitte.
  • 💾 Vastupidavad kirjutised: Selle väärtuse „väär” määramine jätab muudatuslogi vahele, vahetades krahhiohutuse kirjutamiskiiruse kasuks.
  • 🗑️ Kukkumiskäitumine: Dropping eemaldab iga tabeli ja indeksi pärast Cassandra teeb automaatse hetktõmmise.

Cassandra Klahviruum Loo Muuda Drop

Milles on Keyspace Cassandra?

Võtmeruum sisse Cassandra on andmekonteiner, mis sarnaneb RDBMS-i (Relatsioonandmebaasi haldussüsteemide) andmebaasiga. Cassandra Võtmeruum määrab, kuidas andmed sõlmedes paljunevad.

Kuna replikatsioon määratakse võtmeruumi, mitte üksikute tabelite põhjal, pärib iga selle sees loodud tabel sama strateegia ja replikatsiooniteguri. See teeb võtmeruumist iga skeemi esimese otsuse.

Kuidas luua võtmeruumi Cassandra

Võtmeruum on objekt, mis sisaldab veergude perekondi, kasutaja määratud tüüpe. sisse Cassandra, klahviruum on sarnane RDBMS Andmebaas. Võtmeruum sisaldab veergude perekondi, indekseid, kasutaja määratletud tüüpe, andmekeskuse teadlikkust, võtmeruumis kasutatavat strateegiat, replikatsioonitegurit jne.

käsk"Looge klahviruum” kasutatakse klahviruumi loomiseks Cassandra.

Süntaks

CREATE KEYSPACE KeyspaceName WITH replication = {
    'class': 'StrategyName',
    'replication_factor': 3
};

Erinevad komponendid Cassandra Võtmeklahv

  • Strateegia: strateegia nime deklareerimisel Cassandra. Selles on deklareeritud kahte tüüpi strateegiaid Cassandra Süntaks.
  1. Lihtne strateegia: Kui teil on ainult üks andmekeskus, kasutatakse lihtsat strateegiat. Selles strateegias asetatakse esimene koopia partitsioonija valitud sõlme. Ülejäänud sõlmed paigutatakse rõngasse päripäeva, arvestamata riiuli või sõlme asukohta.
  2. Võrgu topoloogia strateegia: Võrgu topoloogiastrateegiat kasutatakse siis, kui teil on rohkem kui üks andmekeskus. Selles strateegias peate iga andmekeskuse jaoks eraldi esitama replikatsiooniteguri. Võrgu topoloogiastrateegia paigutab koopiad sõlmedesse päripäeva samas andmekeskuses. See strateegia püüab paigutada koopiaid erinevatesse riiulitesse.
  • Replikatsioonitegur: replikatsioonitegur on erinevatesse sõlmedesse paigutatud andmete koopiate arv. Et ebaõnnestuda, on 3 hea replikatsioonitegur. Rohkem kui kaks replikatsioonitegurit ei taga ühtegi tõrkepunkti. Mõnikord võib server olla maas või tekkida võrguprobleem, siis pakuvad muud koopiad teenust ilma tõrgeteta.
  • Näide: Siin on hetktõmmis käivitatud käsust "Loo võtmeruum", mis loob võtmeruumi Cassandra.

Looge sisse võtmeruum Cassandra

CREATE KEYSPACE University WITH replication = {
    'class': 'SimpleStrategy',
    'replication_factor': 3
};

Pärast käsu "Create Keyspace" edukat täitmist luuakse Keyspace University Cassandra strateegiaga „SimpleStrategy” ja replikatsiooniteguriga 3. Pange tähele, et strateegia nimi peab olema jutumärkides; jutumärkideta väärtus lükatakse tagasi süntaksiveana.

Muuda klahviruumi Cassandra

Käsk "Alter Keyspace" muudab loodud võtmeruumis replikatsioonitegurit, strateegia nime ja püsivate kirjutamisomadusi. Cassandra.

Süntaks

ALTER KEYSPACE KeyspaceName WITH replication = {
    'class': 'StrategyName',
    'replication_factor': 3
}
AND DURABLE_WRITES = true;

Peamised aspektid võtmeruumi muutmisel Cassandra

  • Võtmeruumi nimi: klahviruumi nime ei saa muuta Cassandra.
  • Strateegia nimi: strateegia nime saab muuta, määrates uue strateegia nime.
  • Replikatsioonifaktor: replikatsioonitegurit saab muuta, määrates uue replikatsiooniteguri.
  • DURABLE_WRITES: DURABLE_WRITES väärtust saab muuta, määrates selle väärtuseks „true“ või „false“. Vaikimisi on see „true“. Kui see on seatud väärtusele „false“, siis ei kirjutata muudatuste logisse värskendusi ja vastupidi.
  • Täitmine: siin on hetktõmmis käivitatud käsust "Alter Keyspace", mis muudab võtmeruumi strateegiat "SimpleStrategy" asemel "NetworkTopologyStrategy" ja replikatsioonitegurit 3-lt 1-le DataCenter1 jaoks.

Muuda klahviruumi Cassandra

ALTER KEYSPACE University WITH replication = {
    'class': 'NetworkTopologyStrategy',
    'DataCenter1': 1
};

Pärast käsu „Alter Keyspace” edukat täitmist muudetakse strateegia nimi „SimpleStrategy” nimeks „NetworkTopologyStrategy” ja replikatsioonitegur „DataCenter1” puhul muudetakse 3-lt 1-le.

NB! Replikatsiooniteguri tõstmine iseenesest olemasolevaid andmeid ei kopeeri. Käivita nodetooli remont mõjutatud võtmeruumis pärast seda, vastasel juhul jäävad uued koopiad tühjaks, kuni iga rida puudutab lugemisparandus.

Cassandra Drop Keyspace

käsk 'Drop Keyspace' eemaldab võtmeruumi, sealhulgas kõik andmed, veerupered, kasutaja määratud tüübid ja indeksid CassandraEnne kukkumistping klahviruum Cassandra teeb klahviruumist hetktõmmise. Kui klahviruumi ei eksisteeri Cassandra, Cassandra tagastab veateate, välja arvatud juhul, kui kasutatakse valikut IF EXISTS.

Süntaks

DROP KEYSPACE IF EXISTS KeyspaceName;

Näide

Siin on hetktõmmis käivitatud käsust "Drop Keyspace", mis eemaldab ülikooli võtmeruumi.

Cassandra Drop Keyspace

DROP KEYSPACE University;

Pärast käsu „Drop keyspace University” edukat täitmist eemaldatakse võtmeruumi Ülikool Cassandra koos kõigi andmete ja skeemiga.

Siin on hetktõmmis, kus tõrge tagastatakse, kui proovitakse pääseda juurde võtmeruumile, mida pole olemas.

Cassandra Drop Keyspace

märkused: klahviruumi langetamisel ja klahviruumi kustutamisel pole vahet. Drop keyspace võrdub klahviruumi kustutamisega.

Võtmeruumi omadused ja süsteemi võtmeruumid

Loomisest ja mahapanemisest kaugemaleping, kolm käsku katavad peaaegu kogu igapäevase klahviruumi töö cqlsh-is.

DESCRIBE KEYSPACES;
DESCRIBE KEYSPACE University;
USE University;

Esimene loetleb klastri kõik võtmeruumid, teine ​​prindib ühe võtmeruumi täieliku skeemi koos selle tabelitega ja kolmas määrab praeguse võtmeruumi, nii et tabelinimed ei vaja enam eesliidet.

Kasutaja võtmeruumide kõrval Cassandra pakub mitut oma. Need ilmuvad DESCRIBE KEYSPACES väljundis ja neid tasub pigem ära tunda kui kustutada.

  • süsteem: Kohaliku sõlme olek, sealhulgas selle tokenite vahemikud ja partnerid, millest see teab.
  • süsteemi_skeem: Klastri iga võtmeruumi, tabeli, veeru ja indeksi definitsioonid.
  • süsteemi_autentimine: Rollid, õigused ja volitused autentimise lubamise korral.
  • süsteem_jaotatud: Remondiajalugu ja muu klastriülene raamatupidamineping.
  • süsteem_tracon: Query tracjäädvustati siis, kui tracon sisse lülitatud.

Kaks neist väärivad tootmises tähelepanu. süsteemi_autentimine Võtmeruum luuakse vaikimisi replikatsiooniteguriga üks; kui see sõlm kaob, ei saa keegi sisse logida, seega tuleks see klastrile vastavaks muuta. süsteemi_skeem keyspace selgitab, miks skeemimuudatusi tuleb rakendada ükshaaval, kuna samaaegsed muudatused võivad tekitada vastuolulisi skeemiversioone eri sõlmedes.

Levinud klahviruumi vead ja parandused

Enamik klahviruumi tõrkeid annab lühikese ja äratuntava teate.

viga Põhjus ja lahendus
Tundmatu klahviruum Võtmeruumi pole valitud. Käivita USE KeyspaceName või lisa tabelile eesliide Keyspace.Table.
Süntaksi viga 'SimpleStrategy'-s Strateegia nimi on jutumärkides. Kirjutage jutumärkidesse 'class': 'SimpleStrategy'.
Tundmatu strateegiavalik {replication_factor} Replication_factor’it kasutati koos NetworkTopologyStrategy’ga. See strateegia arvestab faktorit andmekeskuse nime järgi.
Olemasolevat võtmeruumi ei saa lisada Võtmeruum on juba olemas. Lisa „IF NOT EXISTS” või eemalda esmalt vana.
Pärast replikatsiooniteguri tõstmist puuduvad andmed Oodatav. Käivita võtmeruumis nodetool repair, et uued koopiad oleksid täidetud.

Kui võtmeruum on olemas, on järgmine samm selle sees oleva salvestusruumi määratlemine, mida käsitletakse jaotises Cassandra tabel juhendaja.

KKK

Hoidke arv väike, tavaliselt üks rakenduse kohta. Iga võtmeruum ja tabel lisab igale sõlmele skeemi metaandmeid ja mälukoormust, seega halvendavad sajad võtmeruumid klastri jõudlust.

Jah, kui auto_snapshot on lubatud. Cassandra kirjutab enne mahavõtmist hetktõmmiseping, seega saab SSTable'e pärast skeemi taasloomist sstableloaderiga taastada.

Ainult andmete puhul, mida saab taastada, näiteks vahemälud või tuletatud analüütika. Jäta vahele.ping Kinnituslogi tähendab, et mälutabelis olevad kirjutustoimingud lähevad kaotsi, kui sõlm ootamatult peatub.

Arvestades andmekeskuse paigutust ja kättesaadavuse eesmärki, saab tehisintellekt pakkuda välja strateegia ja keskustepõhised tegurid. Kinnitage andmekeskuste nimed nodetooli olekuga, sest trükiviga alaesindab end märkamatult.

See saab hästi hakkama tavapärase süntaksiga, kuid kannab sageli üle ka relatsioonilisi harjumusi, näiteks jutumärkideta strateegiate nimesid või võõrvõtmeid. Käivitage iga genereeritud skript kõigepealt testvõtmeruumi suhtes.

Võta see postitus kokku järgmiselt: