DMListruzioni (linguaggio di manipolazione dei dati) in Amazon Keyspaces - Amazon Keyspaces (per Apache Cassandra)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

DMListruzioni (linguaggio di manipolazione dei dati) in Amazon Keyspaces

Data manipulation language (DML) è l'insieme di istruzioni Cassandra Query Language (CQL) che usi per gestire i dati nelle tabelle Amazon Keyspaces (per Apache Cassandra). DMLLe istruzioni vengono utilizzate per aggiungere, modificare o eliminare dati in una tabella.

DMLLe istruzioni vengono utilizzate anche per interrogare i dati in una tabella. (Tieni presente che CQL non supporta i join o le sottoquery).

SELECT

Usa un'SELECTistruzione per interrogare i dati.

Sintassi

select_statement ::= SELECT [ JSON ] ( select_clause | '*' ) FROM table_name [ WHERE 'where_clause' ] [ ORDER BY 'ordering_clause' ] [ LIMIT (integer | bind_marker) ] [ ALLOW FILTERING ] select_clause ::= selector [ AS identifier ] ( ',' selector [ AS identifier ] ) selector ::= column_name | term | CAST '(' selector AS cql_type ')' | function_name '(' [ selector ( ',' selector )* ] ')' where_clause ::= relation ( AND relation )* relation ::= column_name operator term TOKEN operator ::= '=' | '<' | '>' | '<=' | '>=' | IN | CONTAINS | CONTAINS KEY ordering_clause ::= column_name [ ASC | DESC ] ( ',' column_name [ ASC | DESC ] )*

Examples (Esempi)

SELECT name, id, manager_id FROM "myGSGKeyspace".employees_tbl ; SELECT JSON name, id, manager_id FROM "myGSGKeyspace".employees_tbl ;

Per una tabella che mappa i tipi JSON di dati con codifica ai tipi di dati di Amazon Keyspaces, consulta. JSONcodifica dei tipi di dati di Amazon Keyspaces

Utilizzo della parola chiave IN

La IN parola chiave specifica l'uguaglianza per uno o più valori. Può essere applicata alla chiave di partizione e alla colonna di clustering. I risultati vengono restituiti nell'ordine in cui le chiavi sono presentate nell'SELECTistruzione.

Examples (Esempi)

SELECT * from mykeyspace.mytable WHERE primary.key1 IN (1,2) and clustering.key1 = 2; SELECT * from mykeyspace.mytable WHERE primary.key1 IN (1,2) and clustering.key1 <= 2; SELECT * from mykeyspace.mytable WHERE primary.key1 = 1 and clustering.key1 IN (1, 2); SELECT * from mykeyspace.mytable WHERE primary.key1 <= 2 and clustering.key1 IN (1, 2) ALLOW FILTERING;

Per ulteriori informazioni sulla IN parola chiave e su come Amazon Keyspaces elabora l'istruzione, consulta. Utilizzo dell'INoperatore con l'SELECTistruzione in Amazon Keyspaces

Ordinamento dei risultati

La ORDER BY clausola specifica l'ordinamento dei risultati restituiti. Prende come argomenti un elenco di nomi di colonna insieme all'ordinamento per ogni colonna. È possibile specificare le colonne di raggruppamento solo nelle clausole di ordinamento. Le colonne non raggruppate non sono consentite. Le opzioni di ordinamento sono ASC per l'ordinamento crescente e DESC per l'ordinamento decrescente. Se l'ordinamento viene omesso, viene utilizzato l'ordinamento predefinito della colonna di raggruppamento. Per i possibili tipi di ordinamento, vedere. Ordinazione dei risultati in Amazon Keyspaces

Esempio

SELECT name, id, division, manager_id FROM "myGSGKeyspace".employees_tbl WHERE id = '012-34-5678' ORDER BY division;

Quando si utilizza ORDER BY con la IN parola chiave, i risultati vengono ordinati all'interno di una pagina. Il riordino completo con impaginazione disattivata non è supportato.

