Cassandra Select

Cassandra Select

Apache Cassandra è uno dei leader dei database NoSQL a grande colonna. Inoltre, è una soluzione gratuita e open source per i dati senza schema. Di conseguenza, Cassandra è una scelta popolare in ambienti che devono gestire dati su scala estesa con latenza minima e caratteristiche ad alta disponibilità.

Cassandra fornisce al linguaggio di query di Cassandra un potente linguaggio di query per interagire con Cassandra Keyspaces. CQL è strettamente simile a SQL e fornisce comandi e sintassi simili per operazioni simili. Ciò rende Cassandra facilmente accessibile dagli sviluppatori dai database relazionali.

In questo tutorial, impareremo come utilizzare il comando seleziona in cassandra. Il comando Select ci consente di recuperare i record da una tabella Cassandra.

Immerciamoci.

Sintassi del comando

Il comando segue una sintassi relativamente semplice. La sintassi del comando è mostrata nel seguente codice di snippet:

Seleziona * | Select_Expression | Partizione distinta
Da [keyspace_name.] table_name
[Dove Partition_Value
[E clustering_filters
[E static_filters]]
[Ordine di pk_column_name asc | desc]
[Limite N]
[Consenti il ​​filtro]

Il comando restituisce quindi le righe specificate dalla tabella di destinazione:

Nota: poiché Cassandra è progettato per gestire dati su larga scala, non si consiglia di recuperare tutte le righe da una tabella come faresti in un database relazionale.

Dati di esempio

Prima di imparare a selezionare i dati da una tabella utilizzando l'istruzione SELECT, impostiamo un dati di esempio per illustrazione.

Inizia creando uno spazio di chiavi di esempio:

Crea KeySpace LinuxHint con replication = 'class': 'SimpleStrategy', 'Replication_Factor': 3,;

Passa lo spazio di chiavi corrente utilizzando il comando seguente:

Usa Linuxhint;

Crea una tabella di esempio usando il seguente comando:

CQLSH: LinuxHint> Crea utenti tabella (ID INT, testo nome utente, testo e -mail, INT attivo, chiave primaria (ID));

Aggiungi un dati di esempio come mostrato:

CQLSH: LinuxHint> Inserisci in utenti (ID, nome utente, e -mail, attivo) valori (0, 'user1', '[email protected] ', 1);
CQLSH: Linuxhint> Inserisci in utenti (ID, nome utente, e -mail, attivo) valori (1, 'user2', '[email protected] ', 1);
CQLSH: LinuxHint> Inserisci in utenti (ID, nome utente, e -mail, attivo) Valori (2, 'user3', '[email protected] ', 0);
CQLSH: LinuxHint> Inserisci in utenti (ID, nome utente, e -mail, attivo) Valori (3, 'user4', '[email protected] ', 0);
CQLSH: LinuxHint> Inserisci in utenti (ID, nome utente, e -mail, attivo) Valori (4, 'user5', '[email protected] ', 1);

Esempi

La sezione seguente fornisce gli esempi di esecuzione delle dichiarazioni di selezione comune in un cluster Cassandra.

Esempio 1: selezionare tutti i record

In Cassandra, possiamo selezionare tutti i record da una tabella usando la query come mostrato:

CQLSH: LinuxHint> Seleziona * dagli utenti;

Utilizziamo l'istruzione SELECT in questa query per selezionare tutte le colonne della tabella utente.

La query precedente dovrebbe restituire l'output come mostrato:

id | attivo | Email | nome utente
----+--------+---------------+----------
1 | 1 | [email protected] | utente2
0 | 1 | [email protected] | utente1
2 | 0 | [email protected] | utente3
4 | 1 | [email protected] | utente5
3 | 0 | [email protected] | utente4

NOTA: Come accennato, questo non è raccomandato per un set di dati di grandi dimensioni.

Esempio 2: selezionare colonne specifiche

Possiamo selezionare colonne specifiche da una tabella specificando le colonne come valori separati da virgola.

Ad esempio, per selezionare l'ID, il nome utente e le colonne e -mail, possiamo eseguire il comando seguente:

CQLSH: LinuxHint> Seleziona ID, e -mail, nome utente dagli utenti;

In questo caso, il comando dovrebbe restituire un output come segue:

id | Email | nome utente
----+---------------+----------
1 | [email protected] | utente2
0 | [email protected] | utente1
2 | [email protected] | utente3
4 | [email protected] | utente5
3 | [email protected] | utente4
(5 file)

Esempio 3: usando gli alias di colonna

Per rendere l'output più leggibile, possiamo utilizzare gli alias della colonna che forniscono nomi personalizzati al risultato di output.

Per esempio:

CQLSH: LinuxHint> Seleziona ID come user_index, e -mail come email_address, nome utente come identificatore dagli utenti;

La parola chiave AS nella query consente di rinominare la colonna in un nome alias senza apportare modifiche permanenti alla tabella.

Ad esempio, la query precedente restituisce il risultato come:

user_index | email_address | identificatore
------------+---------------+------------
1 | [email protected] | utente2
0 | [email protected] | utente1
2 | [email protected] | utente3
4 | [email protected] | utente5
3 | [email protected] | utente4
(5 file)

Si noti che le colonne ID, e -mail e nome utente vengono rinominate rispettivamente in user_index, email_address e identificatore.

Esempio 4: limitare il numero di righe

Utilizzando l'opzione limite, possiamo anche limitare il numero di record restituiti dalla query selezionata. La clausola limite prende un numero intero che rappresenta il numero di righe da recuperare.

Ad esempio, per recuperare le prime tre righe, possiamo eseguire il seguente comando:

CQLSH: LinuxHint> Seleziona * dal limite degli utenti 3;

L'output risultante è il seguente:

id | attivo | Email | nome utente
----+--------+---------------+----------
1 | 1 | [email protected] | utente2
0 | 1 | [email protected] | utente1
2 | 0 | [email protected] | utente3
(3 file)

Esempio 5: Filtraggio dei dati

Possiamo anche recuperare i dati che corrispondono a una condizione specifica usando la clausola. Questo ci consente di specificare una condizione che restituisce vero/falso e restituisce i valori di corrispondenza.

Ad esempio, per recuperare tutte le righe in cui il valore della colonna attiva è uguale a 1, possiamo fare quanto segue:

CQLSH: LinuxHint> Seleziona * Da utenti dove attivo = 1 Consenti il ​​filtro;

La query precedente dovrebbe restituire solo le righe in cui la colonna attiva = 1.

id | attivo | Email | nome utente
----+--------+---------------+----------
1 | 1 | [email protected] | utente2
0 | 1 | [email protected] | utente1
4 | 1 | [email protected] | utente5
(3 file)

NOTA: Il comando di filtro consente a Cassandra di utilizzare le funzionalità di filtraggio dei dati.

RACCOMANDAZIONE: Utilizzare solo il filtro consentire solo a scopo di sviluppo.

Conclusione

In questo articolo, hai appreso i fondamenti della selezione dei dati da una tabella Cassandra utilizzando l'istruzione CQL Select.

Grazie per aver letto!