Jenis data dan aturan penamaan yang didukung di Amazon DynamoDB - Amazon DynamoDB

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

Jenis data dan aturan penamaan yang didukung di Amazon DynamoDB

Bagian ini menjelaskan aturan penamaan Amazon DynamoDB dan berbagai tipe daya yang didukung DynamoDB. Ada batasan yang berlaku untuk tipe daya. Untuk informasi selengkapnya, lihat Tipe Data.

Peraturan penamaan

Tabel, atribut, dan objek lain di DynamoDB harus memiliki nama. Nama harus bermakna dan ringkas-misalnya, nama-nama seperti Produk, Buku, dan Penulis sudah cukup jelas.

Berikut ini adalah aturan penamaan untuk DynamoDB:

  • Semua nama harus dikodekan menggunakan UTF-8, dan peka huruf kapital.

  • Nama tabel dan nama indeks panjangnya harus antara 3 hingga 255 karakter, dan hanya dapat berisi karakter berikut:

    • a-z

    • A-Z

    • 0-9

    • _ (garis bawah)

    • - (dasbor)

    • . (titik)

  • Nama atribut harus memiliki panjang minimal satu karakter dan berukuran kurang dari 64 KB. Hal ini dianggap sebagai praktik terbaik untuk menjaga nama atribut Anda sesingkat mungkin. Hal ini membantu mengurangi penggunaan unit permintaan baca, karena nama atribut disertakan dalam pengukuran penyimpanan dan penggunaan throughput.

    Berikut ini adalah pengecualiannya. Panjang nama atribut berikut tidak boleh lebih dari 255 karakter:

    • Nama kunci partisi indeks sekunder

    • Nama kunci urutan indeks sekunder

    • Nama atribut proyeksi yang ditentukan pengguna (hanya berlaku untuk indeks sekunder lokal)

Kata-kata khusus dan karakter khusus

DynamoDB memiliki daftar kata-kata khusus dan karakter khusus. Untuk daftar lengkap, lihat Disimpan kata-kata di DynamoDB. Selain itu, karakter berikut memiliki arti khusus dalam DynamoDB: # (hash) dan :(titik dua).

Meskipun DynamoDB mengizinkan Anda menggunakan kata-kata khusus dan karakter khusus ini untuk nama, kami menyarankan agar Anda menghindari melakukannya karena Anda harus menentukan variabel placeholder setiap kali Anda menggunakan nama-nama ini dalam sebuah ekspresi. Untuk informasi selengkapnya, lihat Nama atribut ekspresi di DynamoDB.

Tipe Data

DynamoDB mendukung banyak tipe data berbeda untuk atribut dalam tabel. Hal tersebut dapat dikategorikan sebagai berikut:

  • Jenis Skalar - Jenis skalar dapat mewakili tepat satu nilai. Jenis skalar adalah angka, string, biner, Boolean, dan null.

  • Jenis Dokumen — Jenis dokumen dapat mewakili struktur kompleks dengan atribut bertingkat, seperti yang Anda temukan di dokumen JSON. Jenis dokumen adalah daftar dan peta.

  • Jenis Set - Jenis set dapat mewakili beberapa nilai skalar. Jenis set adalah set string, set angka, dan set biner.

Saat Anda membuat tabel atau indeks sekunder, Anda harus menentukan nama dan tipe data dari setiap atribut kunci primer (kunci partisi dan kunci urutan). Selanjutnya, setiap atribut kunci primer harus didefinisikan sebagai tipe string, angka, atau biner.

DynamoDB adalah database NoSQL dan tidak berskema. Artinya, selain atribut kunci primer, Anda tidak perlu mendefinisikan atribut atau tipe data apa pun saat membuat tabel. Sebagai perbandingan, database relasional mengharuskan Anda menentukan nama dan tipe data setiap kolom saat Anda membuat tabel.

Berikut penjelasan masing-masing tipe data beserta contohnya dalam format JSON.

Jenis skalar

Jenis skalar adalah angka, string, biner, Boolean, dan null.

Angka

