Indholdsfortegnelse
I tidligere tutorials gik vi fuldt ud i gang med CQL og den måde, det hjælper os med at styre Cassandra, vi så de grundlæggende operationer for nøglerum og tabellerne i Cassandra, kunne vi anvende dem til at oprette en indledende struktur i databasen, men der er en betydelig mængde avancerede koncepter, som vi har brug for at kende for at få mest muligt ud af Cassandra.Disse begreber eller karakteristika at kalde dem på en eller anden måde giver os mulighed for at opnå forskellige funktionaliteter i vores tabeller, hvilket giver os en række muligheder meget større end resten af de andre. NoSQL -database.
Tidligere har vi oprettet nogle tabeller og brugt værdier som tekst eller dato til vores kolonner, men det er ikke alt det CQL har til rådighed, lad os se de typer data, vi har til vores operationer:
asciiUS-ASCII tegnstreng.
bigintEn 64-bit lang heltalværdi.
klatDatatype udtrykt som en hexadecimal i kommandokonsollen af CQLDerudover har den ingen validering og er baseret på vilkårlige bytes.
boolskDen klassiske boolske datatype, hvor dens værdier kan være sande eller falske.
tællertæller er en ny datatype for os, der kommer fra relationel verden og angiver, at den er 64-bit distribueret.
decimalEn anden type data, som vi kan genkende, hvilket giver os decimalpræcision for vores information.
dobbeltFlydende datatype, men baseret på 64 bit.
flydeLigesom den foregående er det en datatype med flydende punkt, men baseret på 32 bit.
inetDenne type er ganske særlig og meget nyttig på samme tid og giver os mulighed for at gemme en række tegn på en IP -adresse, den understøtter både formatet IPV4 Hvad IPV6.
intDen klassiske heltal datatype, der understøtter tal op til 32 bit.
listeEn anden type data, der får sin debut i Cassandra og giver os mulighed for at gemme en bestilt samling af elementer.
kortLigesom listen er det en anden type nye data, og det giver os mulighed for at gemme et associeret array, hvilket er meget nyttigt til applikationsudvikling.
sætLigesom listen datatype, gemmer den en samling af varer, men i ingen bestemt rækkefølge.
tekstGemmer en kodet tegnstreng.
tidsstempelDatatype, der gemmer dato og klokkeslæt, kodet som et 8-byte heltal.
varintPræcisionsdatatype for vilkårlige heltal.
Som vi kan se, er der mange typer data, som vi kan genkende, hvis vi kommer fra relationel verden, f.eks. Andre, som vi vil se for første gang, og som gør Cassandra skiller sig ud over andre databaser.
I Cassandra vi har ikke kun datatyper til vores tabeller, takket være CQL Vi kan tildele tabellerne i vores databaseegenskaber, som hjælper os enormt med vedligeholdelses- og udviklingsopgaver, lad os se, hvad vi har til rådighed.
CachingDenne egenskab giver os cache -hukommelsesoptimering. De tilgængelige niveauer for denne ejendom er der eller alle, nøgler_ kun eller bare nøgler, rækker_ kun eller bare rækker og ingen eller ingen. Alle mulighederne er dog ganske nyttige kun række_ skal bruges med omhu som Cassandra læg en betydelig mængde data i hukommelsen, når denne mulighed bruges.
KommentarEn mulighed, der er til stede i relationsmodellen, og bruges af administratorer eller udviklere til at lave noter og fremhæve vigtige detaljer i tabeller.
KomprimeringDenne egenskab gør det muligt at definere strategien for styring af mynte, kan være af følgende typer: Den første Størrelse som udløses, når tabellen passerer en grænse, er fordelen ved at bruge denne strategi, at den ikke forringer skriveydelsen, men det har en ulempe, at den lejlighedsvis bruger dobbelt størrelse på dataene på disken, hvilket resulterer i dårlige ydelser læsning. Den anden strategi er LeveledCompaction og det fungerer på forskellige niveauer over tid og forbinder tabeller med længere, hvilket resulterer i temmelig god læseydelse.
KompressionDenne egenskab bestemmer, hvordan oplysningerne komprimeres. Vi kan vælge at opnå fordele i hastighed eller plads, hvor jo højere hastighed, jo mindre diskplads er gemt.
Gc_grace_secondsDenne ejendom definerer ventetiden for at fjerne oplysningerne fra gravstenene. Som standard er det 10 dage.
Populate_io_cache_on_flushDenne ejendom er som standard deaktiveret, og vi bør kun aktivere den, hvis vi håber, at alle oplysninger vil passe ind i cachehukommelsen.
Read_repair_chanceEn meget interessant ejendom, der angiver et tal mellem 0 og 1,0, der angiver sandsynligheden for at reparere oplysningerne, når beslutningsdygtigheden ikke er nået. Standardværdien er 0,1.
Replicate_on_writeDenne egenskab gælder kun tabeller af typen tæller. Når de er defineret, skriver kopier til alle berørte kopier og ignorerer det angivne konsistensniveau.
Så vi ved allerede, hvad vi har, både hvad angår datatyper og egenskaber, er det på tide at anvende nogle af de ting, vi har lært på vores tabeller i Cassandra.
Først skal vi oprette en simpel tabel, som vi vil anvende egenskaben kommentarer på, lad os se den syntaks, vi vil bruge til det:
Opret tabelartikler (teksttitel, tekstindhold, tekstkategori, primærnøgle (titel)) MED kommentar = 'Tabel til lagring af artikelinformation';Vi åbner vores kommandokonsol CQL og vi opretter vores bord med den nævnte ejendom, lad os se, hvordan det ser ud:
Som vi allerede ved, returnerer kommandokonsollen ikke noget, bortset fra at der ikke er nogen fejl, men hvis vi vil se disse ændringer, kan vi gå til vores OpsCenter og kontroller, at alt er gået korrekt:
FORSTØRRE
Som vi kan se, kan vi se vores kommentar og andre egenskaber med deres standardværdier. Det er vigtigt at nævne, at definitionen af resten af ejendommene i Cassandra det er ganske enkelt, som vi kunne se med det foregående eksempel, ved hjælp af syntaksen MED vi kan gøre det uden problemer.Vi skal udføre et andet eksempel, hvor vi skal definere egenskaberne kompression Y komprimering men for dette er det vigtigt at vide, at de har en række undermuligheder til deres brug, lad os se for kompression som vi burde vide:
Sstabil_komprimeringDenne indstilling angiver den komprimeringsalgoritme, der skal bruges, dens værdier er: LY4Kompressor, SnappyKompressor, Y Tøm kompressor.
Chunck_length_kbTabeller komprimeres af blokke. Længere værdier giver generelt bedre komprimering, men øger størrelsen på de oplysninger, der skal læses. Denne indstilling er som standard indstillet til 64 kb.
Manipulering af komprimeringsmuligheder kan føre til en betydelig ydelsesforøgelse, herunder mange implementeringer af Cassandra De er med disse standardværdier, men for perfektion er det nødvendigt at bruge disse værdier. Lad os nu se, hvad vi skal vide komprimering:
AktiveretBestemmer, om ejendommen vil køre i tabellen, selvom alle egenskaber som standard har komprimering aktiveret.
KlasseHer vil vi definere typen af strategi til håndtering af tabellerne.
min_grænseDenne værdi er tilgængelig med strategien Størrelse y repræsenterer det mindste antal tabeller, der er nødvendige for at starte en komprimeringsproces. Det er defineret som standard ved 4.
max_thresholdTilgængelig på samme måde i strategien Størrelse y definerer det maksimale antal tabeller, der behandles i kompakten. Det er defineret som standard til 32.
Dette er nogle af de vigtigste muligheder for disse egenskaber, hvad der er vigtigt at nævne er, at vi for definitionen af disse muligheder skal bruge en syntaks JSON For at være gyldig, lad os se et eksempel på inkluderingen af disse to egenskaber:
OPRET TABEL table_for_properties (int id, tekstnavn, tekstegenskab, varintnummer, PRIMARY KEY (id)) WITHcompression = {'sstable_compression': 'DeflateCompressor', 'chunk_length_kb': 64} ANDcompaction = {'class': 'SizeTieredCompactionSateg 'min_grænse': 6};Som vi kan se, har vi ændret typen af komprimering, og vi har defineret størrelsen for den, derudover for komprimering vi har efterladt den sædvanlige strategi med værdien klasse og vi har defineret min_grænse ligesom 6 øgede standardværdien sådan, for at afslutte lad os se, hvordan dette ser ud, når vi udfører det i vores kommandokonsol:
I den sidste tutorial kunne vi se, at som et resultat af at definere mere end en primær nøgle, er disse skabt som gruppering af nøgler og fortæl os vejen Cassandra sorterer oplysningerne, som standard er rækkefølgen defineret i stigende rækkefølge, og at stille en forespørgsel i faldende rækkefølge kan forårsage problemer med ydelsen, men Cassandra har en løsning på ethvert problem, og det er med sætningen KLUSTERING ***** AF. Lad os se, hvordan du bruger det.
OPRET TABEL beordrede_brugere (brugertekst, dato -tidsstempel, lønfremgang, afdelingstekst, vejledertekst, PRIMÆR NØGLE (bruger, dato)) MED KLUSTERING ***** BY (dato DESC);Lad os køre vores syntaks i kommandokonsollen og se, hvordan det ser ud:
Som vi kunne se, var det ganske let at løse dette problem med bare en simpel linje, men endnu vigtigere var det, at vi kunne udvide vores viden, når det kommer til håndtering af borde i Cassandra, hvormed vi afslutter denne vejledning, hvor vi har dækket alt, hvad vi har brug for at vide for optimal bordskabelse i Cassandra.