Membuat tabel dengan indeks dan memasukkan dokumen - Database Buku Besar Amazon Quantum (AmazonQLDB)

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

penting

Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat Memigrasi QLDB Buku Besar Amazon ke Amazon Aurora Postgre. SQL

Setelah membuat QLDB buku besar Amazon, langkah pertama Anda adalah membuat tabel dengan CREATE TABLE pernyataan dasar. Tabel terdiri dariQLDB dokumen, yang merupakan kumpulan data dalam format Amazon Ionstruct.

Membuat tabel dan indeks

Tabel memiliki nama sederhana dan peka huruf besar/kecil tanpa ruang nama. QLDBmendukung konten terbuka dan tidak menerapkan skema, sehingga Anda tidak menentukan atribut atau tipe data saat membuat tabel.

CREATE TABLE VehicleRegistration
CREATE TABLE Vehicle

Sebuah CREATE TABLE pernyataan mengembalikan ID system-ditugaskan dari tabel baru. Semua system-assigned IDs in QLDB adalah identifier unik universal (UUID) yang masing-masing diwakili dalam string Base62 yang dikodekan.

catatan

Secara opsional, Anda dapat menentukan tag untuk sumber daya tabel saat Anda membuat tabel. Untuk mempelajari caranya, lihat Menandai tabel pada pembuatan.

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

QLDBmembutuhkan indeks untuk mencari dokumen secara efisien. Tanpa indeks, QLDB perlu melakukan pemindaian tabel lengkap 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 klausa WHERE predikat menggunakan operator kesetaraan (=atauIN) 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 setiap tipe data Ion, termasuk list danstruct. Namun, Anda hanya dapat melakukan pencarian yang diindeks berdasarkan kesetaraan seluruh nilai Ion terlepas dari jenis Ion. Misalnya, saat menggunakan list tipe sebagai indeks, Anda tidak dapat melakukan pencarian yang diindeks oleh satu item di dalam daftar.

  • Kinerja kueri ditingkatkan hanya ketika Anda menggunakan predikat kesetaraan; misalnya, WHERE indexedField = 123 atau. WHERE indexedField IN (456, 789)

    QLDBtidak menghormati ketidaksetaraan dalam predikat kueri. Akibatnya, rentang pemindaian yang difilter tidak diterapkan.

  • Nama bidang yang diindeks peka huruf besar/kecil dan dapat memiliki maksimal 128 karakter.

  • Pembuatan indeks di QLDB 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.

Menyisipkan dokumen

Kemudian Anda dapat memasukkan dokumen ke dalam tabel Anda. QLDBdokumen disimpan dalam format Amazon Ion. Pernyataan INSERT PartiQL berikut mencakup subset dari data sampel registrasi kendaraan yang digunakan dalam. Memulai dengan QLDB konsol Amazon

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 dan semantik PartiQL
  • Nama bidang terlampir dalam tanda kutip tunggal ()'...'.

  • Nilai string juga terlampir dalam tanda kutip tunggal ()'...'.

  • Stempel waktu tertutup dalam backticks (). `...` Backticks dapat digunakan untuk menunjukkan setiap literal Ion.

  • Bilangan bulat dan desimal adalah nilai literal yang tidak perlu dilambangkan.

Untuk detail lebih lanjut tentang sintaks dan semantik PartiQL, lihat. Meminta Ion dengan PartiQL di Amazon QLDB

INSERTPernyataan membuat revisi awal dokumen dengan nomor versi nol. Untuk mengidentifikasi setiap dokumen secara unik, QLDB berikan ID dokumen sebagai bagian dari metadata. Sisipkan pernyataan mengembalikan ID dari setiap dokumen yang disisipkan.

penting

Karena QLDB tidak menerapkan skema, Anda dapat menyisipkan dokumen yang sama ke dalam tabel beberapa kali. Setiap pernyataan insert melakukan entri dokumen terpisah ke jurnal, dan QLDB menetapkan setiap dokumen ID unik.

Untuk mempelajari cara menanyakan dokumen yang Anda masukkan ke dalam tabel, lanjutkan keMenanyakan data Anda.