Membuat tabel dengan indeks dan memasukkan dokumen - Amazon Quantum Ledger Database (Amazon QLDB)

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, termasuklist 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.

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