TOKEN

È possibile applicare la TOKEN funzione alla PARTITION KEY colonna e alle clausole. SELECT WHERE Con la TOKEN funzione, Amazon Keyspaces restituisce le righe in base al valore del token mappato di PARTITION_KEY anziché al valore di. PARTITION KEY

TOKENle relazioni non sono supportate con la IN parola chiave.

Examples (Esempi)

SELECT TOKEN(id) from my_table; SELECT TOKEN(id) from my_table WHERE TOKEN(id) > 100 and TOKEN(id) < 10000;

TTLfunzione

È possibile utilizzare la TTL funzione con l'SELECTistruzione per recuperare il tempo di scadenza in secondi memorizzato per una colonna. Se non è impostato alcun TTL valore, la funzione restituiscenull.

Esempio

SELECT TTL(my_column) from my_table;

La TTL funzione non può essere utilizzata su colonne a celle multiple come le raccolte.

Funzione WRITETIME

È possibile utilizzare la WRITETIME funzione con l'SELECTistruzione per recuperare il timestamp archiviato come metadati per il valore di una colonna solo se la tabella utilizza timestamp sul lato client. Per ulteriori informazioni, consulta Utilizzo di timestamp lato client in Amazon Keyspaces.

SELECT WRITETIME(my_column) from my_table;

La WRITETIME funzione non può essere utilizzata su colonne a celle multiple come le raccolte.

Nota

Per motivi di compatibilità con il comportamento consolidato dei driver Cassandra, le politiche di autorizzazione basate su tag non vengono applicate quando si eseguono operazioni sulle tabelle di sistema utilizzando API chiamate Cassandra Query Language (CQL) tramite i driver Cassandra e gli strumenti di sviluppo. Per ulteriori informazioni, consulta Accesso alle risorse Amazon Keyspaces basato su tag.

INSERT

Utilizzate l'INSERTistruzione per aggiungere una riga a una tabella.

Sintassi

insert_statement ::= INSERT INTO table_name ( names_values | json_clause ) [ IF NOT EXISTS ] [ USING update_parameter ( AND update_parameter )* ] names_values ::= names VALUES tuple_literal json_clause ::= JSON string [ DEFAULT ( NULL | UNSET ) ] names ::= '(' column_name ( ',' column_name )* ')'

Esempio

INSERT INTO "myGSGKeyspace".employees_tbl (id, name, project, region, division, role, pay_scale, vacation_hrs, manager_id) VALUES ('012-34-5678','Russ','NightFlight','US','Engineering','IC',3,12.5, '234-56-7890') ;

Aggiorna i parametri

INSERTsupporta i seguenti valori comeupdate_parameter:

  • TTL— Un valore temporale in secondi. Il valore massimo configurabile è 630.720.000 secondi, che equivale a 20 anni.

  • TIMESTAMP— Un bigint valore che rappresenta il numero di microsecondi dall'ora base standard nota comeepoch: 1° gennaio 1970 alle GMT 00:00. Un timestamp in Amazon Keyspaces deve essere compreso tra 2 giorni passati e 5 minuti futuri.

Esempio

INSERT INTO my_table (userid, time, subject, body, user) VALUES (B79CB3BA-745E-5D9A-8903-4A02327A7E09, 96a29100-5e25-11ec-90d7-b5d91eceda0a, 'Message', 'Hello','205.212.123.123') USING TTL 259200;

JSONsupporto

Per una tabella che mappa i tipi JSON di dati con codifica ai tipi di dati di Amazon Keyspaces, consulta. JSONcodifica dei tipi di dati di Amazon Keyspaces

Puoi usare la JSON parola chiave per inserire una mappa con JSON codifica -codifica come riga singola. Per le colonne che esistono nella tabella ma sono omesse nell'istruzione JSON insert, utilizzate DEFAULT UNSET per preservare i valori esistenti. DEFAULT NULLUtilizzatelo per scrivere un NULL valore in ogni riga di colonne omesse e sovrascrivere i valori esistenti (si applicano le tariffe di scrittura standard). DEFAULT NULLè l'opzione predefinita.

