'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 opp ønsket layout.
Det er greit å huske på at den definerte typen er begrenset til omfanget av tasteområdet som den er opprettet på. Du kan bruke punktnotasjonen for å få tilgang til en tabell fra et annet tasterom.
Dette innlegget vil diskutere hvordan du kan definere en brukertype ved å bruke CREATE TYPE-kommandoen.'
Opprett Type Kommandosyntaks
Følgende kommando viser syntaksen til kommandoen create type:
LAG TYPE [ HVIS IKKE FINNES ]
keyspace_name.type_name (
feltnavn cassandra_type [ , ]
[ feltnavn cassandra_type ] [ ,... ]
) ;
Kommandoen støtter IF EXISTS-leddet, som lar deg annullere feil hvis kommandoen med et lignende navn finnes i måltypen.
Type_name må inneholde et unikt navn som samsvarer med Cassandras navneregler.
Til slutt kan du definere feltene for typen din og deres respektive CQL-type. Ikke bruk tellerfelt i egendefinerte typer.
Eksempel
Følgende eksempel viser hvordan du definerer en tilpasset type som inneholder CVE-rapporter.
slipp tastemellomrom hvis eksisterer zero_day;opprette keyspace zero_day
med replikering = {
'klasse' : 'Simple Strategy' ,
'replikeringsfaktor' : 1
} ;
bruk zero_day;
skape type cve_reports (
cve_nummer tekst,
rapport_dato Dato ,
berørt_leverandør tekst,
alvorlighetsgrad flyte,
) ;
Spørringen ovenfor starter med å lage et tastefelt 'zero_day' som vil inneholde den definerte brukertypen.
Du vil legge merke til at create type-setningen følger et lignende format som tabelloppretting. Selv om dette er sant, tjener de forskjellige formål, og det ene kan være et bedre valg enn det andre.
MERK: Vurder ytelsesimplikasjonene før du velger en tabell fremfor en tilpasset type og omvendt.
Vi kan deretter sette inn data i tabellen ovenfor som vist:
Vi kan lage en tabell med typen cve_reports og sette inn eksempeldata som vist:
opprette tabellposter (id int,
cve_reports cve_reports,
primærnøkkel ( id )
) ;
Sett inn data
sette inn i poster ( id , cve_reports ) verdier ( 1 , { cve_nummer: 'CVE-2021-33852' , rapportdato: '2022-12-02' , berørt_leverandør: 'WordPress' , alvorlighetsgrad: 6.0 } ) ;
Vi kan deretter hente de tilførte dataene som:
Resulterende utgang
Konklusjon
Dette innlegget dekket det grunnleggende om å lage og bruke spesialdefinerte typer i Apache Cassandra. Vi diskuterte også hvordan du oppretter en tabell med egendefinerte typer og setter inn data i en egendefinert typekolonne.
Lykke til med koding!!