Pokročilá manipulace se stolem v Cassandře

Obsah
V minulých tutoriálech jsme plně vstoupili s CQL a způsob, jakým nám to pomáhá zvládat Cassandra, viděli jsme základní operace pro prostory pro klíče a tabulky v Cassandře, mohli bychom je použít k vytvoření počáteční struktury v databázi, nicméně existuje značné množství pokročilých konceptů, které potřebujeme znát, abychom z Cassandry získali maximum.
Tyto koncepty nebo charakteristiky, které je můžeme nějak nazvat, nám umožňují dosáhnout různých funkcí v našich tabulkách, což nám dává řadu možností mnohem větších než ostatní. NoSQL databáze.
Dříve jsme vytvořili některé tabulky a pro sloupce použili hodnoty jako text nebo datum, ale to není vše CQL má k dispozici, podívejme se na typy dat, které máme pro naše operace:
asciiŘetězec znaků US-ASCII.
bigint64bitová dlouhá celočíselná hodnota.
kapkaDatový typ vyjádřený jako hexadecimální v příkazové konzole CQLNavíc nemá žádné ověření a je založen na libovolných bajtech.
booleovskýKlasický booleovský datový typ, kde jeho hodnoty mohou být true nebo false.
čelitcounter je nový datový typ pro ty z nás, kteří pocházejí z relačního světa, a naznačuje, že je distribuován 64 bitů.
desetinnýDalší typ dat, který můžeme rozeznat, což nám dává pro naše informace desítkovou přesnost.
dvojnásobekDatový typ s pohyblivou řádovou čárkou, ale založený na 64 bitech.
plovákStejně jako předchozí je to datový typ s plovoucí desetinnou čárkou, ale založený na 32 bitech.
inetTento typ je velmi specifický a zároveň velmi užitečný a umožňuje nám uložit řetězec znaků IP adresy, podporuje formát IPV4 Co IPV6.
intKlasický celočíselný datový typ, který podporuje čísla až 32 bitů.
seznamDalší typ dat, který debutuje v Cassandře a umožňuje nám uložit uspořádanou sbírku prvků.
mapaStejně jako seznam je to další typ nových dat a umožňuje nám ukládat asociativní pole, které je velmi užitečné pro vývoj aplikací.
souborPodobně jako datový typ seznamu ukládá kolekci položek, ale v žádném konkrétním pořadí.
textUloží řetězec kódovaných znaků.
časové razítkoDatový typ, který ukládá datum a čas, kódovaný jako 8bajtové celé číslo.
varintPřesný datový typ pro libovolná celá čísla.
Jak vidíme, existuje mnoho typů dat, která můžeme rozpoznat, pokud pocházíme ze vztahového světa, například jiná, která uvidíme poprvé a která Cassandra vyniká nad ostatními databázemi.
v Cassandra díky našim tabulkám máme nejen datové typy CQL Můžeme přiřadit tabulkám v rámci našich vlastností databáze, které nám nesmírně pomáhají při úlohách údržby a vývoje, podívejme se, co máme k dispozici.
Ukládání do mezipamětiTato vlastnost nám poskytuje optimalizaci mezipaměti. Úrovně dostupné pro tuto vlastnost jsou tam nebo všichni, pouze_klíče nebo jen klíče, pouze řádky nebo jen řádky a žádný nebo žádný. Všechny možnosti jsou však velmi užitečné pouze řádek_ musí být používán s opatrností jako Cassandra při použití této možnosti vložte do paměti značné množství dat.
KomentářMožnost, která je přítomna v relačním modelu a kterou používají správci nebo vývojáři k vytváření poznámek a zvýrazňování důležitých podrobností v tabulkách.
ZhutněníTato vlastnost umožňuje definovat strategii pro správu máta, může být následujících typů: První Velikost Víceúrovňové která se spustí, když tabulka překročí limit, výhodou použití této strategie je, že nedegraduje výkon zápisu, nevýhodou však je, že příležitostně používá dvojnásobnou velikost dat na disku, což má za následek špatný výkon čtení. Druhá strategie je LeveledCompaction a funguje to na různých úrovních v průběhu času, spojování tabulek s delšími, což má za následek docela dobrý výkon při čtení.
KompreseTato vlastnost určuje, jak budou informace komprimovány. Můžeme vybrat, abychom získali výhody v rychlosti nebo prostoru, kde čím vyšší rychlost, tím méně místa na disku se ušetří.
Gc_grace_secondsTato vlastnost definuje čekací dobu na odebrání informací z náhrobků. Standardně je to 10 dní.
Populate_io_cache_on_flushTato vlastnost je ve výchozím nastavení zakázána a měli bychom ji aktivovat pouze v případě, že doufáme, že se všechny informace vejdou do mezipaměti.
Pravděpodobnost opravy_ čteníVelmi zajímavá vlastnost, která udává číslo mezi 0 a 1,0 určující pravděpodobnost opravy informace, když není dosaženo kvora. Výchozí hodnota je 0,1.
Replicate_on_writeTato vlastnost platí pouze pro tabulky typu čelit. Když jsou definovány, repliky zapisují do všech ovlivněných replik, přičemž ignorují zadanou úroveň konzistence.
Takže už víme, co máme, a to jak na úrovni datových typů, tak na vlastnostech, je načase použít některé z věcí, které jsme se naučili, do našich tabulek v Cassandra.
Nejprve si vytvoříme jednoduchou tabulku, na kterou použijeme vlastnost comments, podívejme se na syntaxi, kterou pro ni použijeme:
 CREATE TABLE articles (text title, text content, text category, PRIMARY KEY (title)) WITH comment = 'Table to store article information';