Esempio

INSERT INTO "myGSGKeyspace".employees_tbl JSON '{"id":"012-34-5678", "name": "Russ", "project": "NightFlight", "region": "US", "division": "Engineering", "role": "IC", "pay_scale": 3, "vacation_hrs": 12.5, "manager_id": "234-56-7890"}';

Se i JSON dati contengono chiavi duplicate, Amazon Keyspaces memorizza l'ultimo valore per la chiave (simile a Apache Cassandra). Nell'esempio seguente, dove si trova la chiave duplicataid, viene utilizzato il valore. 234-56-7890

Esempio

INSERT INTO "myGSGKeyspace".employees_tbl JSON '{"id":"012-34-5678", "name": "Russ", "project": "NightFlight", "region": "US", "division": "Engineering", "role": "IC", "pay_scale": 3, "vacation_hrs": 12.5, "id": "234-56-7890"}';

UPDATE

Utilizzate l'UPDATEistruzione per modificare una riga in una tabella.

Sintassi

update_statement ::= UPDATE table_name [ USING update_parameter ( AND update_parameter )* ] SET assignment ( ',' assignment )* WHERE where_clause [ IF ( EXISTS | condition ( AND condition )*) ] update_parameter ::= ( integer | bind_marker ) assignment ::= simple_selection '=' term | column_name '=' column_name ( '+' | '-' ) term | column_name '=' list_literal '+' column_name simple_selection ::= column_name | column_name '[' term ']' | column_name '.' `field_name condition ::= simple_selection operator term

Esempio

UPDATE "myGSGKeyspace".employees_tbl SET pay_scale = 5 WHERE id = '567-89-0123' AND division = 'Marketing' ;

Per incrementare acounter, utilizzare la seguente sintassi. Per ulteriori informazioni, consulta Contatori.

UPDATE ActiveUsers SET counter = counter + 1 WHERE user = A70FE1C0-5408-4AE3-BE34-8733E5K09F14 AND action = 'click';

Aggiorna i parametri

UPDATEsupporta i seguenti valori comeupdate_parameter:

  • TTL— Un valore temporale in secondi. Il valore massimo configurabile è 630.720.000 secondi, che equivale a 20 anni.

  • TIMESTAMP— Un bigint valore che rappresenta il numero di microsecondi dall'ora base standard nota comeepoch: 1° gennaio 1970 alle GMT 00:00. Un timestamp in Amazon Keyspaces deve essere compreso tra 2 giorni passati e 5 minuti futuri.

Esempio

UPDATE my_table (userid, time, subject, body, user) VALUES (B79CB3BA-745E-5D9A-8903-4A02327A7E09, 96a29100-5e25-11ec-90d7-b5d91eceda0a, 'Message', 'Hello again','205.212.123.123') USING TIMESTAMP '2022-11-03 13:30:54+0400';

DELETE

Usa l'DELETEistruzione per rimuovere una riga da una tabella.

Sintassi

delete_statement ::= DELETE [ simple_selection ( ',' simple_selection ) ] FROM table_name [ USING update_parameter ( AND update_parameter )* ] WHERE where_clause [ IF ( EXISTS | condition ( AND condition )*) ] simple_selection ::= column_name | column_name '[' term ']' | column_name '.' `field_name condition ::= simple_selection operator term

Dove:

  • table_nameè la tabella che contiene la riga che si desidera eliminare.

Esempio

DELETE manager_id FROM "myGSGKeyspace".employees_tbl WHERE id='789-01-2345' AND division='Executive' ;

DELETEsupporta il seguente valore comeupdate_parameter:

  • TIMESTAMP— Un bigint valore che rappresenta il numero di microsecondi trascorsi dall'ora base standard nota comeepoch: 1° gennaio 1970 alle GMT 00:00.