

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pernyataan DDL (bahasa definisi data) di Amazon Keyspaces
<a name="cql.ddl"></a>

*Bahasa definisi data* (DDL) adalah kumpulan pernyataan Cassandra Query Language (CQL) yang Anda gunakan untuk mengelola struktur data di Amazon Keyspaces (untuk Apache Cassandra), seperti ruang kunci dan tabel. Anda menggunakan DDL untuk membuat struktur data ini, memodifikasinya setelah dibuat, dan menghapusnya saat tidak lagi digunakan. Amazon Keyspaces melakukan operasi DDL secara asinkron. Untuk informasi selengkapnya tentang cara mengonfirmasi bahwa operasi asinkron telah selesai, lihat. [Pembuatan asinkron dan penghapusan ruang kunci dan tabel](functional-differences.md#functional-differences.table-keyspace-management)

 Pernyataan DDL berikut didukung: 
+  [BUAT KEYSPACE](cql.ddl.keyspace.md#cql.ddl.keyspace.create) 
+  [UBAH KEYSPACE](cql.ddl.keyspace.md#cql.ddl.keyspace.alter) 
+  [JATUHKAN KEYSPACE](cql.ddl.keyspace.md#cql.ddl.keyspace.drop) 
+  [GUNAKAN](cql.ddl.keyspace.md#cql.ddl.keyspace.use) 
+  [BUAT TABEL](cql.ddl.table.md#cql.ddl.table.create) 
+  [UBAH TABEL](cql.ddl.table.md#cql.ddl.table.alter) 
+  [KEMBALIKAN TABEL](cql.ddl.table.md#cql.ddl.table.restore) 
+  [MEJA DROP](cql.ddl.table.md#cql.ddl.table.drop) 
+  [BUAT JENIS](cql.ddl.type.md#cql.ddl.type.create) 
+  [TIPE DROP](cql.ddl.type.md#cql.ddl.type.drop) 

**Topics**
+ [Keyspaces](cql.ddl.keyspace.md)
+ [Tabel](cql.ddl.table.md)
+ [Jenis yang ditentukan pengguna () UDTs](cql.ddl.type.md)

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

Sebuah *keyspace* mengelompokkan tabel terkait yang relevan untuk satu atau beberapa aplikasi. Dalam hal sistem manajemen basis data relasional (RDBMS), ruang kunci kira-kira mirip dengan database, ruang tabel, atau konstruksi serupa.

**catatan**  
Di Apache Cassandra, keyspace menentukan bagaimana data direplikasi di antara beberapa node penyimpanan. Namun, Amazon Keyspaces adalah layanan yang dikelola sepenuhnya: Detail lapisan penyimpanannya dikelola atas nama Anda. Untuk alasan ini, ruang kunci di Amazon Keyspaces hanya konstruksi logis, dan tidak terkait dengan penyimpanan fisik yang mendasarinya.

Untuk informasi tentang batas kuota dan batasan untuk ruang kunci Amazon Keyspaces, lihat. [Kuota untuk Amazon Keyspaces (untuk Apache Cassandra)](quotas.md)

**Topics**
+ [BUAT KEYSPACE](#cql.ddl.keyspace.create)
+ [MENGUBAH RUANG KUNCI](#cql.ddl.keyspace.alter)
+ [JATUHKAN RUANG KUNCI](#cql.ddl.keyspace.drop)
+ [USE](#cql.ddl.keyspace.use)

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

Gunakan `CREATE KEYSPACE` pernyataan untuk membuat keyspace baru.

**Sintaksis**

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

Di mana:
+ `keyspace_name`adalah nama keyspace yang akan dibuat.
+ *pilihan* adalah satu atau lebih dari berikut ini:
  + `REPLICATION`— Peta yang menunjukkan strategi replikasi untuk keyspace:
    + `SingleRegionStrategy`— Untuk ruang kunci wilayah tunggal. (Diperlukan)
    + `NetworkTopologyStrategy`— Tentukan setidaknya dua Wilayah AWS. Faktor replikasi untuk setiap Wilayah adalah tiga. (Opsional)
  + `DURABLE_WRITES`— Menulis ke Amazon Keyspaces selalu tahan lama, jadi opsi ini tidak diperlukan. Namun, jika ditentukan, nilainya harus`true`.
  + `TAGS`— Daftar tag pasangan kunci-nilai yang akan dilampirkan ke sumber daya saat Anda membuatnya. (Opsional)

**Contoh**

Buat keyspace sebagai berikut.

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

Untuk membuat ruang kunci Multi-wilayah, tentukan `NetworkTopologyStrategy` dan sertakan setidaknya dua. Wilayah AWS Faktor replikasi untuk setiap Wilayah adalah tiga.

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

## MENGUBAH RUANG KUNCI
<a name="cql.ddl.keyspace.alter"></a>

Anda dapat menggunakan `ALTER KEYSPACE WITH` pernyataan untuk *opsi* berikut
+ `REPLICATION`— Gunakan opsi ini untuk menambahkan Wilayah AWS replika baru ke ruang kunci. Anda dapat menambahkan Wilayah baru ke wilayah Tunggal atau ke ruang kunci Multi-wilayah. 
+ `TAGS`— Gunakan opsi ini untuk menambah atau menghapus tag dari ruang kunci.

**Sintaksis**

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

Di mana:
+ `keyspace_name`adalah nama keyspace yang akan diubah.
+ *pilihan* adalah salah satu dari berikut:
  + `ADD | DROP TAGS`— Daftar tag pasangan kunci-nilai yang akan ditambahkan atau dihapus dari ruang kunci. 
  + `REPLICATION`— Peta yang menunjukkan strategi replikasi untuk keyspace; 
    + `class`— `NetworkTopologyStrategy` mendefinisikan keyspace sebagai ruang kunci Multi-wilayah.
    + `region`— Tentukan satu tambahan Wilayah AWS untuk keyspace ini. Faktor replikasi untuk setiap Wilayah adalah tiga.
    + `CLIENT_SIDE_TIMESTAMPS`— Defaultnya adalah`DISABLED`. Anda hanya dapat mengubah status menjadi`ENABLED`.

**Contoh**

Mengubah keyspace seperti yang ditunjukkan pada contoh berikut untuk menambahkan tag.

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

Untuk menambahkan Region ketiga ke ruang kunci Multi-region, Anda dapat menggunakan pernyataan berikut.

```
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'};
```

## JATUHKAN RUANG KUNCI
<a name="cql.ddl.keyspace.drop"></a>

Gunakan `DROP KEYSPACE` pernyataan untuk menghapus keyspace—termasuk semua isinya, seperti tabel.

**Sintaksis**

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

Di mana:
+ *keyspace\$1name adalah nama* keyspace yang akan dijatuhkan.

**Contoh**

```
DROP KEYSPACE my_keyspace;
```

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

Gunakan `USE` pernyataan untuk menentukan keyspace saat ini. Ini memungkinkan Anda untuk merujuk ke objek yang terikat ke ruang kunci tertentu, misalnya tabel dan jenis, tanpa menggunakan nama yang sepenuhnya memenuhi syarat yang menyertakan awalan keyspace. 

**Sintaksis**

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

Di mana:
+ *keyspace\$1name adalah nama* keyspace yang akan digunakan.

**Contoh**

```
USE my_keyspace;
```

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

*Tabel* adalah struktur data utama di Amazon Keyspaces. Data dalam tabel disusun menjadi baris dan kolom. Subset dari kolom tersebut digunakan untuk menentukan partisi (dan akhirnya penempatan data) melalui spesifikasi kunci partisi.

Kumpulan kolom lain dapat didefinisikan ke dalam kolom pengelompokan, yang berarti bahwa mereka dapat berpartisipasi sebagai predikat dalam eksekusi kueri. 

Secara default, tabel baru dibuat dengan kapasitas throughput *sesuai permintaan*. Anda dapat mengubah mode kapasitas untuk tabel baru dan yang sudah ada. Untuk informasi selengkapnya tentang mode throughput read/write kapasitas, lihat[Konfigurasikan mode read/write kapasitas di Amazon Keyspaces](ReadWriteCapacityMode.md). 

Untuk tabel dalam mode yang disediakan, Anda dapat mengonfigurasi opsional. `AUTOSCALING_SETTINGS` Untuk informasi selengkapnya tentang penskalaan otomatis Amazon Keyspaces dan opsi yang tersedia, lihat. [Konfigurasikan penskalaan otomatis pada tabel yang ada](autoscaling.configureTable.md)

Untuk informasi tentang batas kuota dan batasan untuk tabel Amazon Keyspaces, lihat. [Kuota untuk Amazon Keyspaces (untuk Apache Cassandra)](quotas.md)

**Topics**
+ [CREATE TABLE](#cql.ddl.table.create)
+ [ALTER TABLE](#cql.ddl.table.alter)
+ [MENGEMBALIKAN TABEL](#cql.ddl.table.restore)
+ [MEJA DROP](#cql.ddl.table.drop)

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

Gunakan `CREATE TABLE` pernyataan untuk membuat tabel baru.

 **Sintaksis**

```
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) )*
```

Di mana:
+ `table_name`adalah nama tabel yang akan dibuat. Nama yang sepenuhnya memenuhi syarat termasuk awalan keyspace. Atau, Anda dapat mengatur keyspace saat ini dengan pernyataan `USE` keyspace.
+ `column_definition`terdiri dari yang berikut:
  +  *`column_name`*— Nama kolom.
  + `cql_type`— Tipe data Amazon Keyspaces (lihat[Jenis Data](cql.elements.md#cql.data-types)).
  + `FROZEN`— Menetapkan kolom ini yang ditentukan pengguna atau tipe `collection` (misalnya,, `LIST``SET`, atau`MAP`) sebagai beku. Koleksi *beku* diserialisasikan menjadi satu nilai yang tidak dapat diubah dan diperlakukan seperti a. `BLOB` Untuk informasi selengkapnya, lihat [Jenis koleksi](cql.elements.md#cql.data-types.collection).
  + `STATIC`— Menunjuk kolom ini sebagai statis. Kolom statis menyimpan nilai yang dibagikan oleh semua baris di partisi yang sama.
  + `PRIMARY KEY`— Menetapkan kolom ini sebagai kunci utama tabel.
+ `primary_key`terdiri dari yang berikut:
  + `partition_key`
  + `clustering_columns`
+ `partition_key`:
  + Kunci partisi dapat berupa kolom tunggal, atau dapat berupa nilai majemuk yang terdiri dari dua atau lebih kolom. Bagian kunci partisi dari kunci utama diperlukan dan menentukan bagaimana Amazon Keyspaces menyimpan data Anda. 
+ `clustering_columns`:
  + Bagian kolom pengelompokan opsional dari kunci utama Anda menentukan bagaimana data dikelompokkan dan diurutkan dalam setiap partisi. 
+ `table_options`terdiri dari yang berikut:
  + *`CLUSTERING ORDER BY`*— ORDER CLUSTERING default pada tabel terdiri dari kunci pengelompokan Anda dalam arah pengurutan `ASC` (naik). Tentukan untuk mengganti perilaku pengurutan default. 
  +  *`cdc`*— Boolean yang menentukan apakah Amazon Keyspaces membuat aliran change data capture (CDC) untuk tabel. Nilai default-nya `false`. Untuk menentukan `view type` saat mengaktifkan aliran, atur `cdc_specification` dengan`CUSTOM_PROPERTIES`. 
  +  *`CUSTOM_PROPERTIES`*— Peta pengaturan yang khusus untuk Amazon Keyspaces.
    +  `capacity_mode`: Menentukan mode kapasitas throughput baca/tulis untuk tabel. Opsi nya adalah `throughput_mode:PAY_PER_REQUEST` dan `throughput_mode:PROVISIONED`. Mode kapasitas yang disediakan membutuhkan `read_capacity_units` dan `write_capacity_units` sebagai input. Nilai default-nya `throughput_mode:PAY_PER_REQUEST`.
    +  `cdc_specification`: Menentukan `view_type` aliran CDC. Opsinya adalah:
      + `NEW_AND_OLD_IMAGES`— kedua versi baris, sebelum dan sesudah perubahan. Ini adalah opsi default.
      + `NEW_IMAGE`— versi baris setelah perubahan.
      + `OLD_IMAGE`— versi baris sebelum perubahan.
      + `KEYS_ONLY`— kunci partisi dan pengelompokan baris yang diubah.

      Untuk informasi selengkapnya tentang aliran CDC, lihat. [Bekerja dengan aliran change data capture (CDC) di Amazon Keyspaces](cdc.md) Untuk contoh kode, lihat [Aktifkan aliran CDC saat membuat tabel baru di Amazon Keyspaces](keyspaces-enable-cdc-new-table.md).
    +  `client_side_timestamps`: Menentukan apakah stempel waktu sisi klien diaktifkan atau dinonaktifkan untuk tabel. Opsi nya adalah `{'status': 'enabled'}` dan `{'status': 'disabled'}`. Jika tidak ditentukan, defaultnya adalah`status:disabled`. Setelah stempel waktu sisi klien diaktifkan untuk tabel, pengaturan ini tidak dapat dinonaktifkan. 
    +  `encryption_specification`: Menentukan opsi enkripsi untuk enkripsi saat istirahat. Jika tidak ditentukan, defaultnya adalah`encryption_type:AWS_OWNED_KMS_KEY`. Opsi enkripsi kunci yang dikelola pelanggan memerlukan AWS KMS kunci dalam format Amazon Resource Name (ARN) sebagai input::`kms_key_identifier:ARN`. `kms_key_identifier:ARN` 
    +  `point_in_time_recovery`: Menentukan apakah point-in-time restore diaktifkan atau dinonaktifkan untuk tabel. Opsi nya adalah `status:enabled` dan `status:disabled`. Jika tidak ditentukan, defaultnya adalah`status:disabled`.
    + `replica_updates`: Menentukan pengaturan tabel Multi-region yang khusus untuk. Wilayah AWS Untuk tabel Multi-region, Anda dapat mengonfigurasi kapasitas baca tabel secara berbeda per Wilayah AWS tabel. Anda dapat melakukan ini dengan mengonfigurasi parameter berikut. Untuk informasi selengkapnya dan contoh tambahan, lihat [Buat tabel Multi-wilayah dalam mode yang disediakan dengan penskalaan otomatis di Amazon Keyspaces](tables-mrr-create-provisioned.md).
      + `region`— Wilayah AWS Replika tabel dengan pengaturan berikut:
        + `read_capacity_units`
    +  `TTL`: Mengaktifkan Pengaturan kustom Time to Live untuk tabel. Untuk mengaktifkan, gunakan`status:enabled`. Nilai default-nya `status:disabled`. Setelah `TTL` diaktifkan, Anda tidak dapat menonaktifkannya untuk tabel.
  + `AUTOSCALING_SETTINGS`termasuk pengaturan opsional berikut untuk tabel dalam mode yang disediakan. Untuk informasi selengkapnya dan contoh tambahan, lihat [Buat tabel baru dengan penskalaan otomatis](autoscaling.createTable.md).
    + `provisioned_write_capacity_autoscaling_update`:
      + `autoscaling_disabled`— Untuk mengaktifkan penskalaan otomatis untuk kapasitas tulis, atur nilainya ke`false`. Nilai default-nya `true`. (Opsional)
      + `minimum_units`— Tingkat minimum throughput tulis yang harus selalu siap didukung oleh tabel. Nilai harus antara 1 dan kuota throughput maksimal per detik untuk akun Anda (40.000 secara default).
      + `maximum_units`— Tingkat maksimum throughput tulis yang harus selalu siap didukung oleh tabel. Nilai harus antara 1 dan kuota throughput maksimal per detik untuk akun Anda (40.000 secara default).
      + `scaling_policy`— Amazon Keyspaces mendukung kebijakan pelacakan target. Target penskalaan otomatis adalah kapasitas tulis tabel yang disediakan.
        + `target_tracking_scaling_policy_configuration`— Untuk menentukan kebijakan pelacakan target, Anda harus menentukan nilai target. Untuk informasi selengkapnya tentang pelacakan target dan periode cooldown, lihat [Kebijakan Penskalaan Pelacakan Target di Panduan Pengguna *Application Auto Scaling*](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html). 
          + `target_value`— Tingkat pemanfaatan target tabel. Penskalaan otomatis Amazon Keyspaces memastikan bahwa rasio kapasitas yang dikonsumsi terhadap kapasitas yang disediakan tetap pada atau mendekati nilai ini. Anda mendefinisikan `target_value` sebagai persentase. Ganda antara 20 dan 90. (Diperlukan)
          + `scale_in_cooldown`— Periode cooldown dalam hitungan detik antara aktivitas penskalaan yang memungkinkan tabel stabil sebelum skala aktivitas lain dimulai. Jika tidak ada nilai yang diberikan, defaultnya adalah 0. (Opsional)
          + `scale_out_cooldown`— Periode cooldown dalam hitungan detik antara aktivitas penskalaan yang memungkinkan tabel stabil sebelum aktivitas skala lain dimulai. Jika tidak ada nilai yang diberikan, defaultnya adalah 0. (Opsional)
          + `disable_scale_in`: A `boolean` yang menentukan apakah `scale-in` dinonaktifkan atau diaktifkan untuk tabel. Parameter ini dinonaktifkan secara default. Untuk menghidupkan`scale-in`, atur `boolean` nilainya ke`FALSE`. Ini berarti bahwa kapasitas secara otomatis diperkecil untuk tabel atas nama Anda. (Opsional) 
    + `provisioned_read_capacity_autoscaling_update`:
      + `autoscaling_disabled`— Untuk mengaktifkan penskalaan otomatis untuk kapasitas baca, atur nilainya ke`false`. Nilai default-nya `true`. (Opsional)
      + `minimum_units`— Tingkat throughput minimum yang harus selalu siap didukung oleh tabel. Nilai harus antara 1 dan kuota throughput maksimal per detik untuk akun Anda (40.000 secara default).
      + `maximum_units`— Tingkat throughput maksimum yang harus selalu siap didukung oleh tabel. Nilai harus antara 1 dan kuota throughput maksimal per detik untuk akun Anda (40.000 secara default).
      + `scaling_policy`— Amazon Keyspaces mendukung kebijakan pelacakan target. Target penskalaan otomatis adalah kapasitas baca tabel yang disediakan.
        + `target_tracking_scaling_policy_configuration`— Untuk menentukan kebijakan pelacakan target, Anda harus menentukan nilai target. Untuk informasi selengkapnya tentang pelacakan target dan periode cooldown, lihat [Kebijakan Penskalaan Pelacakan Target di Panduan Pengguna *Application Auto Scaling*](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html). 
          + `target_value`— Tingkat pemanfaatan target tabel. Penskalaan otomatis Amazon Keyspaces memastikan bahwa rasio kapasitas yang dikonsumsi terhadap kapasitas yang disediakan tetap pada atau mendekati nilai ini. Anda mendefinisikan `target_value` sebagai persentase. Ganda antara 20 dan 90. (Diperlukan)
          + `scale_in_cooldown`— Periode cooldown dalam hitungan detik antara aktivitas penskalaan yang memungkinkan tabel stabil sebelum skala aktivitas lain dimulai. Jika tidak ada nilai yang diberikan, defaultnya adalah 0. (Opsional)
          + `scale_out_cooldown`— Periode cooldown dalam hitungan detik antara aktivitas penskalaan yang memungkinkan tabel stabil sebelum aktivitas skala lain dimulai. Jika tidak ada nilai yang diberikan, defaultnya adalah 0. (Opsional)
          + `disable_scale_in`: A `boolean` yang menentukan apakah `scale-in` dinonaktifkan atau diaktifkan untuk tabel. Parameter ini dinonaktifkan secara default. Untuk menghidupkan`scale-in`, atur `boolean` nilainya ke`FALSE`. Ini berarti bahwa kapasitas secara otomatis diperkecil untuk tabel atas nama Anda. (Opsional) 
    + `replica_updates`: Menentukan pengaturan penskalaan otomatis Wilayah AWS tertentu dari tabel Multi-wilayah. Untuk tabel Multi-region, Anda dapat mengonfigurasi kapasitas baca tabel secara berbeda per Wilayah AWS tabel. Anda dapat melakukan ini dengan mengonfigurasi parameter berikut. Untuk informasi selengkapnya dan contoh tambahan, lihat [Memperbarui kapasitas yang disediakan dan pengaturan penskalaan otomatis untuk tabel Multi-wilayah di Amazon Keyspaces](tables-mrr-autoscaling.md).
      + `region`— Wilayah AWS Replika tabel dengan pengaturan berikut:
        + `provisioned_read_capacity_autoscaling_update`
          + `autoscaling_disabled`— Untuk mengaktifkan penskalaan otomatis untuk kapasitas baca tabel, atur nilainya ke`false`. Nilai default-nya `true`. (Opsional) 
**catatan**  
Penskalaan otomatis untuk tabel Multi-wilayah harus diaktifkan atau dinonaktifkan untuk semua replika tabel.
          + `minimum_units`— Tingkat minimum throughput baca yang harus selalu siap didukung oleh tabel. Nilai harus antara 1 dan kuota throughput maksimal per detik untuk akun Anda (40.000 secara default).
          + `maximum_units`— Tingkat maksimum throughput baca yang harus selalu siap didukung oleh tabel. Nilai harus antara 1 dan kuota throughput maksimal per detik untuk akun Anda (40.000 secara default).
          + `scaling_policy`— Amazon Keyspaces mendukung kebijakan pelacakan target. Target penskalaan otomatis adalah kapasitas baca tabel yang disediakan.
            + `target_tracking_scaling_policy_configuration`— Untuk menentukan kebijakan pelacakan target, Anda harus menentukan nilai target. Untuk informasi selengkapnya tentang pelacakan target dan periode cooldown, lihat [Kebijakan Penskalaan Pelacakan Target di Panduan Pengguna *Application Auto Scaling*](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html). 
              + `target_value`— Tingkat pemanfaatan target tabel. Penskalaan otomatis Amazon Keyspaces memastikan bahwa rasio kapasitas baca yang dikonsumsi terhadap kapasitas baca yang disediakan tetap pada atau mendekati nilai ini. Anda mendefinisikan `target_value` sebagai persentase. Ganda antara 20 dan 90. (Diperlukan)
              + `scale_in_cooldown`— Periode cooldown dalam hitungan detik antara aktivitas penskalaan yang memungkinkan tabel stabil sebelum skala aktivitas lain dimulai. Jika tidak ada nilai yang diberikan, defaultnya adalah 0. (Opsional)
              + `scale_out_cooldown`— Periode cooldown dalam hitungan detik antara aktivitas penskalaan yang memungkinkan tabel stabil sebelum aktivitas skala lain dimulai. Jika tidak ada nilai yang diberikan, defaultnya adalah 0. (Opsional)
              + `disable_scale_in`: A `boolean` yang menentukan apakah `scale-in` dinonaktifkan atau diaktifkan untuk tabel. Parameter ini dinonaktifkan secara default. Untuk menghidupkan`scale-in`, atur `boolean` nilainya ke`FALSE`. Ini berarti bahwa kapasitas baca secara otomatis diperkecil untuk tabel atas nama Anda. (Opsional) 
  + `default_time_to_live`— Pengaturan Waktu untuk Hidup default dalam hitungan detik untuk tabel.
  + `TAGS`— Daftar tag pasangan kunci-nilai yang akan dilampirkan ke sumber daya saat dibuat. 
  + `clustering_order`terdiri dari yang berikut:
    +  *`column_name`*— Nama kolom. 
    +  *`ASC | DESC`*— Mengatur pengubah urutan ascendant (`ASC`) atau descendant (`DESC`). Jika tidak ditentukan, urutan defaultnya adalah ASC. 

**Contoh**

```
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;
```

Dalam tabel yang menggunakan kolom pengelompokan, kolom non-clustering dapat dideklarasikan sebagai statis dalam definisi tabel. Untuk informasi selengkapnya tentang kolom statis, lihat[Perkirakan konsumsi kapasitas untuk kolom statis di Amazon Keyspaces](static-columns.md).

**Contoh**

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

Anda dapat membuat tabel dengan kolom yang menggunakan tipe yang ditentukan pengguna (UDT). Pernyataan pertama dalam contoh menciptakan tipe, pernyataan kedua membuat tabel dengan kolom yang menggunakan tipe.

**Contoh**

```
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>

Gunakan `ALTER TABLE` pernyataan untuk menambahkan kolom baru, menambahkan tag, atau mengubah properti kustom tabel.

**Sintaksis**

```
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
```

Di mana:
+ `table_name`adalah nama tabel yang akan diubah.
+ `column_definition`adalah nama kolom dan tipe data yang akan ditambahkan.
+ `column_definition_list`adalah daftar kolom yang dipisahkan koma yang ditempatkan di dalam tanda kurung.
+ `table_options`terdiri dari yang berikut:
  + `AUTOSCALING_SETTINGS`termasuk pengaturan penskalaan otomatis opsional untuk tabel yang disediakan. Untuk sintaks dan deskripsi rinci, lihat. [CREATE TABLE](#cql.ddl.table.create) Sebagai contoh, lihat [Konfigurasikan penskalaan otomatis pada tabel yang ada](autoscaling.configureTable.md).
  +  *`cdc`*— Boolean yang menentukan apakah Amazon Keyspaces membuat aliran change data capture (CDC) untuk tabel. Nilai default-nya `false`. Untuk menentukan `view type` saat mengaktifkan aliran, atur `cdc_specification` dengan`CUSTOM_PROPERTIES`. 
  +  *`CUSTOM_PROPERTIES`*— Peta pengaturan khusus untuk Amazon Keyspaces.
    +  `capacity_mode`: Menentukan mode kapasitas throughput baca/tulis untuk tabel. Opsi nya adalah `throughput_mode:PAY_PER_REQUEST` dan `throughput_mode:PROVISIONED`. Mode kapasitas yang disediakan membutuhkan `read_capacity_units` dan `write_capacity_units` sebagai input. Nilai default-nya `throughput_mode:PAY_PER_REQUEST`.
    +  `cdc_specification`: Menentukan `view_type` aliran CDC. Opsinya adalah:
      + `NEW_AND_OLD_IMAGES`— kedua versi baris, sebelum dan sesudah perubahan. Ini adalah opsi default.
      + `NEW_IMAGE`— versi baris setelah perubahan.
      + `OLD_IMAGE`— versi baris sebelum perubahan.
      + `KEYS_ONLY`— kunci partisi dan pengelompokan baris yang diubah.

      Untuk informasi selengkapnya tentang aliran CDC, lihat. [Bekerja dengan aliran change data capture (CDC) di Amazon Keyspaces](cdc.md) Untuk contoh kode, lihat [Aktifkan aliran CDC untuk tabel yang ada di Amazon Keyspaces](keyspaces-enable-cdc-alter-table.md).
    +  `client_side_timestamps`: Menentukan apakah stempel waktu sisi klien diaktifkan atau dinonaktifkan untuk tabel. Opsi nya adalah `{'status': 'enabled'}` dan `{'status': 'disabled'}`. Jika tidak ditentukan, defaultnya adalah`status:disabled`. Setelah stempel waktu sisi klien diaktifkan untuk tabel, pengaturan ini tidak dapat dinonaktifkan. 
    +  `encryption_specification`: Menentukan opsi enkripsi untuk enkripsi saat istirahat. Opsi nya adalah `encryption_type:AWS_OWNED_KMS_KEY` dan `encryption_type:CUSTOMER_MANAGED_KMS_KEY`. Opsi enkripsi kunci yang dikelola pelanggan memerlukan AWS KMS kunci dalam format Amazon Resource Name (ARN) sebagai input:. `kms_key_identifier:ARN` 
    +  `point_in_time_recovery`: Menentukan apakah point-in-time restore diaktifkan atau dinonaktifkan untuk tabel. Opsi nya adalah `status:enabled` dan `status:disabled`. Nilai default-nya `status:disabled`.
    + `replica_updates`: Menentukan pengaturan Wilayah AWS spesifik dari tabel Multi-region. Untuk tabel Multi-region, Anda dapat mengonfigurasi kapasitas baca tabel secara berbeda per Wilayah AWS tabel. Anda dapat melakukan ini dengan mengonfigurasi parameter berikut. Untuk informasi selengkapnya dan contoh tambahan, lihat [Memperbarui kapasitas yang disediakan dan pengaturan penskalaan otomatis untuk tabel Multi-wilayah di Amazon Keyspaces](tables-mrr-autoscaling.md).
      + `region`— Wilayah AWS Replika tabel dengan pengaturan berikut:
        + `read_capacity_units` 
    +  `ttl`: Mengaktifkan Pengaturan kustom Time to Live untuk tabel. Untuk mengaktifkan, gunakan`status:enabled`. Nilai default-nya `status:disabled`. Setelah `ttl` diaktifkan, Anda tidak dapat menonaktifkannya untuk tabel.
+ `default_time_to_live`: Pengaturan Waktu ke Langsung default dalam hitungan detik untuk tabel.
+ `TAGS`adalah daftar tag pasangan kunci-nilai yang akan dilampirkan ke sumber daya.

**catatan**  
Dengan ALTER TABLE, Anda hanya dapat mengubah satu properti kustom. Anda tidak dapat menggabungkan lebih dari satu perintah ALTER TABLE dalam pernyataan yang sama.

**Contoh**

Pernyataan berikut menunjukkan cara menambahkan kolom ke tabel yang ada.

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

Pernyataan ini menunjukkan cara menambahkan dua kolom koleksi ke tabel yang ada: 
+ Kolom koleksi beku `col_frozen_list` yang berisi koleksi beku bersarang
+ Kolom koleksi non-beku `col_map` yang berisi koleksi beku bersarang

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

Contoh berikut menunjukkan cara menambahkan kolom yang menggunakan tipe yang ditentukan pengguna (UDT) ke tabel.

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

Untuk mengubah mode kapasitas tabel dan menentukan unit kapasitas baca dan tulis, Anda dapat menggunakan pernyataan berikut.

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

Pernyataan berikut menentukan kunci KMS yang dikelola pelanggan untuk tabel.

```
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'     
                  } 
         };
```

Untuk mengaktifkan point-in-time restore untuk tabel, Anda dapat menggunakan pernyataan berikut.

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

Untuk menetapkan nilai Time to Live default dalam hitungan detik untuk tabel, Anda dapat menggunakan pernyataan berikut.

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

Pernyataan ini memungkinkan pengaturan Waktu ke Langsung kustom untuk tabel.

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

## MENGEMBALIKAN TABEL
<a name="cql.ddl.table.restore"></a>

Gunakan `RESTORE TABLE` pernyataan untuk mengembalikan tabel ke titik waktu. Pernyataan ini membutuhkan point-in-time pemulihan untuk diaktifkan di atas meja. Untuk informasi selengkapnya, lihat [Cadangkan dan pulihkan data dengan point-in-time pemulihan untuk Amazon Keyspaces](PointInTimeRecovery.md).

**Sintaksis**

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

Di mana:
+ `restored_table_name`adalah nama tabel yang dipulihkan.
+ `source_table_name`adalah nama tabel sumber.
+ `table_options`terdiri dari yang berikut:
  + `restore_timestamp`adalah waktu titik pemulihan dalam format ISO 8601. Jika tidak ditentukan, stempel waktu saat ini digunakan.
  +  *`CUSTOM_PROPERTIES`*— Peta pengaturan khusus untuk Amazon Keyspaces.
    +  `capacity_mode`: Menentukan mode kapasitas throughput baca/tulis untuk tabel. Opsi nya adalah `throughput_mode:PAY_PER_REQUEST` dan `throughput_mode:PROVISIONED`. Mode kapasitas yang disediakan membutuhkan `read_capacity_units` dan `write_capacity_units` sebagai input. Defaultnya adalah pengaturan saat ini dari tabel sumber.
    +  `encryption_specification`: Menentukan opsi enkripsi untuk enkripsi saat istirahat. Opsi nya adalah `encryption_type:AWS_OWNED_KMS_KEY` dan `encryption_type:CUSTOMER_MANAGED_KMS_KEY`. Opsi enkripsi kunci yang dikelola pelanggan memerlukan AWS KMS kunci dalam format Amazon Resource Name (ARN) sebagai input:. `kms_key_identifier:ARN` Untuk memulihkan tabel yang dienkripsi dengan kunci terkelola pelanggan ke tabel yang dienkripsi dengan, Kunci milik AWS Amazon Keyspaces memerlukan akses ke kunci tabel sumber. AWS KMS 
    +  `point_in_time_recovery`: Menentukan apakah point-in-time restore diaktifkan atau dinonaktifkan untuk tabel. Opsi nya adalah `status:enabled` dan `status:disabled`. Tidak seperti ketika Anda membuat tabel baru, status default untuk tabel dipulihkan adalah `status:enabled` karena pengaturan diwarisi dari tabel sumber. Untuk menonaktifkan PITR untuk tabel yang dipulihkan, Anda harus mengatur `status:disabled` secara eksplisit.
    + `replica_updates`: Menentukan pengaturan Wilayah AWS spesifik dari tabel Multi-region. Untuk tabel Multi-region, Anda dapat mengonfigurasi kapasitas baca tabel secara berbeda per Wilayah AWS tabel. Anda dapat melakukan ini dengan mengonfigurasi parameter berikut. 
      + `region`— Wilayah AWS Replika tabel dengan pengaturan berikut:
        + `read_capacity_units` 
  + `AUTOSCALING_SETTINGS`termasuk pengaturan penskalaan otomatis opsional untuk tabel yang disediakan. Untuk sintaks dan deskripsi terperinci, lihat. [CREATE TABLE](#cql.ddl.table.create)
  + `TAGS`adalah daftar tag pasangan kunci-nilai yang akan dilampirkan ke sumber daya.

**catatan**  
Tabel yang dihapus hanya dapat dikembalikan ke waktu penghapusan.

**Contoh**

```
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'};
```

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

Gunakan `DROP TABLE` pernyataan untuk menghapus tabel dari keyspace.

**Sintaksis**

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

Di mana:
+ `IF EXISTS``DROP TABLE`mencegah kegagalan jika tabel tidak ada. (Opsional)
+ `table_name`adalah nama tabel yang akan dijatuhkan.

**Contoh**

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

# Jenis yang ditentukan pengguna () UDTs
<a name="cql.ddl.type"></a>

*UDT* — Pengelompokan bidang dan tipe data yang dapat Anda gunakan untuk menentukan satu kolom di Amazon Keyspaces. Tipe data UDTs yang valid untuk semua tipe data Cassandra yang didukung, termasuk koleksi dan lainnya UDTs yang telah Anda buat di ruang kunci yang sama. Untuk informasi selengkapnya tentang tipe data Cassandra yang didukung, lihat. [Dukungan tipe data Cassandra](cassandra-apis.md#cassandra-data-type)

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

**Topics**
+ [BUAT TIPE](#cql.ddl.type.create)
+ [TIPE DROP](#cql.ddl.type.drop)

## BUAT TIPE
<a name="cql.ddl.type.create"></a>

Gunakan `CREATE TYPE` pernyataan untuk membuat tipe baru.

 **Sintaksis**

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

Di mana:
+ `IF NOT EXISTS``CREATE TYPE`mencegah kegagalan jika tipe sudah ada. (Opsional)
+ `udt_name`adalah nama UDT yang sepenuhnya memenuhi syarat dalam format tipe, misalnya. `my_keyspace.my_type` Jika Anda mendefinisikan keyspace saat ini dengan `USE` pernyataan, Anda tidak perlu menentukan nama keyspace.
+ `field_definition`terdiri dari nama dan tipe.

Tabel berikut menunjukkan contoh nama UDT yang diizinkan. Kolom pertama menunjukkan cara memasukkan nama saat Anda membuat jenis, kolom kedua menunjukkan bagaimana Amazon Keyspaces memformat nama secara internal. Amazon Keyspaces mengharapkan nama yang diformat untuk operasi seperti. `GetType`


| Nama yang dimasukkan | Nama yang diformat | Catatan | 
| --- | --- | --- | 
|  MY\$1UDT  | my\$1udt | Tanpa tanda kutip ganda, Amazon Keyspaces mengonversi semua karakter huruf besar menjadi huruf kecil. | 
|  "MY\$1UDT"  | MY\$1UDT | Dengan tanda kutip ganda, Amazon Keyspaces menghormati karakter huruf besar, dan menghapus tanda kutip ganda dari nama yang diformat. | 
|  "1234"  | 1234 | Dengan tanda kutip ganda, nama dapat dimulai dengan angka, dan Amazon Keyspaces menghapus tanda kutip ganda dari nama yang diformat. | 
|  "Special\$1Ch@r@cters<>\$1\$1"  | Special\$1Ch@r@cters<>\$1\$1 | Dengan tanda kutip ganda, nama dapat berisi karakter khusus, dan Amazon Keyspaces menghapus tanda kutip ganda dari nama yang diformat. | 
|  "nested""""""quotes"  | nested"""quotes | Amazon Keyspaces menghapus tanda kutip ganda luar dan tanda kutip ganda escape dari nama yang diformat. | 

**Contoh**

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

Anda dapat bersarang UDTs jika UDT bersarang dibekukan. Untuk informasi selengkapnya tentang nilai default dan kuota untuk tipe, lihat[Kuota UDT Amazon Keyspaces dan nilai default](quotas.md#udt-table).

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

Untuk contoh kode lainnya yang menunjukkan cara membuat UDTs, lihat[Tipe yang ditentukan pengguna (UDTs) di Amazon Keyspaces](udts.md).

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

Gunakan `DROP TYPE` pernyataan untuk menghapus UDT. Anda hanya dapat menghapus tipe yang tidak digunakan oleh tipe atau tabel lain.

 **Sintaksis**

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

Di mana:
+ `IF EXISTS``DROP TYPE`mencegah kegagalan jika tipenya tidak ada. (Opsional)
+ `udt_name`adalah nama UDT yang sepenuhnya memenuhi syarat dalam format tipe, misalnya. `my_keyspace.my_type` Jika Anda mendefinisikan keyspace saat ini dengan `USE` pernyataan, Anda tidak perlu menentukan nama keyspace.

**Contoh**

```
DROP TYPE udt_name;
```