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 jenis daya yang didukung DynamoDB. Ada batasan yang berlaku untuk jenis daya. Untuk informasi selengkapnya, lihat Jenis 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 besar/kecil.

  • 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 Kata-kata penggunaan khusus 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 (alias) di DynamoDB.

Jenis Data

DynamoDB mendukung banyak jenis 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 bersarang, seperti apa yang akan Anda temukan dalam JSON dokumen. 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 jenis data dari setiap atribut kunci primer (kunci partisi dan kunci urutan). Selanjutnya, setiap atribut kunci primer harus didefinisikan sebagai jenis string, angka, atau biner.

DynamoDB adalah database SQL No dan tanpa skema. Artinya, selain atribut kunci primer, Anda tidak perlu mendefinisikan atribut atau jenis data apa pun saat membuat tabel. Sebagai perbandingan, basis data relasional mengharuskan Anda menentukan nama dan jenis data setiap kolom saat Anda membuat tabel.

Berikut ini adalah deskripsi dari setiap tipe data, bersama dengan contoh dalam JSON format.

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 jenis angka untuk operasi matematika.

Anda dapat menggunakan jenis 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 1 Januari 1970. Misalnya, waktu epoch 1437136300 mewakili 12:31:40 UTC pada 17 Juli 2015.

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

String

String adalah Unicode dengan UTF -8 pengkodean biner. 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 jenis 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 dari encoding string -8 yang mendasarinya. UTF Misalnya, "a" (0x61) lebih besar dari "A" (0x41), dan "¿" (0xC2BF) lebih besar dari "z" (0x7A).

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

  • 2016-02-15

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

  • 20150311T122706Z

Untuk informasi lebih lanjut, lihat http://en.wikipedia.org/wiki/ ISO _8601.

catatan

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

Biner

Atribut jenis 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 binari 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 jenis 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 mengodekan 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 binari.

Contoh berikut adalah atribut binari, menggunakan teks berkode base64.

dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk

Boolean

Atribut jenis 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. Jenis 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 JSON array. Tidak ada batasan pada jenis daya yang dapat disimpan dalam elemen daftar, dan elemen dalam elemen daftar tidak harus berjenis 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 mirip dengan JSON objek. Tidak ada batasan pada jenis data yang dapat disimpan dalam elemen peta, dan elemen dalam peta tidak harus berjenis sama.

Peta ideal untuk menyimpan JSON dokumen 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 jenis 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 jenis data DynamoDB:

  • S – String

  • N – Nomor

  • B – Biner

  • BOOL – Boolean

  • NULL – Null

  • M – Peta

  • L – Daftar

  • SS – Set String

  • NS – Set Nomor

  • BS – Set Biner