Napredno rukovanje stolovima u Cassandri

Sadržaj
U prošle smo vodiče s kojima smo u potpunosti ušli CQL i način na koji nam pomaže u upravljanju Kasandra, vidjeli smo osnovne operacije za ključni prostori i tablice u Cassandri, mogli bismo ih primijeniti za stvaranje početne strukture u bazi podataka, međutim postoji znatna količina naprednih koncepata koje moramo znati kako bismo izvukli maksimum iz Cassandre.
Ti koncepti ili karakteristike da ih na neki način nazivamo, omogućuju nam postizanje različitih funkcionalnosti u našim tablicama, dajući nam niz mogućnosti mnogo većih od ostalih. NoSQL baza podataka.
Ranije smo stvorili neke tablice i koristili vrijednosti poput teksta ili datuma za naše stupce, ali to nije sve CQL ima na raspolaganju, pogledajmo vrste podataka koje imamo za naše operacije:
asciiNiz znakova US-ASCII.
bigint64-bitna cijela vrijednost.
mrljaTip podataka izražen kao heksadecimalni u naredbenoj konzoli datoteke CQLOsim toga, nema provjeru valjanosti i temelji se na proizvoljnim bajtovima.
booleanKlasični Booleov tip podataka u kojem njegove vrijednosti mogu biti true ili false.
brojačcounter je novi tip podataka za nas koji dolazimo iz svijeta odnosa i ukazuje na to da je 64-bitni distribuirani.
decimalDruga vrsta podataka koju možemo prepoznati, a koja nam daje decimalnu preciznost za naše podatke.
dvostrukoTip podataka s pomičnim zarezom, ali temeljen na 64 bita.
plutatiKao i prethodni, to je tip podataka s pomičnim zarezom, ali temeljen na 32 bita.
inetOva vrsta je vrlo posebna i vrlo korisna u isto vrijeme i omogućuje nam spremanje niza znakova IP adrese, podržava format IPV4 Što IPV6.
intKlasični cijeli broj podataka koji podržava brojeve do 32 bita.
popisDruga vrsta podataka koja debitira na Cassandri i omogućuje nam pohranu naručene zbirke elemenata.
kartaKao i popis, to je još jedna vrsta novih podataka i omogućuje nam spremanje asocijativnog niza, što je vrlo korisno za razvoj aplikacija.
postavljenSlično vrsti podataka s popisa, pohranjuje zbirku stavki, ali ne određenim redoslijedom.
tekstPohranjuje kodirani niz znakova.
vremenska oznakaTip podataka koji pohranjuje datum i vrijeme, kodiran kao 8-bajtni cijeli broj.
varintPrecizni tip podataka za proizvoljne cijele brojeve.
Kao što vidimo, postoje mnoge vrste podataka koje možemo prepoznati ako dolazimo iz svijeta odnosa, poput drugih koje ćemo vidjeti prvi put i koje čine Kasandra ističe se nad ostalim bazama podataka.
U Kasandra nemamo samo vrste podataka za naše tablice, zahvaljujući CQL Možemo dodijeliti tablice unutar naših svojstava baze podataka koje nam uvelike pomažu u zadacima održavanja i razvoja, da vidimo što imamo na raspolaganju.
PredmemoriranjeOvo nam svojstvo daje optimizaciju predmemorije. Dostupne razine za ovu nekretninu su tamo ili svi, ključevi_samo ili samo ključevi, samo redovi ili samo redovi i nijedan ili nijedan. Međutim, sve su opcije vrlo korisne samo red mora se koristiti s oprezom kao Kasandra staviti značajnu količinu podataka u memoriju kada se koristi ta mogućnost.
KomentarOpcija koja je prisutna u relacijskom modelu, a koju koriste administratori ili programeri za izradu bilješki i isticanje važnih detalja u tablicama.
ZbijenostOvo svojstvo omogućuje definiranje strategije upravljanja metvica, mogu biti sljedećih vrsta: Prva SizeTiered koji se pokreće kada tablica prijeđe ograničenje, prednost korištenja ove strategije je u tome što ne umanjuje performanse upisa, međutim ima nedostatak što povremeno koristi dvostruko veću veličinu podataka na disku, što rezultira lošim performansama čitanje. Druga strategija je NiveliranoKompakcija i s vremenom radi na različitim razinama, spajajući tablice s duljima, što rezultira prilično dobrom izvedbom čitanja.
KompresijaOvo svojstvo određuje kako će se informacije komprimirati. Možemo odabrati da ostvarimo prednosti u brzini ili prostoru, pri čemu je veća brzina, manje prostora na disku se štedi.
Gc_grace_secondsOvo svojstvo definira vrijeme čekanja za uklanjanje podataka s nadgrobnih spomenika. Prema zadanim postavkama to je 10 dana.
Napuni_io_cache_on_flushOvo svojstvo je prema zadanim postavkama onemogućeno i trebali bismo ga aktivirati samo ako se nadamo da će svi podaci stati u predmemoriju.
Čitaj_popravku_sansuVrlo zanimljivo svojstvo koje označava broj između 0 i 1.0 koji određuje vjerojatnost popravljanja informacija kada se kvorum ne postigne. Zadana vrijednost je 0,1.
Replicate_on_writeOvo svojstvo primjenjuje se samo na tablice tipa brojač. Kada su definirane, replike pišu u sve pogođene replike, zanemarujući navedenu razinu konzistencije.
Dakle, već znamo što imamo, i na razini vrsta podataka i svojstava, vrijeme je da tada primijenimo neke stvari naučene na naše tablice u Kasandra.
Prvo ćemo stvoriti jednostavnu tablicu na koju ćemo primijeniti svojstvo komentara, da vidimo sintaksu koju ćemo koristiti za nju:
 CREATE TABLE Articles (naslov teksta, tekstualni sadržaj, kategorija teksta, PRIMARY KEY (naslov)) WITH comment = 'Tablica za spremanje podataka o članku';
