“Cassandra ci consente di definire tipi personalizzati in grado di contenere informazioni correlate in una tabella. Se non riesci a trovare un tipo per contenere il tipo di dati, è possibile utilizzare i tipi integrati per definire un altro tipo che cattura il layout desiderato.
È bene tenere presente che il tipo definito è limitato all'ambito dello spazio di chiavi su cui è stato creato. È possibile utilizzare la notazione punto per accedere a una tabella da un altro keypspace.
Questo post discuterà di come è possibile definire un tipo di utente utilizzando il comando tipo tipo."
Crea la sintassi del comando
Il comando seguente raffigura la sintassi del comando Crea tipo:
Crea tipo [se non esiste]
keyspace_name.type_name (
field_name cassandra_type [,]
[field_name cassandra_type] [,…]
);
Il comando supporta la clausola se esiste, che consente di annullare gli errori se il comando con un nome simile esiste nel tipo di destinazione.
Type_name deve includere un nome univoco conforme alle regole di denominazione di Cassandra.
Infine, puoi definire i campi per il tuo tipo e il rispettivo tipo CQL. Non utilizzare i campi contanti nei tipi personalizzati.
Esempio
L'esempio seguente mostra come definire un tipo personalizzato che contiene report CVE.
Drop Keyspace Se esiste zero_day;
Crea Keyspace Zero_Day
con replication =
'Class': 'SimpleStrategy',
'Replication_Factor': 1
;
Usa zero_day;
Crea type cve_reports (
Testo CVE_NUMBER,
Data report_date,
Testo interessato_vendor,
Gravità galleggia,
);
La query sopra inizia creando uno spazio chiave "zero_day" che conterrà il tipo di utente definito.
Noterai che l'istruzione Crea Type segue un formato simile alla creazione di tabelle. Sebbene questo sia vero, servono a scopi diversi e uno può essere una scelta migliore dell'altro.
NOTA: Considera le implicazioni delle prestazioni prima di scegliere una tabella su un tipo personalizzato e viceversa.
Possiamo quindi inserire dati nella tabella sopra come mostrato:
Possiamo creare una tabella con il tipo CVE_Reports e inserire i dati di esempio come mostrato:
Crea record di tabelle (
id int,
cve_reportts cve_reports,
Chiave primaria (ID)
);
Inserire i dati
Inserisci nei record (id, cve_reports) valori (1, cve_number: 'CVE-2021-33852', report_date: '2022-12-02', interessato_vendor: 'wordpress', gravità: 6.0);
Possiamo quindi recuperare i dati aggiunti come:
Seleziona * dai record;
Output risultante
Conclusione
Questo post ha riguardato le basi della creazione e dell'utilizzo di tipi definiti da Apache Cassandra. Abbiamo anche discusso di come creare una tabella con tipi personalizzati e inserire i dati in una colonna di tipo personalizzato.
Codice felice!!