Operasi dasar pada tabel DynamoDB - Amazon DynamoDB

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

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

Membuat tabel

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.

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

  • 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, silakan lihat Tabel kapasitas yang disediakan dan Mengelola kapasitas throughput secara otomatis dengan penskalaan otomatis DynamoDB.

Contoh 1: Membuat tabel yang disediakan

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 2: Membuat tabel sesuai permintaan

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 3: Membuat tabel menggunakan kelas tabel akses standar-jarang DynamoDB

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

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.

contoh
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.) Tambahan 100 byte per item ini tidak digunakan dalam perhitungan unit kapasitas atau oleh operasi DescribeTable.

Memperbarui tabel

Operasi UpdateTable memungkinkan Anda melakukan salah satu hal berikut:

contoh

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.

contoh

AWS CLI Contoh berikut menunjukkan cara memodifikasi mode kapasitas baca/tulis tabel ke mode on-demand.

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

Menghapus tabel

Anda dapat menghapus tabel yang tidak digunakan dengan operasi DeleteTable. Menghapus tabel adalah operasi yang tidak dapat dipulihkan.

contoh

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

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. Saat perlindungan penghapusan dinonaktifkan untuk tabel, tabel dapat dihapus oleh pengguna mana pun yang diberi wewenang oleh kebijakan Identity and Access Management (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,,/dan. API CLI SDK AWS CloudFormationCreateTableAPIMendukung properti perlindungan penghapusan pada waktu pembuatan tabel, dan UpdateTable API mendukung mengubah properti perlindungan 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

ListTablesOperasi mengembalikan nama-nama tabel DynamoDB untuk akun AWS saat ini dan Wilayah.

contoh

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

aws dynamodb list-tables

Menggambarkan kuota throughput yang disediakan

DescribeLimitsOperasi mengembalikan kuota kapasitas baca dan tulis saat ini untuk AWS akun saat ini dan Wilayah.

contoh

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.