Turinys
Ankstesnėse pamokose mes visiškai dalyvavome CQL ir tai, kaip tai padeda mums valdyti Kasandra, pamatėme pagrindines operacijas raktų erdvės ir lentelės Kasandroje, galėtume jas pritaikyti, kad sukurtume pradinę duomenų bazės struktūrą, tačiau turime nemažai pažangių koncepcijų, kurias turime žinoti, kad išnaudotume visas Kasandros galimybes.Šios sąvokos arba savybės jas vadinti tam tikru būdu leidžia mums pasiekti skirtingas lentelių funkcijas, suteikiant mums daug daugiau galimybių nei kitos. „NoSQL“ duomenų bazė.
Anksčiau mes sukūrėme kai kurias lenteles ir stulpeliuose naudojome tokias vertes kaip tekstas ar data, tačiau tai dar ne viskas CQL turimą, pažiūrėkime, kokių tipų duomenis turime savo veiklai:
asciiUS-ASCII simbolių eilutė.
bigint64 bitų ilgio sveikasis skaičius.
lašelisDuomenų tipas komandų pulte išreikštas šešioliktainiu skaičiumi CQLBe to, jis neturi patvirtinimo ir yra pagrįstas savavališkais baitais.
loginisKlasikinis loginis duomenų tipas, kurio reikšmės gali būti teisingos arba klaidingos.
skaitiklisskaitiklis yra naujas duomenų tipas tiems iš mūsų, kurie yra kilę iš santykių pasaulio ir nurodo, kad jis yra paskirstytas 64 bitų.
dešimtainisKitas duomenų tipas, kurį galime atpažinti, o tai suteikia mums informacijos dešimtainį tikslumą.
dvigubasSlankiojo kablelio duomenų tipas, bet pagrįstas 64 bitais.
plūdėKaip ir ankstesnis, tai yra slankiojo kablelio duomenų tipas, tačiau pagrįstas 32 bitais.
inetŠis tipas yra gana ypatingas ir labai naudingas tuo pačiu metu ir leidžia mums išsaugoti IP adreso simbolių seką, jis palaiko ir formatą IPV4 Ką IPV6.
tarptKlasikinis sveikasis duomenų tipas, palaikantis iki 32 bitų skaičius.
sąrašąKitas duomenų tipas, debiutuojantis Kasandroje ir leidžiantis saugoti užsakytą elementų kolekciją.
žemėlapisKaip ir sąrašas, tai yra dar vienas naujų duomenų tipas ir leidžia mums išsaugoti asociatyvų masyvą, kuris yra labai naudingas kuriant programas.
nustatytiPanašiai kaip sąrašo duomenų tipas, jis saugo elementų rinkinį, bet ne konkrečia tvarka.
tekstasSaugo užkoduotą simbolių eilutę.
laiko žymaDuomenų tipas, kuriame saugoma data ir laikas, užkoduotas kaip 8 baitų sveikasis skaičius.
lakasTikslus savavališkų sveikųjų skaičių duomenų tipas.
Kaip matome, yra daug tipų duomenų, kuriuos galime atpažinti, jei esame kilę iš santykių pasaulio, pavyzdžiui, kiti, kuriuos pamatysime pirmą kartą ir kurie Kasandra išsiskiria aukščiau kitų duomenų bazių.
In Kasandra dėka mes turime ne tik duomenų tipus savo lentelėms CQL Galime priskirti prie duomenų bazės ypatybių lentelių, kurios mums labai padeda atliekant priežiūros ir plėtros užduotis, pažiūrėkime, ką turime.
Talpykla talpyklojeŠi savybė leidžia mums optimizuoti talpyklos atmintį. Šios nuosavybės lygiai yra ten arba visi, tik raktus arba tik raktai, tik eilutės arba tik eilės ir nė vienas arba nė vieno. Tačiau visos parinktys yra gana naudingos tik eilė_ turi būti naudojamas atsargiai, kaip Kasandra naudojant šią parinktį, į atmintį įdėkite daug duomenų.
KomentuotiSantykių modelyje esanti parinktis, kurią naudoja administratoriai ar kūrėjai, norėdami užrašyti ir paryškinti svarbias detales lentelėse.
SuspaudimasŠi savybė leidžia apibrėžti valdymo strategiją mėtos, gali būti šių tipų: Pirmasis Dydis yra padengtas kuris suaktyvinamas, kai lentelė peržengia ribą, šios strategijos naudojimo pranašumas yra tai, kad ji nesumažina rašymo našumo, tačiau turi trūkumų, kad ji kartais naudoja dvigubai didesnį diske esančių duomenų dydį, todėl našumas yra prastas skaitymas. Antroji strategija yra LeveledCompaction ir laikui bėgant jis veikia skirtingais lygiais, sujungdamas lenteles su ilgesnėmis, todėl skaitymas yra gana geras.
SuspaudimasŠi savybė nustato, kaip informacija bus suspausta. Mes galime pasirinkti gauti naudos iš greičio ar vietos, kur kuo didesnis greitis, tuo mažiau sutaupoma vietos diske.
Gc_grace_secondsŠi savybė apibrėžia laukimo laiką, kol informacija bus pašalinta iš antkapių. Pagal numatytuosius nustatymus tai yra 10 dienų.
Pildyti_io_cache_on_flushŠi savybė pagal numatytuosius nustatymus yra išjungta, todėl turėtume ją suaktyvinti tik tuo atveju, jei tikimės, kad visa informacija tilps į talpyklą.
Read_repair_chanceLabai įdomi savybė, nurodanti skaičių nuo 0 iki 1,0, nurodanti tikimybę pataisyti informaciją, kai kvorumas nepasiekiamas. Numatytoji vertė yra 0,1.
Replicate_on_writeŠi savybė taikoma tik tipo lentelėms skaitiklis. Kai jos yra apibrėžtos, kopijos rašo visoms paveiktoms kopijoms, nepaisydamos nurodyto nuoseklumo lygio.
Taigi mes jau žinome, ką turime, tiek duomenų tipų, tiek ypatybių lygmeniu, tada laikas pritaikyti kai kuriuos dalykus, išmoktus mūsų lentelėse Kasandra.
Pirmiausia sukursime paprastą lentelę, kuriai pritaikysime komentarų ypatybę, pažiūrėkime sintaksę, kurią jai naudosime:
KURTI LENTELĖS straipsnius (teksto pavadinimas, teksto turinys, teksto kategorija, PAGRINDINIS RAKTAS (pavadinimas)) SU KOMENTARU = 'Lentelė informacijai saugoti';Mes atidarome komandų konsolę CQL ir mes kuriame lentelę su minėta ypatybe, pažiūrėkime, kaip ji atrodo:
Kaip jau žinome, komandų konsolė nieko negrąžina, išskyrus tai, kad nėra klaidos, bet jei norime pamatyti šiuos pakeitimus, galime pereiti prie „OpsCenter“ ir patikrinkite, ar viskas įvyko teisingai:
DIDELIS
Kaip matome, galime matyti savo komentarą ir kitas ypatybes su numatytosiomis reikšmėmis. Svarbu paminėti, kad likusių nuosavybių apibrėžimas Kasandra tai gana paprasta, kaip matėme ankstesniame pavyzdyje, naudojant sintaksę SU mes galime tai padaryti be jokių problemų.Mes atliksime kitą pavyzdį, kuriame nustatysime savybes suspaudimas Y tankinimas bet tam svarbu žinoti, kad jie turi keletą papildomų variantų, kaip juos naudoti, pažiūrėkime suspaudimas kad turėtume žinoti:
Stabilus_suspaudimasŠi parinktis nurodo naudojamą suspaudimo algoritmą, jo vertės yra: „LY4Compressor“, „SnappyCompressor“, Y „DeflateCompressor“.
Chunck_length_kbLentelės suspaudžiamos blokais. Ilgesnės vertės paprastai užtikrina geresnį suspaudimą, tačiau padidina skaitomos informacijos dydį. Pagal numatytuosius nustatymus ši parinktis nustatyta į 64 kb.
Manipuliavimas suspaudimo galimybėmis gali žymiai padidinti našumą, įskaitant daugybę diegimų Kasandra Jie yra su tomis numatytosiomis reikšmėmis, tačiau siekiant tobulumo, šias vertes būtina naudoti. Dabar pažiūrėkime, ką turime žinoti sutankinimas:
ĮjungtasNustato, ar ypatybė bus vykdoma lentelėje, nors pagal numatytuosius nustatymus visos savybės yra tankinimas įjungtas.
KlasėČia apibrėžsime lentelių tvarkymo strategijos tipą.
min_thresholdŠi vertė pasiekiama naudojant strategiją Dydis yra padengtas y reiškia mažiausią lentelių skaičių, reikalingą sutankinimo procesui pradėti. Pagal numatytuosius nustatymus jis yra 4.
max_thresholdPanašiai galima ir strategijoje Dydžio sluoksnis y apibrėžia maksimalų lentelių, apdorotų kompaktinėje plokštelėje, skaičių. Pagal numatytuosius nustatymus jis yra 32.
Tai yra keletas svarbiausių šių savybių variantų. Svarbu paminėti, kad šioms parinktims apibrėžti turime naudoti sintaksę JSONAS Kad tai būtų teisinga, pažiūrėkime šių dviejų savybių įtraukimo pavyzdį:
KURTI LENTELĘ table_for_properties (int id, teksto pavadinimas, teksto ypatybė, varint numeris, PIRMINIS RAKTAS (ID)) WITHcompression = {'sstable_compression': 'DeflateCompressor', 'chunk_length_kb': 64} ANDcompaction = {'class': 'SizeTieredCompactionSt „min_threshold“: 6};Kaip matome, pakeitėme suspaudimo tipą ir papildomai nustatėme jo dydį tankinimas palikome įprastą strategiją su verte klasė ir mes apibrėžėme min_threshold kaip 6 padidino numatytąją vertę taip, kad baigtume, pažiūrėkime, kaip tai atrodo, kai ją vykdome savo komandų pulte:
Paskutinėje pamokoje matėme, kad apibrėžus daugiau nei vieną pirminį raktą, jie sukuriami kaip klavišų grupavimas ir pasakyk mums kelią Kasandra rūšiuoja informaciją, pagal numatytuosius nustatymus tvarka yra apibrėžta didėjančia tvarka, o užklausos pateikimas mažėjančia tvarka gali sukelti našumo problemų, tačiau „Cassandra“ turi bet kokios problemos sprendimą ir yra su sakiniu Klasterizacija *****. Pažiūrėkime, kaip jį naudoti.
KURTI LENTELĘ užsakyti_ vartotojai (vartotojo tekstas, datos laiko žyma, atlyginimo planas, skyriaus tekstas, prižiūrėtojo tekstas, PIRMINIS RAKTAS (vartotojas, data)) SU KLAUSERIAIS ***** BY (data DESC);Vykdykime savo sintaksę komandų pulte ir pažiūrėkime, kaip tai atrodo:
Kaip matėme, šią problemą buvo gana paprasta išspręsti tik paprasta eilute, tačiau dar svarbiau, kad galėjome išplėsti savo žinias, susijusias su lentelių tvarkymu Kasandra, kuriuo baigiame šią mokymo programą, kurioje aprašėme viską, ką turime žinoti, kad sukurtume optimalų stalą Kasandra.