Angka bisa positif, negatif, atau nol. Angka dapat memiliki hingga 38 digit presisi. Melebihi hasil ini dalam pengecualian. Jika Anda membutuhkan presisi lebih dari 38 digit, Anda dapat menggunakan string.

  • Kisaran positif: 1E-130 hingga 9,9999999999999999999999999999999999999E+125

  • Kisaran negatif: -9,9999999999999999999999999999999999999E+125 hingga -1E-130

Di DynamoDB, angka direpresentasikan sebagai panjang variabel. Angka nol di depan dan di belakang dipangkas.

Semua angka dikirim melalui jaringan untuk DynamoDB sebagai string, untuk memaksimalkan kompatibilitas di seluruh bahasa dan pustaka. Namun, DynamoDB memperlakukannya sebagai atribut tipe angka untuk operasi matematika.

Anda dapat menggunakan tipe data angka untuk mewakili tanggal atau stempel waktu. Salah satu cara untuk melakukannya adalah dengan menggunakan epoch time—jumlah detik sejak 00:00:00 UTC pada tanggal 1 Januari 1970. Sebagai contoh, jangka waktu 1437136300 mewakili 12:31:40 PM UTC pada tanggal 17 Juli 2015.

Untuk informasi selengkapnya, lihat http://en.wikipedia.org/wiki/Unix_time.

String

String adalah Unicode dengan pengodean biner UTF-8. Panjang minimum string bisa nol, jika atribut tidak digunakan sebagai kunci untuk indeks atau tabel, dan dibatasi oleh batas ukuran item DynamoDB maksimum sebesar 400 KB.

Batasan tambahan berikut berlaku untuk atribut kunci primer yang didefinisikan sebagai tipe string:

  • Untuk kunci primer sederhana, panjang maksimum nilai atribut pertama (kunci partisi) adalah 2048 byte.

  • Untuk kunci primer komposit, panjang maksimum nilai atribut kedua (kunci urutan) adalah 1024 byte.

DynamoDB menyusun dan membandingkan string menggunakan byte pengkodean string UTF-8 yang mendasarinya. Misalnya, "a" (0x61) lebih besar dari "A" (0x41), dan "¿" (0xC2BF) lebih besar dari "z" (0x7A).

Anda dapat menggunakan tipe data string untuk mewakili tanggal atau stempel waktu. Salah satu cara untuk melakukannya adalah dengan menggunakan string ISO 8601, seperti yang ditunjukkan dalam contoh berikut:

  • 2016-02-15

  • 2015-12-21T17:42:34Z

  • 20150311T122706Z

Untuk informasi selengkapnya, lihat http://en.wikipedia.org/wiki/ISO_8601.

catatan

Tidak seperti database relasional konvensional, DynamoDB tidak mendukung tipe daya tanggal dan waktu. Akan lebih berguna jika menyimpan data tanggal dan waktu sebagai tipe data angka, menggunakan jangka waktu Unix.

Biner

Atribut tipe biner dapat menyimpan data biner apa pun, seperti teks terkompresi, data terenkripsi, atau gambar. Setiap kali DynamoDB membandingkan nilai biner, DynamoDB memperlakukan setiap byte data biner sebagai tidak terdaftar.

Panjang atribut biner bisa nol, jika atribut tersebut tidak digunakan sebagai kunci untuk indeks atau tabel, dan dibatasi oleh batas ukuran item DynamoDB maksimum sebesar 400 KB.

Jika Anda mendefinisikan atribut kunci primer sebagai atribut tipe biner, batasan tambahan berikut akan berlaku:

  • Untuk kunci primer sederhana, panjang maksimum nilai atribut pertama (kunci partisi) adalah 2048 byte.

  • Untuk kunci primer komposit, panjang maksimum nilai atribut kedua (kunci urutan) adalah 1024 byte.

Aplikasi Anda harus mengkodekan nilai biner dalam format yang dikodekan base64 sebelum mengirimkannya ke DynamoDB. Setelah menerima nilai-nilai ini, DynamoDB mendekodekan data ke dalam array byte yang tidak ditandatangani dan menggunakannya sebagai panjang atribut biner.

Contoh berikut adalah atribut biner, menggunakan teks berkode base64.

dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk

Boolean

Atribut tipe Boolean dapat menyimpan salah satu true atau false.

