

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

# Operasi dasar pada tabel DynamoDB
<a name="WorkingWithTables.Basics"></a>

Mirip dengan sistem basis data lainnya, Amazon DynamoDB menyimpan data dalam tabel. Anda dapat mengelola tabel Anda menggunakan beberapa operasi dasar.

**Topics**
+ [

## Membuat tabel
](#WorkingWithTables.Basics.CreateTable)
+ [

## Menjelaskan tabel
](#WorkingWithTables.Basics.DescribeTable)
+ [

## Memperbarui tabel
](#WorkingWithTables.Basics.UpdateTable)
+ [

## Menghapus tabel
](#WorkingWithTables.Basics.DeleteTable)
+ [

## Menggunakan perlindungan penghapusan
](#WorkingWithTables.Basics.DeletionProtection)
+ [

## Mencantumkan nama tabel
](#WorkingWithTables.Basics.ListTables)
+ [

## Menggambarkan kuota throughput yang disediakan
](#WorkingWithTables.Basics.DescribeLimits)

## Membuat tabel
<a name="WorkingWithTables.Basics.CreateTable"></a>

Gunakan operasi `CreateTable` untuk membuat tabel di Amazon DynamoDB. Untuk membuat tabel, Anda harus memberikan informasi berikut:
+ **Nama tabel.** Nama harus sesuai dengan aturan penamaan DynamoDB, dan harus unik untuk akun saat ini dan Wilayah. AWS Misalnya, Anda dapat membuat tabel `People` di AS Timur (Virginia Utara) dan tabel `People` lainnya di Eropa (Irlandia). Namun, kedua tabel ini akan benar-benar berbeda satu sama lain. Untuk informasi selengkapnya, lihat [Jenis data dan aturan penamaan yang didukung di Amazon DynamoDB](HowItWorks.NamingRulesDataTypes.md).
+ **Kunci primer.** Kunci primer dapat terdiri dari satu atribut (kunci partisi) atau dua atribut (kunci partisi dan kunci urutan). Anda perlu memberikan nama atribut, jenis daya, dan peran dari masing-masing atribut: `HASH` (untuk kunci partisi) dan `RANGE` (untuk kunci urutan). Untuk informasi selengkapnya, lihat [Kunci primer](HowItWorks.CoreComponents.md#HowItWorks.CoreComponents.PrimaryKey).
+ **Pengaturan throughput (untuk tabel yang disediakan).** Jika menggunakan mode yang disediakan, Anda harus menentukan pengaturan throughput tulis dan baca awal untuk tabel. Anda dapat mengubah pengaturan ini di waktu lain, atau mengaktifkan penskalaan otomatis DynamoDB untuk mengelola pengaturan untuk Anda. Untuk informasi selengkapnya, lihat [DynamoDB menyediakan mode kapasitas](provisioned-capacity-mode.md) dan [Mengelola kapasitas throughput secara otomatis dengan penskalaan otomatis DynamoDB](AutoScaling.md).

### Contoh 1: Buat tabel sesuai permintaan
<a name="create-payperrequest-example"></a>

Untuk membuat tabel `Music` yang sama menggunakan mode sesuai permintaan.

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --billing-mode=PAY_PER_REQUEST
```

Operasi `CreateTable` mengembalikan metadata untuk tabel, seperti yang ditunjukkan berikut ini.

```
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 0,
            "ReadCapacityUnits": 0
        },
        "TableSizeBytes": 0,
        "TableName": "Music",
        "BillingModeSummary": {
            "BillingMode": "PAY_PER_REQUEST"
        },
        "TableStatus": "CREATING",
        "TableId": "12345678-0123-4567-a123-abcdefghijkl",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1542397468.348
    }
}
```

**penting**  
 Ketika memanggil `DescribeTable` pada tabel sesuai permintaan, unit kapasitas baca dan unit kapasitas tulis ditetapkan ke 0. 

### Contoh 2: Buat tabel yang disediakan
<a name="create-provisioned-example"></a>

 AWS CLI Contoh berikut menunjukkan cara membuat tabel (`Music`). Kunci primer terdiri dari `Artist` (kunci partisi) dan `SongTitle` (kunci urutan), masing-masing memiliki jenis daya `String`. Throughput maksimum untuk tabel ini adalah 10 unit kapasitas baca dan 5 unit kapasitas tulis.

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5
```

Operasi `CreateTable` mengembalikan metadata untuk tabel, seperti yang ditunjukkan berikut ini.

```
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 5,
            "ReadCapacityUnits": 10
        },
        "TableSizeBytes": 0,
        "TableName": "Music",
        "TableStatus": "CREATING",
        "TableId": "12345678-0123-4567-a123-abcdefghijkl",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1542397215.37
    }
}
```

Elemen `TableStatus` menunjukkan status tabel saat ini (`CREATING`). Mungkin perlu beberapa saat untuk membuat tabel, bergantung pada nilai yang Anda tentukan untuk `ReadCapacityUnits` dan `WriteCapacityUnits`. Nilai yang lebih besar untuk ini memerlukan DynamoDB mengalokasikan lebih banyak sumber daya untuk tabel.

### Contoh 3: Membuat tabel menggunakan kelas tabel akses standar-jarang DynamoDB
<a name="create-infrequent-access-example"></a>

Untuk membuat tabel `Music` yang sama menggunakan kelas tabel akses standar-jarang DynamoDB.

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --table-class STANDARD_INFREQUENT_ACCESS
```

Operasi `CreateTable` mengembalikan metadata untuk tabel, seperti yang ditunjukkan berikut ini.

```
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 5,
            "ReadCapacityUnits": 10
        },
        "TableClassSummary": {
            "LastUpdateDateTime": 1542397215.37,
            "TableClass": "STANDARD_INFREQUENT_ACCESS"
        },
        "TableSizeBytes": 0,
        "TableName": "Music",
        "TableStatus": "CREATING",
        "TableId": "12345678-0123-4567-a123-abcdefghijkl",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1542397215.37
    }
}
```

## Menjelaskan tabel
<a name="WorkingWithTables.Basics.DescribeTable"></a>

Untuk melihat detail tentang tabel, gunakan operasi `DescribeTable`. Anda harus memberikan nama tabel. Output dari `DescribeTable` adalah dalam format yang sama seperti dari `CreateTable`. Ini mencakup stempel waktu pembuatan tabel, skema kunci, pengaturan throughput yang disediakan, perkiraan ukuran, dan indeks sekunder apa pun yang ada.

**penting**  
 Ketika menjalankan `DescribeTable` pada tabel sesuai permintaan, unit kapasitas baca dan unit kapasitas tulis ditetapkan ke 0. 

**Example**  

```
aws dynamodb describe-table --table-name Music
```

Tabel siap digunakan ketika `TableStatus` berubah dari `CREATING` menjadi `ACTIVE`.

**catatan**  
Jika Anda mengeluarkan permintaan `DescribeTable` segera setelah permintaan `CreateTable`, DynamoDB mungkin mengembalikan kesalahan (`ResourceNotFoundException`). Hal ini karena `DescribeTable` menggunakan kueri yang akhirnya konsisten, dan metadata untuk tabel Anda mungkin tidak tersedia pada saat itu. Tunggu selama beberapa detik, kemudian coba permintaan `DescribeTable` kembali.  
Untuk tujuan penagihan, biaya penyimpanan DynamoDB mencakup overhead per item sebesar 100 byte. (Untuk informasi selengkapnya, buka [Harga DynamoDB](https://aws.amazon.com/dynamodb/pricing/).) Tambahan 100 byte per item ini tidak digunakan dalam perhitungan unit kapasitas atau oleh operasi `DescribeTable`. 

## Memperbarui tabel
<a name="WorkingWithTables.Basics.UpdateTable"></a>

Operasi `UpdateTable` memungkinkan Anda melakukan salah satu hal berikut:
+ Memodifikasi pengaturan throughput tabel yang disediakan (untuk tabel mode yang disediakan).
+ Ubah mode read/write kapasitas tabel.
+ Memanipulasi indeks sekunder global pada tabel (lihat [Menggunakan Indeks Sekunder Global di DynamoDB](GSI.md)).
+ Mengaktifkan atau menonaktifkan DynamoDB Streams pada tabel (lihat [Tangkapan data perubahan DynamoDB Streams](Streams.md)).

**Example**  
 AWS CLI Contoh berikut menunjukkan cara memodifikasi pengaturan throughput disediakan tabel.  

```
aws dynamodb update-table --table-name Music \
    --provisioned-throughput ReadCapacityUnits=20,WriteCapacityUnits=10
```

**catatan**  
Ketika Anda mengeluarkan permintaan `UpdateTable`, status tabel berubah dari `AVAILABLE` menjadi `UPDATING`. Tabel tetap sepenuhnya tersedia untuk digunakan saat `UPDATING`. Setelah proses ini selesai, status tabel berubah dari `UPDATING` menjadi `AVAILABLE`.

**Example**  
 AWS CLI Contoh berikut menunjukkan cara memodifikasi mode read/write kapasitas tabel ke mode on-demand.  

```
aws dynamodb update-table --table-name Music \
    --billing-mode PAY_PER_REQUEST
```

## Menghapus tabel
<a name="WorkingWithTables.Basics.DeleteTable"></a>

Anda dapat menghapus tabel yang tidak digunakan dengan operasi `DeleteTable`. Menghapus tabel adalah operasi yang tidak dapat dipulihkan. Untuk menghapus tabel menggunakan Konsol Manajemen AWS, lihat[Langkah 6: (Opsional) Hapus tabel DynamoDB Anda untuk membersihkan sumber daya](getting-started-step-6.md).

**Example**  
 AWS CLI Contoh berikut menunjukkan cara menghapus tabel.  

```
aws dynamodb delete-table --table-name Music
```

Ketika Anda mengeluarkan permintaan `DeleteTable`, status tabel berubah dari `ACTIVE` menjadi `DELETING`. Mungkin perlu beberapa saat untuk menghapus tabel, bergantung pada sumber daya yang digunakan (seperti data yang disimpan dalam tabel, dan setiap aliran atau indeks pada tabel).

Di akhir operasi `DeleteTable`, tabel tidak akan ada lagi di DynamoDB.

## Menggunakan perlindungan penghapusan
<a name="WorkingWithTables.Basics.DeletionProtection"></a>

Anda dapat melindungi tabel dari penghapusan yang tidak disengaja dengan properti perlindungan penghapusan. Mengaktifkan properti ini untuk tabel membantu memastikan bahwa tabel tersebut tidak terhapus secara tidak sengaja selama operasi manajemen tabel normal administrator. Hal ini juga membantu mencegah gangguan terhadap operasi bisnis normal.

 Pemilik tabel atau administrator yang berwenang mengontrol properti perlindungan penghapusan untuk setiap tabel. Properti perlindungan penghapusan untuk setiap tabel dinonaktifkan secara default. Ini termasuk replika global, dan tabel yang dipulihkan dari cadangan. Ketika perlindungan penghapusan dinonaktifkan untuk sebuah tabel, tabel tersebut dapat dihapus oleh pengguna mana pun yang diberi wewenang oleh kebijakan Manajemen Identitas dan Akses (IAM). Ketika perlindungan penghapusan diaktifkan untuk sebuah tabel, tabel tersebut tidak dapat dihapus oleh siapa pun. 

Untuk mengubah pengaturan ini, buka **Pengaturan tambahan** tabel, arahkan ke panel **Perlindungan Penghapusan** dan pilih **Aktifkan perlindungan penghapusan**. 

Properti proteksi penghapusan didukung oleh konsol DynamoDB, API, CLI/SDK dan. CloudFormation`CreateTable` API mendukung properti proteksi penghapusan pada waktu pembuatan tabel, dan `UpdateTable` API mendukung perubahan properti proteksi penghapusan untuk tabel yang ada.

**catatan**  
Jika AWS akun dihapus, semua data akun tersebut termasuk tabel masih dihapus dalam waktu 90 hari.
Jika DynamoDB kehilangan akses ke kunci yang dikelola pelanggan yang digunakan untuk mengenkripsi tabel, DynamoDB akan tetap mengarsipkan tabel tersebut. Pengarsipan melibatkan membuat cadangan tabel dan menghapus aslinya.

## Mencantumkan nama tabel
<a name="WorkingWithTables.Basics.ListTables"></a>

`ListTables`Operasi mengembalikan nama-nama tabel DynamoDB untuk akun AWS saat ini dan Wilayah.

**Example**  
 AWS CLI Contoh berikut menunjukkan bagaimana untuk daftar nama tabel DynamoDB.  

```
aws dynamodb list-tables
```

## Menggambarkan kuota throughput yang disediakan
<a name="WorkingWithTables.Basics.DescribeLimits"></a>

`DescribeLimits`Operasi mengembalikan kuota kapasitas baca dan tulis saat ini untuk AWS akun saat ini dan Wilayah.

**Example**  
 AWS CLI Contoh berikut menunjukkan bagaimana mendeskripsikan kuota throughput yang disediakan saat ini.  

```
aws dynamodb describe-limits
```
Output menunjukkan kuota atas unit kapasitas baca dan tulis untuk AWS akun saat ini dan Wilayah.

Untuk informasi selengkapnya tentang kuota ini, dan cara meminta peningkatan kuota, lihat [Kuota default throughput](ServiceQuotas.md#default-limits-throughput).