

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à.

# Istruzioni DDL (linguaggio di definizione dei dati) in Amazon Keyspaces
<a name="cql.ddl"></a>

Il *linguaggio di definizione dei dati* (DDL) è l'insieme di istruzioni Cassandra Query Language (CQL) che usi per gestire le strutture di dati in Amazon Keyspaces (per Apache Cassandra), come keyspace e tabelle. Utilizzi DDL per creare queste strutture di dati, modificarle dopo la creazione e rimuoverle quando non sono più in uso. Amazon Keyspaces esegue operazioni DDL in modo asincrono. Per ulteriori informazioni su come confermare il completamento di un'operazione asincrona, consulta. [Creazione ed eliminazione asincrone di spazi chiave e tabelle](functional-differences.md#functional-differences.table-keyspace-management)

 Sono supportate le seguenti istruzioni DDL: 
+  [CREA KEYSPACE](cql.ddl.keyspace.md#cql.ddl.keyspace.create) 
+  [MODIFICA KEYSPACE](cql.ddl.keyspace.md#cql.ddl.keyspace.alter) 
+  [ELIMINA KEYSPACE](cql.ddl.keyspace.md#cql.ddl.keyspace.drop) 
+  [USA](cql.ddl.keyspace.md#cql.ddl.keyspace.use) 
+  [CREA TABELLA](cql.ddl.table.md#cql.ddl.table.create) 
+  [ALTER TABLE](cql.ddl.table.md#cql.ddl.table.alter) 
+  [RIPRISTINA TABELLA](cql.ddl.table.md#cql.ddl.table.restore) 
+  [DROP TABLE](cql.ddl.table.md#cql.ddl.table.drop) 
+  [CREA TIPO](cql.ddl.type.md#cql.ddl.type.create) 
+  [TIPO DI GOCCIA](cql.ddl.type.md#cql.ddl.type.drop) 

**Topics**
+ [Keyspaces](cql.ddl.keyspace.md)
+ [Tabelle](cql.ddl.table.md)
+ [Tipi definiti dall'utente () UDTs](cql.ddl.type.md)

# Keyspaces
<a name="cql.ddl.keyspace"></a>

Un *keyspace* raggruppa tabelle correlate rilevanti per una o più applicazioni. In termini di sistema di gestione di database relazionali (RDBMS), gli spazi chiave sono più o meno simili a database, tablespace o costrutti simili.

**Nota**  
In Apache Cassandra, i keyspace determinano il modo in cui i dati vengono replicati tra più nodi di storage. Tuttavia, Amazon Keyspaces è un servizio completamente gestito: i dettagli del relativo livello di storage vengono gestiti per tuo conto. Per questo motivo, gli spazi chiave in Amazon Keyspaces sono solo costrutti logici e non sono correlati allo storage fisico sottostante.

Per informazioni sui limiti e i vincoli di quota per gli spazi chiave di Amazon Keyspaces, consulta. [Quote per Amazon Keyspaces (per Apache Cassandra)](quotas.md)

**Topics**
+ [CREA KEYSPACE](#cql.ddl.keyspace.create)
+ [ALTERA LO SPAZIO DEI TASTI](#cql.ddl.keyspace.alter)
+ [RILASCIA LO SPAZIO CHIAVE](#cql.ddl.keyspace.drop)
+ [USE](#cql.ddl.keyspace.use)

## CREA KEYSPACE
<a name="cql.ddl.keyspace.create"></a>

Usa l'`CREATE KEYSPACE`istruzione per creare un nuovo keyspace.

**Sintassi**

```
create_keyspace_statement ::= 
    CREATE KEYSPACE [ IF NOT EXISTS ] keyspace_name
    WITH options
```

Dove:
+ `keyspace_name`è il nome dello spazio chiave da creare.
+ *le opzioni* sono una o più delle seguenti:
  + `REPLICATION`— Una mappa che indica la strategia di replica per il keyspace:
    + `SingleRegionStrategy`— Per uno spazio chiave a regione singola. (Obbligatorio)
    + `NetworkTopologyStrategy`— Specificarne almeno due. Regioni AWS Il fattore di replica per ogni regione è tre. (Facoltativo)
  + `DURABLE_WRITES`— Le scritture su Amazon Keyspaces sono sempre durevoli, quindi questa opzione non è richiesta. Tuttavia, se specificato, il valore deve essere`true`.
  + `TAGS`— Un elenco di tag di coppia chiave-valore da allegare alla risorsa al momento della creazione. (Facoltativo)

**Esempio**

Create uno spazio chiave come segue.

```
CREATE KEYSPACE my_keyspace
    WITH REPLICATION = {'class': 'SingleRegionStrategy'} and TAGS ={'key1':'val1', 'key2':'val2'} ;
```

Per creare uno spazio chiave multiregionale, specificatene `NetworkTopologyStrategy` e includetene almeno due. Regioni AWS Il fattore di replica per ogni regione è tre.

```
CREATE KEYSPACE my_keyspace
    WITH REPLICATION = {'class':'NetworkTopologyStrategy', 'us-east-1':'3', 'ap-southeast-1':'3','eu-west-1':'3'};
```

## ALTERA LO SPAZIO DEI TASTI
<a name="cql.ddl.keyspace.alter"></a>

*È possibile utilizzare l'`ALTER KEYSPACE WITH`istruzione per le seguenti opzioni*
+ `REPLICATION`— Utilizzate questa opzione per aggiungere una nuova Regione AWS replica a un keyspace. È possibile aggiungere una nuova regione a una regione singola o a uno spazio chiave multiregione. 
+ `TAGS`— Utilizzate questa opzione per aggiungere o rimuovere tag da uno spazio chiave.

**Sintassi**

```
alter_keyspace_statement ::= 
    ALTER KEYSPACE keyspace_name
    WITH options
```

Dove:
+ `keyspace_name`è il nome dello spazio chiave da modificare.
+ *le opzioni* sono una delle seguenti:
  + `ADD | DROP TAGS`— Un elenco di tag di coppia chiave-valore da aggiungere o rimuovere dallo spazio delle chiavi. 
  + `REPLICATION`— Una mappa che indica la strategia di replica per il keyspace; 
    + `class`— `NetworkTopologyStrategy` definisce lo spazio chiave come uno spazio chiave multiregionale.
    + `region`— Specificarne uno aggiuntivo Regione AWS per questo keyspace. Il fattore di replica per ogni regione è tre.
    + `CLIENT_SIDE_TIMESTAMPS`— L'impostazione predefinita è`DISABLED`. È possibile modificare lo stato solo in`ENABLED`.

**Esempi**

Modificate un keyspace come mostrato nell'esempio seguente per aggiungere tag.

```
ALTER KEYSPACE my_keyspace ADD TAGS {'key1':'val1', 'key2':'val2'};
```

Per aggiungere una terza regione a uno spazio chiave multiregionale, è possibile utilizzare la seguente istruzione.

```
ALTER KEYSPACE my_keyspace
WITH REPLICATION = {
    'class': 'NetworkTopologyStrategy',
    'us-east-1': '3',
    'us-west-2': '3',
    'us-west-1': '3'
} AND CLIENT_SIDE_TIMESTAMPS = {'status': 'ENABLED'};
```

## RILASCIA LO SPAZIO CHIAVE
<a name="cql.ddl.keyspace.drop"></a>

Utilizzate l'`DROP KEYSPACE`istruzione per rimuovere uno spazio chiave, inclusi tutti i suoi contenuti, ad esempio le tabelle.

**Sintassi**

```
drop_keyspace_statement ::= 
    DROP KEYSPACE [ IF EXISTS ] keyspace_name
```

Dove:
+ *keyspace\$1name è il nome* dello spazio chiave da eliminare.

**Esempio**

```
DROP KEYSPACE my_keyspace;
```

## USE
<a name="cql.ddl.keyspace.use"></a>

Utilizzate l'`USE`istruzione per definire lo spazio chiave corrente. Ciò consente di fare riferimento a oggetti associati a uno spazio chiave specifico, ad esempio tabelle e tipi, senza utilizzare il nome completo che include il prefisso keyspace. 

**Sintassi**

```
use_statement ::= 
    USE keyspace_name
```

Dove:
+ *keyspace\$1name è il nome* del keyspace da utilizzare.

**Esempio**

```
USE my_keyspace;
```

# Tabelle
<a name="cql.ddl.table"></a>

Le *tabelle* sono le strutture di dati principali in Amazon Keyspaces. I dati in una tabella sono organizzati in righe e colonne. Un sottoinsieme di queste colonne viene utilizzato per determinare il partizionamento (e in ultima analisi il posizionamento dei dati) mediante la specificazione di una chiave di partizione.

Un altro set di colonne può essere definito in colonne di clustering, il che significa che possono partecipare come predicati all'esecuzione delle query. 

Per impostazione predefinita, vengono create nuove tabelle con capacità di throughput *su richiesta*. È possibile modificare la modalità di capacità per tabelle nuove ed esistenti. Per ulteriori informazioni sulle modalità di throughput read/write della capacità, vedere[Configura le modalità di read/write capacità in Amazon Keyspaces](ReadWriteCapacityMode.md). 

Per le tabelle in modalità provisioning, è possibile configurare in modo facoltativo. `AUTOSCALING_SETTINGS` Per ulteriori informazioni sulla scalabilità automatica di Amazon Keyspaces e sulle opzioni disponibili, consulta. [Configura il ridimensionamento automatico su una tabella esistente](autoscaling.configureTable.md)

Per informazioni sui limiti e i vincoli di quota per le tabelle Amazon Keyspaces, consulta. [Quote per Amazon Keyspaces (per Apache Cassandra)](quotas.md)

**Topics**
+ [CREATE TABLE](#cql.ddl.table.create)
+ [ALTER TABLE](#cql.ddl.table.alter)
+ [RIPRISTINARE LA TABELLA](#cql.ddl.table.restore)
+ [DROP TABLE](#cql.ddl.table.drop)

## CREATE TABLE
<a name="cql.ddl.table.create"></a>

Utilizzate l'`CREATE TABLE`istruzione per creare una nuova tabella.

 **Sintassi**

```
create_table_statement ::=  CREATE TABLE [ IF NOT EXISTS ] table_name
    '('
        column_definition 
        ( ',' column_definition )*
        [ ',' PRIMARY KEY '(' primary_key ')' ]
    ')' [ WITH table_options ]

column_definition      ::=  column_name cql_type [ FROZEN ][ STATIC ][ PRIMARY KEY]

primary_key            ::=  partition_key [ ',' clustering_columns ]

partition_key          ::=  column_name
                              | '(' column_name ( ',' column_name )* ')'

clustering_columns     ::=  column_name ( ',' column_name )*

table_options          ::=  [table_options]
                              | CLUSTERING ORDER BY '(' clustering_order ')' [ AND table_options ]
                              | cdc
                              | CUSTOM_PROPERTIES
                              | AUTOSCALING_SETTINGS
                              | default_time_to_live
                              | TAGS

clustering_order       ::=  column_name (ASC | DESC) ( ',' column_name (ASC | DESC) )*
```

Dove:
+ `table_name`è il nome della tabella da creare. Il nome completo include il prefisso keyspace. In alternativa, è possibile impostare lo spazio chiave corrente con l'`USE`istruzione keyspace.
+ `column_definition`è composto da quanto segue:
  +  *`column_name`*— Il nome della colonna.
  + `cql_type`— Un tipo di dati Amazon Keyspaces (vedi[Tipi di dati](cql.elements.md#cql.data-types)).
  + `FROZEN`— Indica questa colonna definita dall'utente o di tipo `collection` (ad esempio, `LIST``SET`, o`MAP`) come congelata. Una raccolta *congelata* viene serializzata in un unico valore immutabile e trattata come una. `BLOB` Per ulteriori informazioni, consulta [Tipi di raccolta](cql.elements.md#cql.data-types.collection).
  + `STATIC`— Indica questa colonna come statica. Le colonne statiche memorizzano i valori condivisi da tutte le righe della stessa partizione.
  + `PRIMARY KEY`— Indica questa colonna come chiave primaria della tabella.
+ `primary_key`è composto da quanto segue:
  + `partition_key`
  + `clustering_columns`
+ `partition_key`:
  + La chiave di partizione può essere una singola colonna o un valore composto da due o più colonne. La parte relativa alla chiave di partizione della chiave primaria è obbligatoria e determina in che modo Amazon Keyspaces archivia i dati. 
+ `clustering_columns`:
  + La parte opzionale della colonna di clustering della chiave primaria determina il modo in cui i dati vengono raggruppati e ordinati all'interno di ciascuna partizione. 
+ `table_options`sono costituite da quanto segue:
  + *`CLUSTERING ORDER BY`*— Il CLUSTERING ORDER predefinito su una tabella è composto dalle chiavi di raggruppamento nella direzione di ordinamento `ASC` (crescente). Specificalo per ignorare il comportamento di ordinamento predefinito. 
  +  *`cdc`*— Un valore booleano che specifica se Amazon Keyspaces crea un flusso CDC (change data capture) per la tabella. Il valore predefinito è `false`. Per specificare `view type` quando abilitare uno stream, imposta il with. `cdc_specification` `CUSTOM_PROPERTIES` 
  +  *`CUSTOM_PROPERTIES`*— Una mappa di impostazioni specifiche di Amazon Keyspaces.
    +  `capacity_mode`: specifica la modalità di capacità di velocità effettiva di lettura/scrittura per la tabella. Le opzioni sono `throughput_mode:PAY_PER_REQUEST` e `throughput_mode:PROVISIONED`. La modalità di capacità fornita richiede e come input. `read_capacity_units` `write_capacity_units` Il valore predefinito è `throughput_mode:PAY_PER_REQUEST`.
    +  `cdc_specification`: specifica il flusso `view_type` CDC. Le opzioni sono:
      + `NEW_AND_OLD_IMAGES`— entrambe le versioni della riga, prima e dopo la modifica. Questa è l’impostazione predefinita.
      + `NEW_IMAGE`— la versione della riga dopo la modifica.
      + `OLD_IMAGE`— la versione della riga prima della modifica.
      + `KEYS_ONLY`— le chiavi di partizione e di clustering della riga che è stata modificata.

      Per ulteriori informazioni sugli stream CDC, vedere. [Utilizzo di flussi di acquisizione dati di modifica (CDC) in Amazon Keyspaces](cdc.md) Per alcuni esempi di codice, consultare [Abilita uno stream CDC durante la creazione di una nuova tabella in Amazon Keyspaces](keyspaces-enable-cdc-new-table.md).
    +  `client_side_timestamps`: specifica se i timestamp lato client sono abilitati o disabilitati per la tabella. Le opzioni sono `{'status': 'enabled'}` e `{'status': 'disabled'}`. Se non è specificato, l'impostazione predefinita è. `status:disabled` Dopo aver abilitato i timestamp lato client per una tabella, questa impostazione non può essere disabilitata. 
    +  `encryption_specification`: specifica le opzioni di crittografia per la crittografia a riposo. Se non è specificato, l'impostazione predefinita è`encryption_type:AWS_OWNED_KMS_KEY`. L'opzione di crittografia la chiave gestita dal cliente richiede la AWS KMS chiave in formato Amazon Resource Name (ARN) come input::`kms_key_identifier:ARN`. `kms_key_identifier:ARN` 
    +  `point_in_time_recovery`: specifica se il point-in-time ripristino è abilitato o disabilitato per la tabella. Le opzioni sono `status:enabled` e `status:disabled`. Se non è specificato, l'impostazione predefinita è`status:disabled`.
    + `replica_updates`: specifica le impostazioni di una tabella multiarea specifiche di un. Regione AWS Per una tabella con più regioni, è possibile configurare la capacità di lettura della tabella in modo diverso per. Regione AWSÈ possibile farlo configurando i seguenti parametri. Per maggiori informazioni ed esempi, consulta [Crea una tabella multiregionale in modalità provisioning con scalabilità automatica in Amazon Keyspaces](tables-mrr-create-provisioned.md).
      + `region`— La replica Regione AWS della tabella con le seguenti impostazioni:
        + `read_capacity_units`
    +  `TTL`: abilita le impostazioni personalizzate Time to Live per la tabella. Per abilitare, usa`status:enabled`. Il valore predefinito è `status:disabled`. Dopo averlo `TTL` abilitato, non puoi disabilitarlo per la tabella.
  + `AUTOSCALING_SETTINGS`include le seguenti impostazioni opzionali per le tabelle in modalità provisioning. Per maggiori informazioni ed esempi, consulta [Crea una nuova tabella con ridimensionamento automatico](autoscaling.createTable.md).
    + `provisioned_write_capacity_autoscaling_update`:
      + `autoscaling_disabled`— Per abilitare la scalabilità automatica per la capacità di scrittura, impostare il valore su. `false` Il valore predefinito è `true`. (Facoltativo)
      + `minimum_units`— Il livello minimo di velocità di scrittura che la tabella dovrebbe essere sempre pronta a supportare. Il valore deve essere compreso tra 1 e la quota massima di throughput al secondo prevista per l'account (40.000 per impostazione predefinita).
      + `maximum_units`— Il livello massimo di velocità di scrittura che la tabella dovrebbe essere sempre pronta a supportare. Il valore deve essere compreso tra 1 e la quota massima di throughput al secondo prevista per l'account (40.000 per impostazione predefinita).
      + `scaling_policy`— Amazon Keyspaces supporta la politica di tracciamento degli obiettivi. L'obiettivo di auto scaling è la capacità di scrittura assegnata alla tabella.
        + `target_tracking_scaling_policy_configuration`— Per definire la politica di tracciamento del target, è necessario definire il valore target. Per ulteriori informazioni sul tracciamento del target e sui periodi di cooldown, consulta [Target Tracking Scaling Policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) nella *Application Auto Scaling* User Guide. 
          + `target_value`— Il tasso di utilizzo previsto della tabella. La scalabilità automatica di Amazon Keyspaces assicura che il rapporto tra capacità consumata e capacità fornita rimanga pari o vicino a questo valore. `target_value` viene definito in percentuale. Un doppio tra 20 e 90. (Obbligatorio)
          + `scale_in_cooldown`— Un periodo di recupero in secondi tra le attività di ridimensionamento che consente alla tabella di stabilizzarsi prima che inizi un'altra scala di attività. Se non viene fornito alcun valore, il valore predefinito è 0. (Facoltativo)
          + `scale_out_cooldown`— Un periodo di recupero in secondi tra le attività di ridimensionamento che consente alla tabella di stabilizzarsi prima che inizi un'altra attività di scalabilità orizzontale. Se non viene fornito alcun valore, il valore predefinito è 0. (Facoltativo)
          + `disable_scale_in`: A `boolean` che specifica se `scale-in` è disabilitato o abilitato per la tabella. Questo parametro è disabilitato per impostazione predefinita. Per attivarlo`scale-in`, imposta il `boolean` valore su`FALSE`. Ciò significa che la capacità viene automaticamente ridotta per una tabella per tuo conto. (Facoltativo) 
    + `provisioned_read_capacity_autoscaling_update`:
      + `autoscaling_disabled`— Per abilitare la scalabilità automatica per la capacità di lettura, impostare il valore su. `false` Il valore predefinito è `true`. (Facoltativo)
      + `minimum_units`— Il livello minimo di velocità effettiva che la tabella dovrebbe essere sempre pronta a supportare. Il valore deve essere compreso tra 1 e la quota massima di throughput al secondo prevista per l'account (40.000 per impostazione predefinita).
      + `maximum_units`— Il livello massimo di velocità effettiva che la tabella dovrebbe essere sempre pronta a supportare. Il valore deve essere compreso tra 1 e la quota massima di throughput al secondo prevista per l'account (40.000 per impostazione predefinita).
      + `scaling_policy`— Amazon Keyspaces supporta la politica di tracciamento degli obiettivi. L'obiettivo della scalabilità automatica è la capacità di lettura assegnata alla tabella.
        + `target_tracking_scaling_policy_configuration`— Per definire la politica di tracciamento del target, è necessario definire il valore target. Per ulteriori informazioni sul tracciamento del target e sui periodi di cooldown, consulta [Target Tracking Scaling Policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) nella *Application Auto Scaling* User Guide. 
          + `target_value`— Il tasso di utilizzo previsto della tabella. La scalabilità automatica di Amazon Keyspaces assicura che il rapporto tra capacità consumata e capacità fornita rimanga pari o vicino a questo valore. `target_value` viene definito in percentuale. Un doppio tra 20 e 90. (Obbligatorio)
          + `scale_in_cooldown`— Un periodo di recupero in secondi tra le attività di ridimensionamento che consente alla tabella di stabilizzarsi prima che inizi un'altra scala di attività. Se non viene fornito alcun valore, il valore predefinito è 0. (Facoltativo)
          + `scale_out_cooldown`— Un periodo di recupero in secondi tra le attività di ridimensionamento che consente alla tabella di stabilizzarsi prima che inizi un'altra attività di scalabilità orizzontale. Se non viene fornito alcun valore, il valore predefinito è 0. (Facoltativo)
          + `disable_scale_in`: A `boolean` che specifica se `scale-in` è disabilitato o abilitato per la tabella. Questo parametro è disabilitato per impostazione predefinita. Per attivarlo`scale-in`, imposta il `boolean` valore su`FALSE`. Ciò significa che la capacità viene automaticamente ridotta per una tabella per tuo conto. (Facoltativo) 
    + `replica_updates`: specifica le impostazioni di ridimensionamento automatico Regione AWS specifiche di una tabella multiregione. Per una tabella con più regioni, è possibile configurare la capacità di lettura della tabella in modo diverso per. Regione AWSÈ possibile farlo configurando i seguenti parametri. Per maggiori informazioni ed esempi, consulta [Aggiorna la capacità fornita e le impostazioni di ridimensionamento automatico per una tabella multiregionale in Amazon Keyspaces](tables-mrr-autoscaling.md).
      + `region`— La replica Regione AWS della tabella con le seguenti impostazioni:
        + `provisioned_read_capacity_autoscaling_update`
          + `autoscaling_disabled`— Per abilitare il ridimensionamento automatico della capacità di lettura della tabella, impostate il valore su. `false` Il valore predefinito è `true`. (Facoltativo) 
**Nota**  
Il ridimensionamento automatico per una tabella con più regioni deve essere abilitato o disabilitato per tutte le repliche della tabella.
          + `minimum_units`— Il livello minimo di velocità di lettura che la tabella dovrebbe essere sempre pronta a supportare. Il valore deve essere compreso tra 1 e la quota massima di throughput al secondo prevista per l'account (40.000 per impostazione predefinita).
          + `maximum_units`— Il livello massimo di velocità di lettura che la tabella dovrebbe essere sempre pronta a supportare. Il valore deve essere compreso tra 1 e la quota massima di throughput al secondo prevista per l'account (40.000 per impostazione predefinita).
          + `scaling_policy`— Amazon Keyspaces supporta la politica di tracciamento degli obiettivi. L'obiettivo della scalabilità automatica è la capacità di lettura assegnata alla tabella.
            + `target_tracking_scaling_policy_configuration`— Per definire la politica di tracciamento del target, è necessario definire il valore target. Per ulteriori informazioni sul tracciamento del target e sui periodi di cooldown, consulta [Target Tracking Scaling Policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) nella *Application Auto Scaling* User Guide. 
              + `target_value`— Il tasso di utilizzo previsto della tabella. La scalabilità automatica di Amazon Keyspaces assicura che il rapporto tra la capacità di lettura consumata e la capacità di lettura assegnata rimanga pari o vicino a questo valore. `target_value` viene definito in percentuale. Un doppio tra 20 e 90. (Obbligatorio)
              + `scale_in_cooldown`— Un periodo di recupero in secondi tra le attività di ridimensionamento che consente alla tabella di stabilizzarsi prima che inizi un'altra scala di attività. Se non viene fornito alcun valore, il valore predefinito è 0. (Facoltativo)
              + `scale_out_cooldown`— Un periodo di recupero in secondi tra le attività di ridimensionamento che consente alla tabella di stabilizzarsi prima che inizi un'altra attività di scalabilità orizzontale. Se non viene fornito alcun valore, il valore predefinito è 0. (Facoltativo)
              + `disable_scale_in`: A `boolean` che specifica se `scale-in` è disabilitato o abilitato per la tabella. Questo parametro è disabilitato per impostazione predefinita. Per attivarlo`scale-in`, imposta il `boolean` valore su`FALSE`. Ciò significa che la capacità di lettura viene automaticamente ridotta per una tabella per conto dell'utente. (Facoltativo) 
  + `default_time_to_live`— L'impostazione predefinita del Time to Live in secondi per il tavolo.
  + `TAGS`— Un elenco di tag di coppia chiave-valore da allegare alla risorsa al momento della creazione. 
  + `clustering_order`è composto da quanto segue:
    +  *`column_name`*— Il nome della colonna. 
    +  *`ASC | DESC`*— Imposta il modificatore di ordine ascendente (`ASC`) o discendente (`DESC`). Se non è specificato, l'ordine predefinito è ASC. 

**Esempio**

```
CREATE TABLE IF NOT EXISTS my_keyspace.my_table (
                                            id text,
                                            name text,
                                            region text,
                                            division text,
                                            project text,
                                            role text,
                                            pay_scale int,
                                            vacation_hrs float,
                                            manager_id text,
                                            PRIMARY KEY (id,division))
                                            WITH CUSTOM_PROPERTIES={
                                                'capacity_mode':{
                                                        'throughput_mode': 'PROVISIONED', 'read_capacity_units': 10, 'write_capacity_units': 20
                                                    },
                                                'point_in_time_recovery':{'status': 'enabled'},
                                                'encryption_specification':{
                                                        'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 
                                                        'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111'
                                                    }
                                            }
                                            AND CLUSTERING ORDER BY (division ASC) 
                                            AND TAGS={'key1':'val1', 'key2':'val2'}
                                            AND default_time_to_live = 3024000;
```

In una tabella che utilizza colonne di clustering, le colonne non raggruppate possono essere dichiarate statiche nella definizione della tabella. Per ulteriori informazioni sulle colonne statiche, vedere. [Stima del consumo di capacità per le colonne statiche in Amazon Keyspaces](static-columns.md)

**Esempio**

```
CREATE TABLE my_keyspace.my_table (
                                            id int,
                                            name text,
                                            region text,
                                            division text,
                                            project text STATIC,
                                            PRIMARY KEY (id,division));
```

È possibile creare una tabella con una colonna che utilizza un tipo definito dall'utente (UDT). La prima istruzione negli esempi crea un tipo, la seconda istruzione crea una tabella con una colonna che utilizza il tipo.

**Esempio**

```
CREATE TYPE my_keyspace."udt""N@ME" (my_field int);
CREATE TABLE my_keyspace.my_table (my_col1 int pri key, my_col2 "udt""N@ME");
```

## ALTER TABLE
<a name="cql.ddl.table.alter"></a>

Utilizzate l'`ALTER TABLE`istruzione per aggiungere nuove colonne, aggiungere tag o modificare le proprietà personalizzate della tabella.

**Sintassi**

```
alter_table_statement ::=  ALTER TABLE table_name    
 
        [ ADD ( column_definition | column_definition_list)  ] 
        [[ADD | DROP] TAGS {'key1':'val1', 'key2':'val2'}]            
        [ WITH table_options [ , ... ] ] ;
        
column_definition      ::=  column_name cql_type
```

Dove:
+ `table_name`è il nome della tabella da modificare.
+ `column_definition`è il nome della colonna e del tipo di dati da aggiungere.
+ `column_definition_list`è un elenco di colonne separate da virgole inserite tra parentesi.
+ `table_options`sono costituiti da quanto segue:
  + `AUTOSCALING_SETTINGS`include le impostazioni di ridimensionamento automatico opzionali per le tabelle predisposte. Per la sintassi e le descrizioni dettagliate, vedere. [CREATE TABLE](#cql.ddl.table.create) Per alcuni esempi, consulta [Configura il ridimensionamento automatico su una tabella esistente](autoscaling.configureTable.md).
  +  *`cdc`*— Un valore booleano che specifica se Amazon Keyspaces crea un flusso CDC (change data capture) per la tabella. Il valore predefinito è `false`. Per specificare `view type` quando abilitare uno stream, imposta il with. `cdc_specification` `CUSTOM_PROPERTIES` 
  +  *`CUSTOM_PROPERTIES`*— Una mappa di impostazioni specifiche per Amazon Keyspaces.
    +  `capacity_mode`: specifica la modalità di capacità di velocità effettiva di lettura/scrittura per la tabella. Le opzioni sono `throughput_mode:PAY_PER_REQUEST` e `throughput_mode:PROVISIONED`. La modalità di capacità fornita richiede e come input. `read_capacity_units` `write_capacity_units` Il valore predefinito è `throughput_mode:PAY_PER_REQUEST`.
    +  `cdc_specification`: specifica il flusso `view_type` CDC. Le opzioni sono:
      + `NEW_AND_OLD_IMAGES`— entrambe le versioni della riga, prima e dopo la modifica. Questa è l’impostazione predefinita.
      + `NEW_IMAGE`— la versione della riga dopo la modifica.
      + `OLD_IMAGE`— la versione della riga prima della modifica.
      + `KEYS_ONLY`— le chiavi di partizione e di clustering della riga che è stata modificata.

      Per ulteriori informazioni sugli stream CDC, vedere. [Utilizzo di flussi di acquisizione dati di modifica (CDC) in Amazon Keyspaces](cdc.md) Per alcuni esempi di codice, consultare [Abilita uno stream CDC per una tabella esistente in Amazon Keyspaces](keyspaces-enable-cdc-alter-table.md).
    +  `client_side_timestamps`: specifica se i timestamp lato client sono abilitati o disabilitati per la tabella. Le opzioni sono `{'status': 'enabled'}` e `{'status': 'disabled'}`. Se non è specificato, l'impostazione predefinita è. `status:disabled` Dopo aver abilitato i timestamp lato client per una tabella, questa impostazione non può essere disabilitata. 
    +  `encryption_specification`: specifica l'opzione di crittografia per la crittografia a riposo. Le opzioni sono `encryption_type:AWS_OWNED_KMS_KEY` e `encryption_type:CUSTOMER_MANAGED_KMS_KEY`. L'opzione di crittografia la chiave gestita dal cliente richiede la AWS KMS chiave in formato Amazon Resource Name (ARN) come input:. `kms_key_identifier:ARN` 
    +  `point_in_time_recovery`: specifica se il point-in-time ripristino è abilitato o disabilitato per la tabella. Le opzioni sono `status:enabled` e `status:disabled`. Il valore predefinito è `status:disabled`.
    + `replica_updates`: specifica le impostazioni Regione AWS specifiche di una tabella con più regioni. Per una tabella con più regioni, è possibile configurare la capacità di lettura della tabella in modo diverso per. Regione AWSÈ possibile farlo configurando i seguenti parametri. Per maggiori informazioni ed esempi, consulta [Aggiorna la capacità fornita e le impostazioni di ridimensionamento automatico per una tabella multiregionale in Amazon Keyspaces](tables-mrr-autoscaling.md).
      + `region`— La replica Regione AWS della tabella con le seguenti impostazioni:
        + `read_capacity_units` 
    +  `ttl`: abilita le impostazioni personalizzate Time to Live per la tabella. Per abilitare, usa`status:enabled`. Il valore predefinito è `status:disabled`. Dopo averlo `ttl` abilitato, non puoi disabilitarlo per la tabella.
+ `default_time_to_live`: l'impostazione predefinita del Time to Live in secondi per la tabella.
+ `TAGS`è un elenco di tag di coppia chiave-valore da allegare alla risorsa.

**Nota**  
Con ALTER TABLE, puoi modificare solo una singola proprietà personalizzata. Non è possibile combinare più di un comando ALTER TABLE nella stessa istruzione.

**Esempi**

L'istruzione seguente mostra come aggiungere una colonna a una tabella esistente.

```
ALTER TABLE mykeyspace.mytable ADD (ID int);
```

Questa istruzione mostra come aggiungere due colonne di raccolta a una tabella esistente: 
+ Una colonna di raccolta congelata `col_frozen_list` che contiene una raccolta congelata annidata
+ Una colonna di raccolta non congelata `col_map` che contiene una raccolta congelata annidata

```
ALTER TABLE my_Table ADD(col_frozen_list FROZEN<LIST<FROZEN<SET<TEXT>>>>, col_map MAP<INT, FROZEN<SET<INT>>>);
```

L'esempio seguente mostra come aggiungere una colonna che utilizza un tipo definito dall'utente (UDT) a una tabella.

```
ALTER TABLE my_keyspace.my_table ADD (my_column, my_udt;);
```

Per modificare la modalità di capacità di una tabella e specificare le unità di capacità di lettura e scrittura, è possibile utilizzare la seguente istruzione.

```
ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES={'capacity_mode':{'throughput_mode': 'PROVISIONED', 'read_capacity_units': 10, 'write_capacity_units': 20}};
```

L'istruzione seguente specifica una chiave KMS gestita dal cliente per la tabella.

```
ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES={     
              'encryption_specification':{ 
                      'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 
                      'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111'     
                  } 
         };
```

Per abilitare point-in-time il ripristino di una tabella, è possibile utilizzare la seguente istruzione.

```
ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES={'point_in_time_recovery': {'status': 'enabled'}};
```

Per impostare un valore Time to Live predefinito in secondi per una tabella, è possibile utilizzare la seguente istruzione.

```
ALTER TABLE my_table WITH default_time_to_live = 2592000;
```

Questa istruzione abilita le impostazioni Time to Live personalizzate per una tabella.

```
ALTER TABLE mytable WITH CUSTOM_PROPERTIES={'ttl':{'status': 'enabled'}};
```

## RIPRISTINARE LA TABELLA
<a name="cql.ddl.table.restore"></a>

Utilizzare l'`RESTORE TABLE`istruzione per ripristinare una tabella in un determinato momento. Questa istruzione richiede che point-in-time il ripristino sia abilitato su una tabella. Per ulteriori informazioni, consulta [Backup e ripristino dei dati con point-in-time ripristino per Amazon Keyspaces](PointInTimeRecovery.md).

**Sintassi**

```
restore_table_statement ::=  
    RESTORE TABLE restored_table_name FROM TABLE source_table_name 
                    [ WITH table_options [ , ... ] ];
```

Dove:
+ `restored_table_name`è il nome della tabella ripristinata.
+ `source_table_name`è il nome della tabella di origine.
+ `table_options`è composto da quanto segue:
  + `restore_timestamp`è l'ora del punto di ripristino in formato ISO 8601. Se non è specificato, viene utilizzato il timestamp corrente.
  +  *`CUSTOM_PROPERTIES`*— Una mappa di impostazioni specifiche per Amazon Keyspaces.
    +  `capacity_mode`: specifica la modalità di capacità di velocità effettiva di lettura/scrittura per la tabella. Le opzioni sono `throughput_mode:PAY_PER_REQUEST` e `throughput_mode:PROVISIONED`. La modalità di capacità fornita richiede e come input. `read_capacity_units` `write_capacity_units` L'impostazione predefinita è l'impostazione corrente della tabella di origine.
    +  `encryption_specification`: specifica l'opzione di crittografia per la crittografia a riposo. Le opzioni sono `encryption_type:AWS_OWNED_KMS_KEY` e `encryption_type:CUSTOMER_MANAGED_KMS_KEY`. L'opzione di crittografia la chiave gestita dal cliente richiede la AWS KMS chiave in formato Amazon Resource Name (ARN) come input:. `kms_key_identifier:ARN` Per ripristinare una tabella crittografata con una chiave gestita dal cliente su una tabella crittografata con un Chiave di proprietà di AWS, Amazon Keyspaces richiede l'accesso alla AWS KMS chiave della tabella di origine.
    +  `point_in_time_recovery`: specifica se il point-in-time ripristino è abilitato o disabilitato per la tabella. Le opzioni sono `status:enabled` e `status:disabled`. A differenza di quando si creano nuove tabelle, lo stato predefinito per le tabelle ripristinate è `status:enabled` dovuto al fatto che l'impostazione viene ereditata dalla tabella di origine. Per disabilitare PITR per le tabelle ripristinate, è necessario `status:disabled` impostarlo in modo esplicito.
    + `replica_updates`: specifica le impostazioni Regione AWS specifiche di una tabella multiregionale. Per una tabella con più regioni, è possibile configurare la capacità di lettura della tabella in modo diverso per. Regione AWSÈ possibile farlo configurando i seguenti parametri. 
      + `region`— La replica Regione AWS della tabella con le seguenti impostazioni:
        + `read_capacity_units` 
  + `AUTOSCALING_SETTINGS`include le impostazioni di ridimensionamento automatico opzionali per le tabelle predisposte. Per una sintassi e una descrizione dettagliate, vedere. [CREATE TABLE](#cql.ddl.table.create)
  + `TAGS`è un elenco di tag di coppia chiave-valore da allegare alla risorsa.

**Nota**  
Le tabelle eliminate possono essere ripristinate solo al momento dell'eliminazione.

**Esempio**

```
RESTORE TABLE mykeyspace.mytable_restored from table mykeyspace.my_table 
WITH restore_timestamp = '2020-06-30T04:05:00+0000'
AND custom_properties = {'point_in_time_recovery':{'status':'disabled'}, 'capacity_mode':{'throughput_mode': 'PROVISIONED', 'read_capacity_units': 10, 'write_capacity_units': 20}}
AND TAGS={'key1':'val1', 'key2':'val2'};
```

## DROP TABLE
<a name="cql.ddl.table.drop"></a>

Utilizzate l'`DROP TABLE`istruzione per rimuovere una tabella dallo spazio delle chiavi.

**Sintassi**

```
drop_table_statement ::=  
    DROP TABLE [ IF EXISTS ] table_name
```

Dove:
+ `IF EXISTS``DROP TABLE`impedisce di fallire se la tabella non esiste. (Facoltativo)
+ `table_name`è il nome della tabella da eliminare.

**Esempio**

```
DROP TABLE my_keyspace.my_table;
```

# Tipi definiti dall'utente () UDTs
<a name="cql.ddl.type"></a>

*UDT*: un raggruppamento di campi e tipi di dati che puoi utilizzare per definire una singola colonna in Amazon Keyspaces. I tipi di dati validi UDTs sono tutti i tipi di dati Cassandra supportati, comprese le raccolte e altri UDTs che hai già creato nello stesso keyspace. Per ulteriori informazioni sui tipi di dati Cassandra supportati, consulta. [Supporto per i tipi di dati Cassandra](cassandra-apis.md#cassandra-data-type)

```
user_defined_type::= udt_name
udt_name::= [ keyspace_name '.' ] identifier
```

**Topics**
+ [CREATE TYPE](#cql.ddl.type.create)
+ [DROP TYPE](#cql.ddl.type.drop)

## CREATE TYPE
<a name="cql.ddl.type.create"></a>

Utilizzate l'`CREATE TYPE`istruzione per creare un nuovo tipo.

 **Sintassi**

```
create_type_statement ::=  CREATE TYPE [ IF NOT EXISTS ] udt_name
    '('field_definition ( ',' field_definition)* ')'
            field_definition::= identifier cql_type
```

Dove:
+ `IF NOT EXISTS``CREATE TYPE`impedisce di fallire se il tipo esiste già. (Facoltativo)
+ `udt_name`è il nome completo dell'UDT in formato type, ad esempio. `my_keyspace.my_type` Se si definisce lo spazio chiave corrente con l'`USE`istruzione, non è necessario specificare il nome dello spazio chiave.
+ `field_definition`è costituito da un nome e da un tipo.

La tabella seguente mostra esempi di nomi UDT consentiti. La prima colonna mostra come inserire il nome quando si crea il tipo, la seconda colonna mostra come Amazon Keyspaces formatta il nome internamente. Amazon Keyspaces prevede il nome formattato per operazioni come. `GetType`


| Nome inserito | Nome formattato | Nota | 
| --- | --- | --- | 
|  MY\$1UDT  | my\$1udt | Senza virgolette, Amazon Keyspaces converte tutti i caratteri maiuscoli in minuscoli. | 
|  "MY\$1UDT"  | MY\$1UDT | Con le virgolette doppie, Amazon Keyspaces rispetta i caratteri maiuscoli e rimuove le virgolette dal nome formattato. | 
|  "1234"  | 1234 | Con le virgolette doppie, il nome può iniziare con un numero e Amazon Keyspaces rimuove le virgolette dal nome formattato. | 
|  "Special\$1Ch@r@cters<>\$1\$1"  | Special\$1Ch@r@cters<>\$1\$1 | Con le virgolette doppie, il nome può contenere caratteri speciali e Amazon Keyspaces rimuove le virgolette dal nome formattato. | 
|  "nested""""""quotes"  | nested"""quotes | Amazon Keyspaces rimuove le virgolette doppie esterne e le virgolette di escape dal nome formattato. | 

**Esempi**

```
CREATE TYPE my_keyspace.phone (
    country_code int,
    number text
);
```

Puoi nidificare UDTs se l'UDT annidato è bloccato. Per ulteriori informazioni sui valori predefiniti e sulle quote per i tipi, consulta. [Quote e valori predefiniti di Amazon Keyspaces UDT](quotas.md#udt-table)

```
CREATE TYPE my_keyspace.user (
    first_name text,
    last_name text,
    phones FROZEN<phone>
);
```

Per altri esempi di codice che mostrano come creare UDTs, consulta[Tipi definiti dall'utente (UDTs) in Amazon Keyspaces](udts.md).

## DROP TYPE
<a name="cql.ddl.type.drop"></a>

Utilizzate l'`DROP TYPE`istruzione per eliminare un UDT. È possibile eliminare solo un tipo che non è utilizzato da un altro tipo o tabella.

 **Sintassi**

```
drop_type_statement ::=  DROP TYPE [ IF EXISTS ] udt_name
```

Dove:
+ `IF EXISTS``DROP TYPE`impedisce di fallire se il tipo non esiste. (Facoltativo)
+ `udt_name`è il nome completo dell'UDT in formato type, ad esempio. `my_keyspace.my_type` Se si definisce lo spazio chiave corrente con l'`USE`istruzione, non è necessario specificare il nome dello spazio chiave.

**Esempio**

```
DROP TYPE udt_name;
```