„Cassandra nám umožňuje definovat vlastní typy, které mohou obsahovat související informace v tabulce. Pokud nemůžete najít typ pro uložení vašeho typu dat, můžete použít vestavěné typy k definování jiného typu, který zachytí vaše požadované rozvržení.
Je dobré mít na paměti, že definovaný typ je omezen rozsahem klíčového prostoru, na kterém je vytvořen. Pro přístup k tabulce z jiného keypspace můžete použít tečkovou notaci.
Tento příspěvek pojednává o tom, jak můžete definovat typ uživatele pomocí příkazu CREATE TYPE.'
Vytvořit syntaxi příkazu typu
Následující příkaz znázorňuje syntaxi příkazu create type:
VYTVOŘIT TYP [ POKUD NEEXISTUJE ]
keyspace_name.type_name (
název_pole cassandra_type [ , ]
[ název_pole cassandra_type ] [ ,... ]
) ;
Příkaz podporuje klauzuli IF EXISTS, která vám umožňuje zrušit chyby, pokud v cílovém typu existuje příkaz s podobným názvem.
Type_name musí obsahovat jedinečný název, který odpovídá Cassandřiným pravidlům pro pojmenování.
Nakonec můžete definovat pole pro váš typ a jejich příslušný typ CQL. Nepoužívejte pole čítače ve vlastních typech.
Příklad
Následující příklad ukazuje, jak definovat vlastní typ, který obsahuje sestavy CVE.
zahodit klíčový prostor -li existuje zero_day;vytvořit klíčový prostor zero_day
s replikací = {
'třída' : 'SimpleStrategy' ,
'replikační_faktor' : 1
} ;
použijte zero_day;
vytvořit typ cve_reports (
text cve_number,
datum_přehledu datum ,
text ovlivněného_vendor,
plovák závažnosti,
) ;
Výše uvedený dotaz začíná vytvořením klíčového prostoru „zero_day“, který bude obsahovat definovaný typ uživatele.
Všimnete si, že příkaz create má podobný formát jako vytváření tabulky. I když je to pravda, slouží jiným účelům a jeden může být lepší volbou než druhý.
POZNÁMKA: Před výběrem tabulky před vlastním typem zvažte důsledky pro výkon a naopak.
Poté můžeme vložit data do výše uvedené tabulky, jak je znázorněno:
Můžeme vytvořit tabulku s typem cve_reports a vložit ukázková data, jak je znázorněno:
vytvářet tabulkové záznamy (id int,
cve_reports cve_reports,
primární klíč ( id )
) ;
Vložit data
vložit do záznamů ( id , cve_reports ) hodnoty ( 1 , { cve_number: 'CVE-2021-33852' , datum_přehledu: '2022-12-02' , dotčený_vendor: 'WordPress' , vážnost: 6.0 } ) ;
Přidaná data pak můžeme načíst jako:
Výsledný výstup
Závěr
Tento příspěvek pokryl základy vytváření a používání vlastních definovaných typů v Apache Cassandra. Také jsme probrali, jak vytvořit tabulku s vlastními typy a vložit data do sloupce vlastního typu.
Šťastné kódování!!