Otevřeme naši příkazovou konzolu CQL a vytvoříme naši tabulku se zmíněnou vlastností, podívejme se, jak vypadá:

Jak již víme, příkazová konzola nevrací nic kromě toho, že neexistuje žádná chyba, ale pokud chceme tyto změny vidět, můžeme přejít na OpsCenter a ověřte, že vše proběhlo správně:

ZVĚTŠIT

Jak vidíme, můžeme vidět náš komentář a další vlastnosti s jejich výchozími hodnotami. Je důležité zmínit, že definice ostatních vlastností v Cassandra je to docela jednoduché, jak jsme mohli vidět na předchozím příkladu, pomocí syntaxe S můžeme to udělat bez problémů.
Provedeme další příklad, kde definujeme vlastnosti komprese Y zhutnění ale za tímto účelem je důležité vědět, že mají řadu dílčích možností pro jejich použití, podívejme se na komprese že bychom měli vědět:
Sstable_compressionTato možnost určuje kompresní algoritmus, který má být použit, jeho hodnoty jsou: LY4Compressor, SnappyCompressor, Y DeflateCompressor.
Chunck_length_kbTabulky jsou komprimovány bloky. Delší hodnoty obecně poskytují lepší kompresi, ale zvětšují velikost informací ke čtení. Ve výchozím nastavení je tato možnost nastavena na 64 kb.
Manipulace s možnostmi komprese může vést k významnému zvýšení výkonu, včetně mnoha implementací Cassandra Jsou s těmi výchozími hodnotami, ale pro dokonalost je nutné tyto hodnoty použít. Podívejme se nyní, co musíme vědět zhutnění:
PovolenoUrčuje, zda se vlastnost spustí v tabulce, i když ve výchozím nastavení mají všechny vlastnosti zhutnění povoleno.
TřídaZde definujeme typ strategie pro zpracování tabulek.
min_thresholdTato hodnota je k dispozici u strategie Velikost Víceúrovňové y představuje minimální počet tabulek potřebných ke spuštění procesu zhutňování. Standardně je definován na 4.
max_thresholdK dispozici stejným způsobem ve strategii Velikost Víceúrovňové y definuje maximální počet tabulek zpracovaných v kompaktu. Standardně je definována na 32.
Toto jsou některé z nejdůležitějších možností pro tyto vlastnosti. Důležité je zmínit, že pro definici těchto možností musíme použít syntaxi JSON Aby to bylo platné, podívejme se na příklad zahrnutí těchto dvou vlastností:
 CREATE TABLE table_for_properties (int id, text name, text property, varint number, PRIMARY KEY (id)) WITHcompression = {'sstable_compression': 'DeflateCompressor', 'chunk_length_kb': 64} ANDcompaction = {'class': 'SizeTieredCompactionStrategy 'min_threshold': 6};
Jak vidíme, změnili jsme typ komprese a definovali jsme pro něj velikost, navíc pro zhutnění ponechali jsme obvyklou strategii s hodnotou třída a definovali jsme min_threshold jako 6 zvýšil výchozí hodnotu takto, na závěr se podívejme, jak to vypadá, když to spustíme v naší příkazové konzole:

V posledním kurzu jsme viděli, že v důsledku definování více než jednoho primárního klíče jsou tyto vytvořeny jako shlukování klíčů a řekni nám cestu Cassandra třídí informace, ve výchozím nastavení je pořadí definováno vzestupně a zadávání dotazů sestupně může způsobit problémy s výkonem, ale Cassandra má řešení jakéhokoli problému a je to s větou CLUSTERING ***** BY. Podívejme se, jak ji používat.
 VYTVOŘIT TABULKU objednané_uživatele (uživatelský text, časové razítko data, platová mzda, text oddělení, text nadřízeného, ​​PRIMÁRNÍ KLÍČ (uživatel, datum)) S CLUSTERINGEM ***** PODLE (datum DESC);
Pojďme spustit naši syntaxi v příkazové konzole a uvidíme, jak to vypadá:

Jak jsme viděli, bylo docela snadné vyřešit tento problém pomocí jednoduchého řádku, ale co je důležitější, dokázali jsme rozšířit své znalosti, pokud jde o zpracování tabulek v Cassandra, se kterou dokončujeme tento tutoriál, kde jsme pokryli vše, co potřebujeme vědět pro optimální vytváření tabulek v Cassandra.

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave