Разширено боравене с маси в Касандра

Съдържание
В минали уроци, с които напълно влязохме CQL и начина, по който ни помага да управляваме Касандра, видяхме основните операции за ключови пространства и таблиците в Cassandra, бихме могли да ги приложим, за да създадем начална структура в базата данни, но има значително количество усъвършенствани концепции, които трябва да знаем, за да извлечем максимума от Cassandra.
Тези понятия или характеристика да ги наричаме по някакъв начин ни позволяват да постигнем различни функционалности в нашите таблици, давайки ни набор от възможности, много по -големи от останалите. NoSQL база данни.
Преди това създадохме някои таблици и използвахме стойности като текст или дата за нашите колони, но това не е всичко CQL има налични, нека видим типовете данни, които имаме за нашите операции:
asciiUS-ASCII символен низ.
bigint64-битова дълга цяло числова стойност.
петноТип данни, изразен като шестнадесетичен в командната конзола на CQLОсвен това той няма валидиране и се основава на произволни байтове.
булеваКласическият булев тип данни, където неговите стойности могат да бъдат true или false.
броячcounter е нов тип данни за тези от нас, които идват от релационния свят и показва, че е 64-битов разпределен.
десетиченДруг тип данни, които можем да разпознаем, което ни дава десетична точност за нашата информация.
двойноТип данни с плаваща запетая, но базиран на 64 бита.
плувамПодобно на предишния, той е тип данни с плаваща запетая, но базиран на 32 бита.
inetТози тип е доста специфичен и много полезен в същото време и ни позволява да съхраняваме низ от знаци на IP адрес, той поддържа както формата IPV4 Какво IPV6.
intКласическият цялостен тип данни, който поддържа числа до 32 бита.
списъкДруг тип данни, който дебютира в Касандра и ни позволява да съхраняваме подредена колекция от елементи.
картаПодобно на списъка, това е друг вид нови данни и ни позволява да съхраняваме асоциативен масив, който е много полезен за разработването на приложения.
комплектПодобно на типа данни от списъка, той съхранява колекция от елементи, но без конкретен ред.
текстСъхранява кодиран символен низ.
времева маркаТип данни, който съхранява дата и час, кодиран като 8-байтово цяло число.
лакПрецизен тип данни за произволни цели числа.
Както виждаме, има много видове данни, които можем да разпознаем, ако идваме от релационния свят, като други, които ще видим за първи път и които правят Касандра се откроява над другите бази данни.
В Касандра ние имаме не само типове данни за нашите таблици, благодарение на CQL Можем да присвояваме таблиците в нашите свойства на базата данни, които ни помагат изключително много при задачи по поддръжка и развитие, нека видим какво имаме на разположение.
КеширанеТова свойство ни дава оптимизация на кеш паметта. Наличните нива за този имот са там или всички, ключове_само или просто ключове, само редове или само редове и нито един или никой. Всички опции обаче са доста полезни ред_ само трябва да се използва внимателно като Касандра поставете значително количество данни в паметта, когато се използва тази опция.
КоментирайтеОпция, която присъства в релационния модел и се използва от администраторите или разработчиците за правене на бележки и подчертаване на важни подробности в таблици.
УплътняванеТова свойство позволява дефиниране на стратегията за управление на мента, може да бъде от следните типове: Първият SizeTiered което се задейства, когато таблицата премине ограничение, предимството на използването на тази стратегия е, че не влошава производителността на запис, но има недостатък, че понякога използва два пъти по -голям размер на данните на диска, което води до лоша производителност четене. Втората стратегия е Изравнено Уплътняване и той работи на различни нива във времето, свързвайки таблици с по -дълги, което води до доста добро представяне при четене.
КомпресияТова свойство определя как ще се компресира информацията. Можем да изберем да получим предимства в скоростта или пространството, където колкото по -висока е скоростта, толкова по -малко място на диска се спестява.
Gc_grace_secondsТова свойство определя времето за изчакване за премахване на информацията от надгробните плочи. По подразбиране е 10 дни.
Попълнете_io_cache_on_flushТова свойство е деактивирано по подразбиране и трябва да го активираме само ако се надяваме, че цялата информация ще се побере в кеш паметта.
Read_repair_chanceМного интересно свойство, което показва число между 0 и 1.0, определящо вероятността за поправяне на информацията, когато не е достигнат кворумът. Стойността по подразбиране е 0,1.
Replicate_on_writeТова свойство се прилага само за таблици от тип брояч. Когато са дефинирани, репликите записват във всички засегнати реплики, като игнорират определеното ниво на последователност.
Така че вече знаем какво имаме, както на ниво типове данни, така и на свойства, тогава е време да приложим някои от научените неща към нашите таблици в Касандра.
Първо ще създадем проста таблица, към която ще приложим свойството comments, нека видим синтаксиса, който ще използваме за него:
 CREATE TABLE articles (заглавие на текст, текстово съдържание, текстова категория, PRIMARY KEY (заглавие)) WITH comment = 'Таблица за съхраняване на информация за статията';
