“Cassandra lar oss definere tilpassede typer som kan inneholde relatert informasjon i en tabell. Hvis du ikke finner en type for å holde din type data, kan du bruke innebygde typer for å definere en annen type som fanger ønsket oppsett.
Det er godt å huske på at den definerte typen er begrenset til omfanget av tastaturet som den er skapt. Du kan bruke prikknotasjonen til å få tilgang til et bord fra et annet tastaturområde.
Dette innlegget vil diskutere hvordan du kan definere en brukertype ved hjelp av Create Type -kommandoen.”
Opprett type kommandosyntaks
Følgende kommando skildrer syntaks for Create Type -kommandoen:
Opprett type [hvis ikke eksisterer]
KeySpace_name.type_navn (
feltnavn cassandra_type [,]
[feltnavn cassandra_type] [,…]
);
Kommandoen støtter hvis eksisterer klausulen, som lar deg kvise feil hvis kommandoen med et lignende navn eksisterer i måltypen.
Type_name må inneholde et unikt navn som samsvarer med Cassandras navnegler.
Til slutt kan du definere feltene for din type og deres respektive CQL -type. Ikke bruk motfelt i tilpassede typer.
Eksempel
Følgende eksempel viser hvordan du kan definere en tilpasset type som inneholder CVE -rapporter.
Slipp KeySpace hvis eksisterer null_dag;
Lag KeySpace Zero_Day
med replikasjon =
'klasse': 'enklest strategi',
'Replication_factor': 1
;
Bruk null_dag;
Opprett type CVE_Reports (
cve_number tekst,
rapport_dato dato,
berørt_vendor -tekst,
Alvorlighetsgraden flyter,
);
Spørringen over starter med å lage et nøkkelpace “Zero_day” som vil inneholde den definerte brukertypen.
Du vil legge merke til at Create Type -setningen følger et lignende format som Table Creation. Selv om dette er sant, tjener de et annet formål, og den ene kan være et bedre valg enn den andre.
MERK: Tenk på ytelsesimplikasjonene før du velger en tabell over en tilpasset type og omvendt.
Vi kan deretter sette inn data i tabellen ovenfor som vist:
Vi kan lage en tabell med CVE_Reports -typen og sette inn prøvedata som vist:
Lag tabellposter (
id int,
CVE_Reports CVE_Reports,
Primærnøkkel (ID)
);
Sett inn data
Sett inn poster (id, cve_reports) verdier (1, cve_number: 'CVE-2021-33852', rapport_date: '2022-12-02', berørt_vendor: 'WordPress', alvorlighetsgrad: 6.0);
Vi kan deretter hente de ekstra dataene som:
Velg * fra poster;
Resulterende utgang
Konklusjon
Dette innlegget dekket det grunnleggende om å lage og bruke spesialdefinerte typer i Apache Cassandra. Vi diskuterte også hvordan du lager en tabell med tilpassede typer og setter inn data i en tilpasset type kolonne.
Glad koding!!