Tasteplads i CassandraEksempel på oprettelse, ændring og sletning
⚡ Smart opsummering
Tasteplads i Cassandra er den yderste datacontainer, svarende til en database i et relationssystem, og den bestemmer, hvordan hver tabel i den replikeres. Denne side dækker oprettelse, ændring og sletning.ping et nøglerum, plus dets egenskaber og systemnøglerum.
Hvad er Keyspace i Cassandra?
Et nøglerum i Cassandra er en datacontainer, der ligner en database i RDBMS (Relational Database Management Systems). Cassandra Keyspace bestemmer, hvordan data replikeres på noder.
Da replikering er indstillet på nøglerummet i stedet for på individuelle tabeller, arver hver tabel, der oprettes i det, den samme strategi og replikeringsfaktor. Det gør nøglerummet til den første beslutning i ethvert skema.
Sådan opretter du nøglerum i Cassandra
Et nøglerum er et objekt, der indeholder kolonnefamilierne, brugerdefinerede typer. I Cassandra, Keyspace ligner RDBMS Database. Keyspace indeholder kolonnefamilier, indekser, brugerdefinerede typer, datacenterbevidsthed, strategi brugt i nøglerum, replikeringsfaktor osv.
Kommando "Opret nøglerum” bruges til at oprette nøglerum i Cassandra.
Syntaks
CREATE KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 };
Forskellige komponenter af Cassandra Tasterum
- Strategi: Mens du erklærer strateginavn i Cassandra. Der er to slags strategier erklæret i Cassandra Syntaks.
- Simpel strategi: Simpel strategi bruges, når du kun har ét datacenter. I denne strategi placeres den første replika på den node, der er valgt af partitioneren. Resterende noder placeres i urets retning i ringen uden at tage højde for stativ eller nodeplacering.
- Netværkstopologistrategi: Netværkstopologistrategi bruges, når du har mere end ét datacenter. I denne strategi skal du angive replikeringsfaktor for hvert datacenter separat. Netværkstopologistrategi placerer replikaer i noder i urets retning i det samme datacenter. Denne strategi forsøger at placere replikaer i forskellige stativer.
- Replikationsfaktor: Replikeringsfaktor er antallet af replikaer af data placeret på forskellige noder. For ingen fejl er 3 en god replikationsfaktor. Mere end to replikationsfaktorer sikrer, at der ikke er et enkelt fejlpunkt. Nogle gange kan serveren være nede, eller der kan opstå netværksproblemer, så leverer andre replikaer service uden fejl.
- Eksempel: Her er et øjebliksbillede af den udførte kommando "Create Keyspace", der vil skabe nøglerum i Cassandra.
CREATE KEYSPACE University WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': 3 };
Efter vellykket udførelse af kommandoen "Create Keyspace", oprettes Keyspace University i Cassandra med strategien “SimpleStrategy” og replikationsfaktor 3. Bemærk, at strateginavnet skal være i citationstegn; en værdi uden citationstegn afvises som en syntaksfejl.
Ændre tasterum Cassandra
Kommandoen "Alter Keyspace" ændrer replikeringsfaktoren, strateginavnet og holdbare skriveegenskaber i oprettet nøglerum i Cassandra.
Syntaks
ALTER KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 } AND DURABLE_WRITES = true;
Nøgleaspekter, mens du ændrer Keyspace ind Cassandra
- Tasterumsnavn: Tasterumsnavnet kan ikke ændres Cassandra.
- Strateginavn: Strateginavnet kan ændres ved at angive et nyt strateginavn.
- Replikationsfaktor: Replikationsfaktor kan ændres ved at angive ny replikationsfaktor.
- DURABLE_WRITES: Værdien af DURABLE_WRITES kan ændres ved at angive dens værdi som sand eller falsk. Som standard er den sand. Hvis den er indstillet til falsk, skrives der ingen opdateringer til commit-loggen og omvendt.
- Udførelse: Her er et øjebliksbillede af den udførte kommando "Alter Keyspace", der ændrer nøglerumsstrategien fra 'SimpleStrategy' til 'NetworkTopologyStrategy' og replikeringsfaktor fra 3 til 1 for DataCenter1.
ALTER KEYSPACE University WITH replication = { 'class': 'NetworkTopologyStrategy', 'DataCenter1': 1 };
Efter vellykket udførelse af kommandoen "Alter Keyspace" ændres strateginavnet fra 'SimpleStrategy' til 'NetworkTopologyStrategy', og replikeringsfaktoren ændres fra 3 til 1 for 'DataCenter1'.
Vigtig: Forøgelse af en replikationsfaktor kopierer ikke eksisterende data i sig selv. Kør reparation af nodetool på det berørte nøgleområde bagefter, ellers forbliver de nye replikaer tomme, indtil en læsereparation berører hver række.
Cassandra Drop Keyspace
Kommando 'Drop Keyspace' dropper tasterum inklusive alle data, kolonnefamilier, brugerdefinerede typer og indekser fra CassandraFør faldping nøglerummet, Cassandra tager et øjebliksbillede af tasterummet. Hvis tasterummet ikke findes i Cassandra, Cassandra vil returnere en fejl, medmindre IF EXISTS bruges.
Syntaks
DROP KEYSPACE IF EXISTS KeyspaceName;
Eksempel
Her er et øjebliksbillede af den udførte kommando 'Drop Keyspace', der vil slippe keyspace University.
DROP KEYSPACE University;
Efter vellykket udførelse af kommandoen 'Drop keyspace University', vil keyspace University blive slettet fra Cassandra med alle data og skema.
Her er det øjebliksbillede, hvor fejlen returneres, når det forsøges at få adgang til nøglerum, der ikke eksisterer.
Bemærk: Der er ingen forskel på drop keyspace og slet keyspace. Drop tastespace er lig med slet tastespace.
Nøgleområdeegenskaber og systemnøgleområder
Ud over at oprette og slippeping, tre kommandoer dækker næsten alt dagligt tastaturarbejde i cqlsh.
DESCRIBE KEYSPACES; DESCRIBE KEYSPACE University; USE University;
Den første viser alle nøglerum i klyngen, den anden udskriver det fulde skema for et nøglerum inklusive dets tabeller, og den tredje angiver det aktuelle nøglerum, så tabelnavne ikke længere behøver et præfiks.
Ved siden af brugerens nøglerum, Cassandra sender flere af sine egne. De vises i outputtet af BESKRIV KEYSPACES og er værd at genkende snarere end at slette.
- system: Lokal nodetilstand, inklusive dens token-intervaller og de peers, den kender til.
- system_skema: Definitionerne af hvert nøgleområde, hver tabel, hver kolonne og hvert indeks i klyngen.
- system_godkendelse: Roller, tilladelser og legitimationsoplysninger, når godkendelse er aktiveret.
- system_distribueret: Reparationshistorik og andet klyngeomfattende bogholderiping.
- system_tracDet er: Query tracer fanget når tracer tændt.
To af disse fortjener opmærksomhed i produktionen. system_auth Nøglerummet oprettes som standard med en replikeringsfaktor på én; hvis den node mistes, kan ingen logge ind, så det bør hæves for at matche klyngen. systemskema Keyspace forklarer, hvorfor skemaændringer skal anvendes én ad gangen, da samtidige ændringer kan producere modstridende skemaversioner på tværs af noder.
Almindelige nøgleområdefejl og rettelser
De fleste keyspace-fejl producerer en kort, genkendelig besked.
| Fejl | Årsag og løsning |
|---|---|
| Ukendt nøgleområde | Der er ikke valgt noget nøgleområde. Kør USE KeyspaceName, eller indsæt præfikset Keyspace.Table for tabellen. |
| Syntaksfejl ved 'SimpleStrategy' | Strateginavnet skal være uden anførselstegn. Skriv 'klasse': 'SimpleStrategy' med anførselstegn. |
| Ukendt strategimulighed {replikationsfaktor} | replication_factor blev brugt sammen med NetworkTopologyStrategy. Denne strategi tager i stedet en faktor pr. datacenternavn. |
| Kan ikke tilføje eksisterende nøglerum | Nøglerummet findes allerede. Tilføj IF NOT EXISTS, eller fjern det gamle først. |
| Data mangler efter forøgelse af replikationsfaktoren | Forventet. Kør nodetool-reparation på nøgleområdet, så de nye replikaer er udfyldt. |
Når et nøglerum eksisterer, er næste trin at definere lagerplads indeni det, dækket af Cassandra bord tutorial.