Отваряме нашата командна конзола CQL и създаваме нашата таблица със споменатото свойство, нека видим как изглежда:

Както вече знаем, командната конзола не връща нищо, освен че няма грешка, но ако искаме да видим тези промени, можем да отидем на нашия OpsCenter и проверете дали всичко е минало правилно:

Увеличете

Както виждаме, можем да видим нашия коментар и други свойства с техните стойности по подразбиране. Важно е да се спомене, че дефиницията на останалите имоти в Касандра това е съвсем просто, както видяхме в предишния пример, използвайки синтаксиса С можем да го направим без никакви проблеми.
Ще извършим друг пример, където ще дефинираме свойствата компресия Y уплътняване но за това е важно да знаете, че те имат серия от под опции за тяхното използване, нека да видим за компресия че трябва да знаем:
Стабилна_компресияТази опция определя алгоритъма за компресиране, който да се използва, стойностите му са: LY4Compressor, SnappyCompressor, Y DeflateCompressor.
Chunck_length_kbТаблиците се компресират от блокове. По -дългите стойности обикновено осигуряват по -добра компресия, но увеличават размера на информацията за четене. По подразбиране тази опция е зададена на 64 kb.
Манипулирането на опциите за компресиране може да доведе до значително повишаване на производителността, включително много реализации на Касандра Те са с тези стойности по подразбиране, но за съвършенство е необходимо да се използват тези стойности. Нека да видим сега какво трябва да знаем уплътняване:
АктивираноОпределя дали свойството ще се изпълнява в таблицата, въпреки че по подразбиране всички свойства имат уплътняване активиран.
КласТук ще дефинираме типа стратегия за работа с таблиците.
min_thresholdТази стойност е налична със стратегията SizeTiered y представлява минималният брой таблици, необходими за стартиране на процеса на уплътняване. По подразбиране се дефинира на 4.
max_thresholdПредлага се по същия начин в стратегията SizeTiered y определя максималния брой таблици, обработени в компакта. По подразбиране се дефинира на 32.
Това са някои от най -важните опции за тези свойства, важно е да споменем, че за дефинирането на тези опции трябва да използваме синтаксис JSON За да бъде валиден, нека видим пример за включването на тези две свойства:
 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};
Както виждаме, сме променили вида на компресията и сме определили размера за нея, допълнително за уплътняване оставихме обичайната стратегия със стойността клас и ние сме дефинирали min_threshold като 6 увеличи стойността по подразбиране по този начин, за да завършим, нека видим как изглежда това, когато го изпълним в нашата командна конзола:

В последния урок можехме да видим, че в резултат на дефинирането на повече от един първичен ключ, те се създават като групиране на ключове и ни кажете пътя Касандра сортира информацията, по подразбиране редът е дефиниран във възходящ ред и отправянето на заявка в низходящ ред може да причини проблеми с производителността, но Касандра има решение за всеки проблем и е с изречението КЛАСТРИРАНЕ ***** BY. Нека да видим как да го използваме.
 СЪЗДАВАЙТЕ ТАБЛИЦА подредени_потребители (потребителски текст, времева марка на датата, плаващ размер на заплатата, текст на отдел, текст на надзорник, ОСНОВЕН КЛЮЧ (потребител, дата)) С КЛАСТРИРАНЕ ***** BY (дата DESC);
Нека стартираме синтаксиса си в командната конзола и да видим как изглежда:

Както видяхме, беше доста лесно да решим този проблем само с обикновен ред, но по -важното беше, че успяхме да разширим знанията си, когато става въпрос за работа с таблици в Касандра, с което завършваме този урок, където обхващаме всичко, което трябва да знаем за оптимално създаване на таблици в Касандра.
wave wave wave wave wave