Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gambaran umum DynamoDB
Amazon DynamoDB adalah basis data dokumen dan nilai kunci NoSQL yang memberikan performa yang cepat dan dapat diprediksi dengan skalabilitas sempurna. Ini adalah database yang dikelola sepenuhnya, Multi-wilayah, multi-aktif, dan tahan lama. (Fitur tabel global di DynamoDB menyinkronkan modifikasi yang dibuat di satuAWS Wilayah ke semua Wilayah terpilih lainnya secara otomatis, untuk memberikan dukungan multi-aktif.) DynamoDB memiliki kemampuan keamanan bawaan, opsi pencadangan dan pemulihan, dan caching dalam memori untuk aplikasi skala internet.
Sifat schemaless database NoSQL membantu mengurangi waktu dan proses yang diperlukan untuk mendorong perubahan database (baca skema) ke produksi, sehingga memungkinkan pengembangan aplikasi yang cepat (RAD). Database NoSQL seperti DynamoDB dibuat untuk operasi baca/tulis berkinerja tinggi.
Fitur dan manfaat
DynamoDB menyediakan fitur-fitur dan manfaat berikut:
-
Tidak ada server untuk dikelola - DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya, yang berarti tidak melibatkan overhead pemeliharaan server apa pun.
-
Schemaless - DynamoDB mendukung pengembangan dan penyebaran aplikasi yang cepat.
-
Kinerja pada skala — DynamoDB memberikan performa yang cepat dan dapat diprediksi dengan skalabilitas sempurna.
-
Dukungan ACID — DynamoDB mendukung transaksi atomisitas, konsistensi, isolasi, dan daya tahan (ACID), untuk membantu Anda mempertahankan kebenaran data.
-
Ketersediaan dan daya tahan tinggi — Data Anda disimpan pada solid-state disk (SSD) dan secara otomatis direplikasi di beberapa Availability Zones diAWS Wilayah, memberikan ketersediaan tinggi dan daya tahan data.
-
Penskalaan otomatis — DynamoDB menggunakan layananAWS Application Auto Scaling untuk secara dinamis menyesuaikan kapasitas throughput yang disediakan sebagai respons terhadap pola lalu lintas.
-
Opsi harga fleksibel - DynamoDB menyediakan dua mode kapasitas dengan opsi penagihan tertentu: mode kapasitas sesuai permintaan dan mode kapasitas yang disediakan.
-
oint-in-time Pemulihan P - Anda dapat mengaktifkan pencadangan berkelanjutan menggunakan point-in-time pemulihan untuk membantu melindungi tabel Anda dari operasi penulisan atau penghapusan yang tidak disengaja, dan mengembalikan tabel Anda ke titik waktu mana pun selama 35 hari terakhir.
-
Time to Live (TTL) - Anda dapat secara otomatis menghapus item dari tabel DynamoDB setelah durasi tertentu.
-
Tabel global - Anda dapat menyebarkan beberapa replika di seluruhAWS Wilayah tanpa harus membangun solusi replikasi Anda sendiri.
-
Indeks sekunder global - Anda dapat menanyakan tabel DynamoDB Anda dengan menggunakan kunci partisi dan sortir yang berbeda dari kunci partisi dan sortir tabel sendiri.
-
DAX - Layanan caching DynamoDB Accelerator (DAX) menyediakan waktu respons sub-milidetik untuk operasi baca.
-
DynamoDB Streams - Fitur ini menyediakan urutan waktu modifikasi level item dalam log untuk mendukung pelacakan waktu dan pemberitahuan perubahan dalam tabel DynamoDB.
Untuk informasi selengkapnya tentang manfaat ini, lihat Fitur Amazon DynamoDB
Kunci partisi
DynamoDB adalah schemaless, jadi tidak perlu mendefinisikan semua atribut untuk tabel. Atribut kunci partisi diperlukan, dan kunci pengurutan bersifat opsional. Sisa atribut sewenang-wenang dan dapat bervariasi per item. Kami menyarankan Anda memilih kunci partisi dengan kardinalitas tinggi sehingga item yang sering diakses tidak berada pada partisi yang sama. Praktik ini membantu Anda menghindari ketidakseimbangan akses data dan partisi panas. Untuk informasi selengkapnya, lihat Praktik terbaik untuk merancang dan menggunakan kunci partisi secara efektif dalam dokumentasi DynamoDB.
Indeks
Indeks memberikan Anda akses ke pola kueri alternatif dan dapat mempercepat kueri. Anda harus membuat indeks dengan hati-hati, terlepas dari apakah Anda menggunakan database relasional atau DynamoDB. Setiap kali sebuah operasi tulis terjadi pada tabel, semua indeks untuk tabel harus diperbarui.
Indeks sekunder global berisi pilihan atribut dari tabel dasar, tetapi atribut tersebut diatur oleh kunci primer yang berbeda dari kunci utama tabel. Di DynamoDB, indeks sekunder global bersifat jarang secara default. Artinya, kunci semacam adalah opsional dan tidak muncul di setiap item tabel. Untuk memanfaatkan fitur ini, Anda dapat membuat indeks sekunder global yang menyimpan dan memproyeksikan hanya atribut yang diperlukan. Anda dapat memiliki hingga 20 indeks sekunder global pada tabel DynamoDB. Untuk informasi selengkapnya tentang fitur ini, lihat Menggunakan indeks sekunder global di DynamoDB dalam dokumentasi DynamoDB.
Waktu untuk tayang
Anda dapat mengatur properti Waktu untuk tayang (TTL) pada tabel DynamoDB untuk menentukan stempel waktu per item (record) untuk menentukan kapan item tidak lagi diperlukan. Tidak lama setelah stempel yang ditentukan, DynamoDB menghapus item dari tabel tanpa mengonsumsi unit kapasitas tambahan. Untuk informasi selengkapnya tentang fitur ini, lihat Item kedaluwarsa menggunakan DynamoDB Time to Live di dokumentasi DynamoDB.
Model harga
DynamoDB menawarkan dua model harga untuk dipilih: kapasitas yang disediakan dan kapasitas sesuai permintaan. Pilihan model penetapan harga Anda bergantung pada beban kerja Anda yang diproyeksikan.
Model harga | Jenis beban kerja | Biaya | Baca/tulis throughput |
---|---|---|---|
Kapasitas yang disediakan | Dapat diprediksi | Lebih rendah | Anda menentukan jumlah operasi baca/tulis per detik dalam hal unit kapasitas baca (RCU) dan unit kapasitas tulis (WCU). Misalnya:
Anda dapat mengaktifkan penskalaan otomatis untuk menyesuaikan kapasitas sebagai respons terhadap perubahan lalu lintas. |
Kapasitas sesuai permintaan | Dinamis | Lebih tinggi | Anda tidak menentukan persyaratan throughput. DynamoDB mengakomodasi beban kerja Anda secara otomatis. Anda dikenakan biaya untuk baca dan tulis yang dilakukan aplikasi Anda pada tabel dalam hal unit permintaan baca dan unit permintaan tulis. Misalnya:
|
Untuk informasi selengkapnya tentang kedua model ini, lihat mode kapasitas baca/tulis dalam dokumentasi DynamoDB.
Transaksi
DynamoDB mendukung transaksi atomisitas, konsistensi, isolasi, dan daya tahan (ACID) di satu tabel atau beberapa tabel dalam satuAWS akun danAWS Wilayah.
Untuk mengelola perubahan pada beberapa item di dalam dan di seluruh tabel, Anda dapat menggunakanTransactGetItems
APITransactWriteItems
dan transaksional DynamoDB.
-
TransactWriteItems
adalah operasi batch yang berisi set tulis dengan satu atau lebihPutItem
,UpdateItem
, danDeleteItem
tindakan.TransactWriteItems
opsional dapat memeriksa kondisi prasyarat yang harus dipenuhi sebelum membuat update. Kondisi ini mungkin melibatkan item yang sama dengan yang ada di set tulis, atau item yang berbeda. Jika ada kondisi yang tidak terpenuhi, transaksi ditolak. -
TransactGetItems
adalah operasi batch yang berisi set baca dengan satu atau lebihGetItem
tindakan. Jika Anda mengeluarkanTransactGetItems
permintaan pada item yang merupakan bagian dari transaksi tulis aktif, transaksi baca dibatalkan. Untuk mendapatkan nilai yang sebelumnya berkomitmen, Anda dapat menggunakan operasi baca standar.
Untuk informasi selengkapnya tentang API ini, lihat transaksi Amazon DynamoDB: cara kerjanya dalam dokumentasi DynamoDB.
Keterbatasan
Operasi API transaksional DynamoDB memiliki keterbatasan berikut:
-
Transaksi tidak dapat memperbarui lebih dari 100 item unik.
-
Transaksi tidak boleh berisi lebih dari 4 MB data.
-
Tidak ada dua tindakan dalam transaksi yang dapat bekerja berdasarkan item yang sama dalam tabel yang sama. Sebagai contoh, Anda tidak dapat menjalankan keduanya
ConditionCheck
danUpdate
tindakan pada item yang sama dalam satu transaksi. -
Transaksi tidak dapat beroperasi pada tabel di lebih dari satu akun AWS atau Wilayah.
-
Operasi transaksional memberikan jaminan ACID hanya dalamAWS Wilayah di mana operasi tulis awalnya berlangsung. Transaksi tidak didukung di seluruh Wilayah dalam tabel global.
-
Model persistensi objek tidak mendukung transaksi. Untuk menggunakan fitur transaksi, Anda harus mengakses database dan tabel menggunakan API tingkat rendah DynamoDB.
Komponen besar
DynamoDB memiliki batas ukuran 400 KB untuk setiap item. Batas ini mencakup nama atribut (panjang biner dengan pengkodean UTF-8) dan nilai atribut (lagi panjang biner). Nama atribut dihitung terhadap batas ukuran. Sebagai contoh, pertimbangkan item yang memiliki dua atribut: satu atribut bernama “IN” dan atribut lain bernama "country-phone-prefix" dengan nilai “91". Ukuran total item tersebut adalah 36 byte.
Solusi
Jika item dikaitkan dengan banyak atribut dan properti, atau sejumlah besar data, ukurannya mungkin melebihi 400 KB. Dalam kasus ini, Anda dapat menyimpan item serial di Amazon Simple Storage Service (Amazon S3) dalam format JSON, dan menyimpan lokasi Amazon S3 sebagai atribut (S3Location
) di item. Operasi baca dan tulis untuk item tersebut mengambil objek S3 dan memperbarui string JSON. Primary key, sort key, dan semua atribut yang digunakan oleh indeks lokal dan indeks sekunder global harus disimpan dalam tabel bersama denganS3Location
atribut. Ini memerlukan logika tambahan dalam aplikasi (lapisan akses data) untuk memeriksaS3Location
atribut dan mengambil data item lengkap dari Amazon S3.
Backup dan pemulihan
Backup dan restore dukungan adalah ekspektasi fitur umum dalam database apapun. DynamoDB secara native mendukung operasi pencadangan dan pemulihan dalam akun yang sama, tetapi Anda dapat melakukan penyalinan tabel di beberapa akun dengan menggunakan opsi atau proses lain. Proses ini tidak mengkonsumsi unit kapasitas baca/tulis apa pun. Untuk informasi selengkapnya, lihat panduan Opsi salinan tabel lengkap lintas akun untuk Amazon DynamoDB di situs web PanduanAWS Preskriptif.
Keterbatasan
DynamoDB saat ini mendukung pencadangan dan pemulihan lintas akun dengan menggunakan AWS Backup, tetapi akun harus menjadi bagian dari organisasi yang sama. Anda dapat mengatasi batasan ini dengan mengadopsi salah satu solusi berikut:
-
Implementasi kustom dalam bahasa pemrograman pilihan Anda (misalnya, .NET, Java, atau Python) dengan menggunakan AWSSDK. Anda dapat memindai item dari tabel sumber di akun A dan menulis item (
BatchWrite
) ke tabel di akun B. Anda dapat menjalankan kode ini di server, di komputer lokal, atau diAWS Lambda (jika database kecil dan skrip membutuhkan waktu kurang dari 15 menit untuk dijalankan). Untuk informasi selengkapnya, lihat pola Salin tabel Amazon DynamoDB di seluruh akun menggunakan implementasi kustom di situs web PanduanAWS Preskriptif. -
MenggunakanAWS Data Pipeline. Anda dapat mengekspor (memindai) dari tabel sumber dan mengimpor (menulis) ke dalam tabel target. Untuk informasi selengkapnya, lihat Mengekspor dan mengimpor data DynamoDB menggunakanAWS Data Pipeline dokumentasi DynamoDB.
-
MenggunakanAWS Glue. Untuk informasi tentang opsi ini, lihat panduan Opsi salinan tabel lengkap lintas akun untuk Amazon DynamoDB di situs web PanduanAWS Preskriptif.
Bahasa dan dukungan SDK
AWSSDK menyediakan antarmuka pemrograman yang disederhanakan untukAWS layanan dan dukungan untuk .NET, JavaScript Java,, Node.js, Python, PHP, dan Ruby.
Anda dapat memilih dari tiga pola untuk mengakses tabel DynamoDB dengan menggunakanAWS SDK: model persistensi objek (antarmuka tingkat tinggi), antarmuka dokumen, dan antarmuka tingkat rendah. Untuk informasi selengkapnya, lihat Pola akses dalam panduan ini.