Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat tabel dengan indeks dan memasukkan dokumen
Setelah membuat buku besar Amazon QLDB, langkah pertama Anda adalah membuat tabel denganCREATE TABLE pernyataan dasar. Tabel terdiri dariDokumen QLDB B B B B B B B, yang merupakan kumpulan data dalamstruct
format Amazon Ion.
Membuat tabel dan indeks
Tabel memiliki sederhana, nama case-sensitive tanpa ruang nama. QLDB mendukung konten terbuka dan tidak menegakkan skema, sehingga Anda tidak menentukan atribut atau tipe data saat membuat tabel.
CREATE TABLE VehicleRegistration
CREATE TABLE Vehicle
SebuahCREATE TABLE
pernyataan mengembalikan ID sistem-ditugaskan dari tabel baru. Semua ID yang ditetapkan sistem di QLDB adalah pengidentifikasi unik universal (UUID) yang masing-masing diwakili dalam string yang dikodekan Base62.
catatan
Secara opsional, Anda dapat menentukan tag untuk sumber daya tabel saat Anda membuat tabel. Untuk mempelajari caranya, lihat Beri tag pada tabel saat penciptaan.
Anda juga dapat membuat indeks pada tabel untuk mengoptimalkan kinerja kueri.
CREATE INDEX ON VehicleRegistration (VIN)
CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
CREATE INDEX ON Vehicle (VIN)
penting
QLDB membutuhkan indeks untuk secara efisien mencari dokumen. Tanpa indeks, QLDB perlu melakukan pemindaian meja penuh saat membaca dokumen. Hal ini dapat menyebabkan masalah kinerja pada tabel besar, termasuk konflik konkurensi dan batas waktu transaksi.
Untuk menghindari pemindaian tabel, Anda harus menjalankan pernyataan dengan klausaWHERE
predikat menggunakan operator kesetaraan (=
orIN
) pada bidang yang diindeks atau ID dokumen. Untuk informasi selengkapnya, lihat Mengoptimalkan kinerja kueri.
Perhatikan kendala berikut saat membuat indeks:
-
Indeks hanya dapat dibuat pada satu bidang tingkat atas. Indeks komposit, bersarang, unik, dan berbasis fungsi tidak didukung.
-
Anda dapat membuat indeks pada jenis data Ion apa pun, termasuk
list
danstruct
. Namun, Anda hanya dapat melakukan pencarian terindeks dengan kesetaraan seluruh nilai Ion terlepas dari jenis Ion. Misalnya, saat menggunakanlist
tipe sebagai indeks, Anda tidak dapat melakukan pencarian terindeks oleh satu item di dalam daftar. -
Kinerja kueri ditingkatkan hanya jika Anda menggunakan predikat kesetaraan; misalnya,
WHERE indexedField = 123
atauWHERE indexedField IN (456, 789)
.QLDB tidak menghormati ketidaksetaraan dalam predikat query. Akibatnya, pemindaian rentang yang difilter tidak diimplementasikan.
-
Nama bidang yang diindeks adalah huruf kapital dan dapat memiliki maksimal 128 karakter.
-
Pembuatan indeks di QLDB bersifat asinkron. Jumlah waktu yang dibutuhkan untuk menyelesaikan membangun indeks pada tabel yang tidak kosong bervariasi tergantung pada ukuran tabel. Untuk informasi selengkapnya, lihat Mengelola indeks.
Memasukkan dokumen
Kemudian Anda dapat memasukkan dokumen ke dalam tabel Anda. Dokumen QLDB disimpan dalam format Amazon Ion. SISIPKANPernyataan PartiQL berikut termasuk bagian dari data sampel pendaftaran kendaraan yang digunakan dalamMemulai dengan konsol Amazon QLDB.
INSERT INTO VehicleRegistration << { 'VIN' : '1N4AL11D75C109151', 'LicensePlateNumber' : 'LEWISR261LL', 'State' : 'WA', 'City' : 'Seattle', 'PendingPenaltyTicketAmount' : 90.25, 'ValidFromDate' : `2017-08-21T`, 'ValidToDate' : `2020-05-11T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId' : '294jJ3YUoH1IEEm8GSabOs' }, 'SecondaryOwners' : [ { 'PersonId' : '5Ufgdlnj06gF5CWcOIu64s' } ] } }, { 'VIN' : 'KM8SRDHF6EU074761', 'LicensePlateNumber' : 'CA762X', 'State' : 'WA', 'City' : 'Kent', 'PendingPenaltyTicketAmount' : 130.75, 'ValidFromDate' : `2017-09-14T`, 'ValidToDate' : `2020-06-25T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': 'IN7MvYtUjkp1GMZu0F6CG9' }, 'SecondaryOwners' : [] } } >>
INSERT INTO Vehicle << { 'VIN' : '1N4AL11D75C109151', 'Type' : 'Sedan', 'Year' : 2011, 'Make' : 'Audi', 'Model' : 'A5', 'Color' : 'Silver' } , { 'VIN' : 'KM8SRDHF6EU074761', 'Type' : 'Sedan', 'Year' : 2015, 'Make' : 'Tesla', 'Model' : 'Model S', 'Color' : 'Blue' } >>
sintaks PartiQL dan semantik
-
Nama bidang disertakan dalam tanda kutip tunggal (
'...'
). -
Nilai string juga tertutup dalam tanda kutip tunggal (
'...'
). -
Stempel waktu disertakan dalam backtick (
`...`
). Backticks dapat digunakan untuk menunjukkan literal Ion apa pun. -
Bilangan bulat dan desimal adalah nilai literal yang tidak perlu dilambangkan.
Untuk rincian lebih lanjut tentang sintaks dan semantik PartiQL, lihatMenanyakan Ion dengan PartiQL di Amazon QLDB.
INSERT
Pernyataan menciptakan revisi awal dokumen dengan nomor versi nol. Untuk mengidentifikasi setiap dokumen secara unik, QLDB menetapkan ID dokumen sebagai bagian dari metadata. Insert pernyataan mengembalikan ID dari setiap dokumen yang dimasukkan.
penting
Karena QLDB tidak menegakkan skema, Anda dapat memasukkan dokumen yang sama ke dalam tabel beberapa kali. Setiap pernyataan insert melakukan entri dokumen terpisah ke jurnal, dan QLDB memberikan setiap dokumen ID unik.
Untuk mempelajari cara menanyakan dokumen yang Anda masukkan ke dalam tabel Anda, lanjutkan keMelakukan Kueri Data.