Otvaramo našu komandnu konzolu CQL i stvaramo našu tablicu sa spomenutim svojstvom, da vidimo kako izgleda:

Kao što već znamo, naredbena konzola ne vraća ništa osim što nema greške, ali ako želimo vidjeti ove promjene možemo otići na OpsCenter i provjerite je li sve prošlo ispravno:

POVEĆAJTE

Kao što vidimo, možemo vidjeti naš komentar i druga svojstva sa zadanim vrijednostima. Važno je napomenuti da je definicija ostatka svojstava u Kasandra prilično je jednostavno, kao što smo mogli vidjeti u prethodnom primjeru, koristeći sintaksu S možemo to učiniti bez ikakvih problema.
Izvest ćemo drugi primjer gdje ćemo definirati svojstva kompresija Y zbijanje ali za ovo je važno znati da imaju niz podopcija za svoju upotrebu, da vidimo kompresija koje bismo trebali znati:
Stabilna_kompresijaOva opcija navodi algoritam kompresije koji će se koristiti, njegove vrijednosti su: LY4Compressor, SnappyCompressor, Y DeflateCompressor.
Chunck_length_kbTablice su komprimirane blokovima. Dulje vrijednosti općenito omogućuju bolju kompresiju, ali povećavaju veličinu podataka za čitanje. Prema zadanim postavkama ova je opcija postavljena na 64 kb.
Manipuliranje opcijama kompresije može dovesti do značajnog povećanja performansi, uključujući mnoge implementacije Kasandra Oni su s tim zadanim vrijednostima, ali za savršenstvo je potrebno koristiti te vrijednosti. Pogledajmo sada što moramo znati zbijanje:
OmogućenoOdređuje hoće li se svojstvo izvoditi u tablici iako prema zadanim postavkama sva svojstva imaju zbijanje omogućeno.
KlasaOvdje ćemo definirati vrstu strategije rukovanja tablicama.
min_pragOva je vrijednost dostupna sa strategijom SizeTiered y predstavlja minimalni broj tablica potrebnih za početak procesa zbijanja. Standardno je definirano na 4.
max_thresholdDostupno na isti način u strategiji SizeTiered y definira najveći broj tablica obrađenih u kompaktu. Standardno je definirano na 32.
Ovo su neke od najvažnijih opcija za ta svojstva, ono što je važno napomenuti je da za definiciju ovih opcija moramo koristiti sintaksu JSON Da bismo bili valjani, pogledajmo primjer uključivanja ova dva svojstva:
 CREATE TABLE table_for_properties (int id, naziv teksta, svojstvo teksta, broj varijante, PRIMARY KEY (id)) WITHcompression = {'sstable_compression': 'DeflateCompressor', 'chunk_length_kb': 64} ANDcompaction = {'class': 'SizeTieredCompactionStrategy 'min_threshold': 6};
Kao što vidimo, promijenili smo vrstu kompresije i definirali veličinu za nju, dodatno za zbijanje ostavili smo uobičajenu strategiju s vrijednošću razred i definirali smo min_prag poput 6 povećalo je zadanu vrijednost ovako, za kraj da vidimo kako ovo izgleda kada je izvršimo u našoj naredbenoj konzoli:

U prošlom vodiču mogli smo vidjeti da se kao rezultat definiranja više od jednog primarnog ključa oni stvaraju kao grupiranje ključeva i reci nam put Kasandra sortira podatke, prema zadanim postavkama redoslijed je definiran uzlaznim redoslijedom i postavljanje upita u opadajućem redoslijedu moglo bi uzrokovati probleme s performansama, međutim Cassandra ima rješenje za svaki problem i to je s rečenicom KLASIRANJE ***** PO. Pogledajmo kako ga koristiti.
 IZRADI TABLICU red_users (korisnički tekst, vremenska oznaka datuma, promjenjiva plaća, tekst odjela, tekst nadzornika, PRIMARNI KLJUČ (korisnik, datum)) S KLASTERIRANJEM ***** BY (datum DESC);
Pokrenimo našu sintaksu u naredbenoj konzoli i vidimo kako izgleda:

Kao što smo mogli vidjeti, bilo je prilično lako riješiti ovaj problem samo jednostavnom linijom, ali što je još važnije, uspjeli smo proširiti svoje znanje o rukovanju tablicama u Kasandra, s kojim završavamo ovaj vodič, gdje smo obuhvatili sve što trebamo znati za optimalno stvaranje tablica u Kasandra.
wave wave wave wave wave