Null

Null melambangkan atribut dengan status tidak diketahui atau tidak ditentukan.

Jenis dokumen

Jenis dokumen adalah daftar dan peta. Tipe data ini dapat disarangkan satu sama lain, untuk mewakili struktur data kompleks hingga sedalam 32.

Tidak ada batasan jumlah nilai dalam daftar atau peta, selama item yang berisi nilai tersebut sesuai dengan batas ukuran item DynamoDB (400 KB).

Nilai atribut dapat berupa string kosong atau nilai biner kosong jika atribut tersebut tidak digunakan untuk tabel atau kunci indeks. Nilai atribut tidak boleh berupa set kosong (set string, set angka, atau set biner), namun daftar dan peta kosong diperbolehkan. String kosong dan nilai biner diperbolehkan dalam daftar dan peta. Untuk informasi selengkapnya, lihat Atribut.

Daftar

Atribut jenis daftar dapat menyimpan kumpulan nilai yang diurutkan. Daftar diapit tanda kurung siku: [ ... ]

Daftar mirip dengan array JSON. Tidak ada batasan pada tipe daya yang dapat disimpan dalam elemen daftar, dan elemen dalam elemen daftar tidak harus bertipe sama.

Contoh berikut memperlihatkan daftar yang berisi dua string dan sebuah angka.

FavoriteThings: ["Cookies", "Coffee", 3.14159]
catatan

DynamoDB memungkinkan Anda bekerja dengan elemen individual dalam daftar, meskipun elemen tersebut sangat bersarang. Untuk informasi selengkapnya, lihat Menggunakan ekspresi di DynamoDB.

Peta

Atribut jenis peta dapat menyimpan kumpulan pasangan nama-nilai yang tidak berurutan. Peta diapit kurung kurawal: { ... }

Peta serupa dengan objek JSON. Tidak ada batasan pada tipe data yang dapat disimpan dalam elemen peta, dan elemen dalam peta tidak harus bertipe sama.

Peta ideal untuk menyimpan dokumen JSON di DynamoDB. Contoh berikut memperlihatkan peta yang berisi string, angka, dan daftar bertumpuk yang berisi peta lain.

{ Day: "Monday", UnreadEmails: 42, ItemsOnMyDesk: [ "Coffee Cup", "Telephone", { Pens: { Quantity : 3}, Pencils: { Quantity : 2}, Erasers: { Quantity : 1} } ] }
catatan

DynamoDB memungkinkan Anda bekerja dengan elemen individual dalam peta, meskipun elemen tersebut sangat bersarang. Untuk informasi selengkapnya, lihat Menggunakan ekspresi di DynamoDB.

Set

DynamoDB mendukung jenis yang mewakili set angka, string, atau nilai-nilai biner. Semua elemen di dalam set harus dari jenis yang sama. Misalnya, Set Angka hanya dapat berisi angka dan Set String hanya dapat berisi string.

Tidak ada batasan jumlah nilai dalam set, selama item yang berisi nilai tersebut sesuai dengan batas ukuran item DynamoDB (400 KB).

Setiap nilai dalam suatu set harus unik. Urutan nilai dalam suatu set tidak dipertahankan. Oleh karena itu, aplikasi Anda tidak boleh bergantung pada urutan elemen tertentu dalam set tersebut. DynamoDB tidak mendukung set kosong, namun string kosong dan nilai biner diperbolehkan dalam satu set.

Contoh berikut menunjukkan set string, set angka, dan set biner:

["Black", "Green", "Red"] [42.2, -19, 7.5, 3.14] ["U3Vubnk=", "UmFpbnk=", "U25vd3k="]

Deskriptor tipe daya

Protokol API DynamoDB tingkat rendah menggunakan Deskriptor tipe data sebagai token yang memberi tahu DynamoDB cara menafsirkan setiap atribut.

Berikut ini adalah daftar lengkap deskriptor tipe daya DynamoDB:

  • S – String

  • N – Nomor

  • B – Biner

  • BOOL – Boolean

  • NULL – Null

  • M – Peta

  • L – Daftar

  • SS – Set String

  • NS – Set Nomor

  • BS – Set Biner