Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Langkah 2: Buat tabel, indeks, dan data sampel dalam buku besar
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
Saat QLDB buku besar Amazon Anda aktif, Anda dapat mulai membuat tabel untuk data tentang kendaraan, pemiliknya, dan informasi pendaftarannya. Setelah membuat tabel dan indeks, Anda dapat memuatnya dengan data.
Pada langkah ini, Anda membuat empat tabel di vehicle-registration
buku besar:
-
VehicleRegistration
-
Vehicle
-
Person
-
DriversLicense
Anda juga membuat indeks berikut.
Nama tabel | Bidang |
---|---|
VehicleRegistration |
VIN |
VehicleRegistration |
LicensePlateNumber |
Vehicle |
VIN |
Person |
GovId |
DriversLicense |
LicensePlateNumber |
DriversLicense |
PersonId |
Anda dapat menggunakan QLDB konsol untuk secara otomatis membuat tabel ini dengan indeks dan memuatnya dengan data sampel. Atau, Anda dapat menggunakan editor PartiQL di konsol untuk menjalankan setiap pernyataan PartiQL secara manual. step-by-step
Untuk membuat tabel, indeks, dan data sampel
-
Buka QLDB konsol Amazon di https://console.aws.amazon.com/qldb
. -
Di panel navigasi, pilih Memulai.
-
Di bawah Opsi otomatis pada kartu data aplikasi Sampel, pilih
vehicle-registration
dalam daftar buku besar. -
Pilih Muat data sampel.
Jika operasi selesai dengan sukses, konsol akan menampilkan pesan Sampel data dimuat.
Skrip ini menjalankan semua pernyataan dalam satu transaksi. Jika ada bagian dari transaksi yang gagal, setiap pernyataan dibatalkan, dan pesan kesalahan yang sesuai ditampilkan. Anda dapat mencoba kembali operasi setelah mengatasi masalah apa pun.
catatan
-
Salah satu kemungkinan penyebab kegagalan transaksi adalah mencoba membuat tabel duplikat. Permintaan Anda untuk memuat data sampel akan gagal jika salah satu nama tabel berikut sudah ada di buku besar Anda:
VehicleRegistration
,,Vehicle
Person
, danDriversLicense
.Sebagai gantinya, coba muat data sampel ini dalam buku besar kosong.
-
Skrip ini menjalankan pernyataan berparameter
INSERT
. Jadi, pernyataan PartiQL ini dicatat di blok jurnal Anda dengan parameter pengikat, bukan data literal. Misalnya, Anda mungkin melihat pernyataan berikut di blok jurnal, di mana tanda tanya (?
) adalah placeholder variabel untuk isi dokumen.INSERT INTO Vehicle ?
-
Anda menyisipkan dokumen VehicleRegistration
dengan PrimaryOwner
bidang kosong, dan masuk DriversLicense
dengan PersonId
bidang kosong. Kemudian, Anda mengisi bidang ini dengan dokumen yang ditetapkan sistem id
dari tabel. Person
Tip
Sebagai praktik terbaik, gunakan bidang id
metadata dokumen ini sebagai kunci asing. Untuk informasi selengkapnya, lihat Meminta metadata dokumen.
Untuk membuat tabel, indeks, dan data sampel
-
Buka QLDB konsol Amazon di https://console.aws.amazon.com/qldb
. -
Di panel navigasi, pilih editor PartiQL.
-
Pilih
vehicle-registration
buku besar. -
Mulailah dengan membuat empat tabel. QLDBmendukung konten terbuka dan tidak menerapkan skema, sehingga Anda tidak menentukan atribut atau tipe data.
Di jendela editor kueri, masukkan pernyataan berikut, lalu pilih Jalankan. Untuk menjalankan pernyataan, Anda juga dapat menggunakan pintasan Ctrl Enter keyboard+untuk Windows, atau Cmd + Return untuk macOS. Untuk pintasan keyboard lainnya, lihatPintasan keyboard editor PartiQL.
CREATE TABLE VehicleRegistration
Ulangi langkah ini untuk masing-masing hal berikut.
CREATE TABLE Vehicle
CREATE TABLE Person
CREATE TABLE DriversLicense
-
Selanjutnya, buat indeks yang mengoptimalkan kinerja kueri untuk setiap tabel.
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.Di jendela editor kueri, masukkan pernyataan berikut, lalu pilih Jalankan.
CREATE INDEX ON VehicleRegistration (VIN)
Ulangi langkah ini untuk yang berikut ini.
CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
CREATE INDEX ON Vehicle (VIN)
CREATE INDEX ON Person (GovId)
CREATE INDEX ON DriversLicense (LicensePlateNumber)
CREATE INDEX ON DriversLicense (PersonId)
-
Setelah membuat indeks Anda, Anda dapat mulai memuat data ke dalam tabel Anda. Pada langkah ini, masukkan dokumen ke dalam
Person
tabel dengan informasi pribadi tentang pemilik kendaraan yang dilacak buku besar.Di jendela editor kueri, masukkan pernyataan berikut, lalu pilih Jalankan.
INSERT INTO Person << { 'FirstName' : 'Raul', 'LastName' : 'Lewis', 'DOB' : `1963-08-19T`, 'GovId' : 'LEWISR261LL', 'GovIdType' : 'Driver License', 'Address' : '1719 University Street, Seattle, WA, 98109' }, { 'FirstName' : 'Brent', 'LastName' : 'Logan', 'DOB' : `1967-07-03T`, 'GovId' : 'LOGANB486CG', 'GovIdType' : 'Driver License', 'Address' : '43 Stockert Hollow Road, Everett, WA, 98203' }, { 'FirstName' : 'Alexis', 'LastName' : 'Pena', 'DOB' : `1974-02-10T`, 'GovId' : '744 849 301', 'GovIdType' : 'SSN', 'Address' : '4058 Melrose Street, Spokane Valley, WA, 99206' }, { 'FirstName' : 'Melvin', 'LastName' : 'Parker', 'DOB' : `1976-05-22T`, 'GovId' : 'P626-168-229-765', 'GovIdType' : 'Passport', 'Address' : '4362 Ryder Avenue, Seattle, WA, 98101' }, { 'FirstName' : 'Salvatore', 'LastName' : 'Spencer', 'DOB' : `1997-11-15T`, 'GovId' : 'S152-780-97-415-0', 'GovIdType' : 'Passport', 'Address' : '4450 Honeysuckle Lane, Seattle, WA, 98101' } >>
-
Kemudian, isi
DriversLicense
tabel dengan dokumen yang menyertakan informasi SIM untuk setiap pemilik kendaraan.Di jendela editor kueri, masukkan pernyataan berikut, lalu pilih Jalankan.
INSERT INTO DriversLicense << { 'LicensePlateNumber' : 'LEWISR261LL', 'LicenseType' : 'Learner', 'ValidFromDate' : `2016-12-20T`, 'ValidToDate' : `2020-11-15T`, 'PersonId' : '' }, { 'LicensePlateNumber' : 'LOGANB486CG', 'LicenseType' : 'Probationary', 'ValidFromDate' : `2016-04-06T`, 'ValidToDate' : `2020-11-15T`, 'PersonId' : '' }, { 'LicensePlateNumber' : '744 849 301', 'LicenseType' : 'Full', 'ValidFromDate' : `2017-12-06T`, 'ValidToDate' : `2022-10-15T`, 'PersonId' : '' }, { 'LicensePlateNumber' : 'P626-168-229-765', 'LicenseType' : 'Learner', 'ValidFromDate' : `2017-08-16T`, 'ValidToDate' : `2021-11-15T`, 'PersonId' : '' }, { 'LicensePlateNumber' : 'S152-780-97-415-0', 'LicenseType' : 'Probationary', 'ValidFromDate' : `2015-08-15T`, 'ValidToDate' : `2021-08-21T`, 'PersonId' : '' } >>
-
Sekarang, isi
VehicleRegistration
tabel dengan dokumen registrasi kendaraan. Dokumen-dokumen ini termasukOwners
struktur bersarang yang menyimpan pemilik primer dan sekunder.Di jendela editor kueri, masukkan pernyataan berikut, lalu pilih Jalankan.
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': '' }, 'SecondaryOwners' : [] } }, { 'VIN' : 'KM8SRDHF6EU074761', 'LicensePlateNumber' : 'CA762X', 'State' : 'WA', 'City' : 'Kent', 'PendingPenaltyTicketAmount' : 130.75, 'ValidFromDate' : `2017-09-14T`, 'ValidToDate' : `2020-06-25T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': '' }, 'SecondaryOwners' : [] } }, { 'VIN' : '3HGGK5G53FM761765', 'LicensePlateNumber' : 'CD820Z', 'State' : 'WA', 'City' : 'Everett', 'PendingPenaltyTicketAmount' : 442.30, 'ValidFromDate' : `2011-03-17T`, 'ValidToDate' : `2021-03-24T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': '' }, 'SecondaryOwners' : [] } }, { 'VIN' : '1HVBBAANXWH544237', 'LicensePlateNumber' : 'LS477D', 'State' : 'WA', 'City' : 'Tacoma', 'PendingPenaltyTicketAmount' : 42.20, 'ValidFromDate' : `2011-10-26T`, 'ValidToDate' : `2023-09-25T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': '' }, 'SecondaryOwners' : [] } }, { 'VIN' : '1C4RJFAG0FC625797', 'LicensePlateNumber' : 'TH393F', 'State' : 'WA', 'City' : 'Olympia', 'PendingPenaltyTicketAmount' : 30.45, 'ValidFromDate' : `2013-09-02T`, 'ValidToDate' : `2024-03-19T`, 'Owners' : { 'PrimaryOwner' : { 'PersonId': '' }, 'SecondaryOwners' : [] } } >>
-
Terakhir, isi
Vehicle
tabel dengan dokumen yang menjelaskan kendaraan yang terdaftar di buku besar Anda.Di jendela editor kueri, masukkan pernyataan berikut, lalu pilih Jalankan.
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' }, { 'VIN' : '3HGGK5G53FM761765', 'Type' : 'Motorcycle', 'Year' : 2011, 'Make' : 'Ducati', 'Model' : 'Monster 1200', 'Color' : 'Yellow' }, { 'VIN' : '1HVBBAANXWH544237', 'Type' : 'Semi', 'Year' : 2009, 'Make' : 'Ford', 'Model' : 'F 150', 'Color' : 'Black' }, { 'VIN' : '1C4RJFAG0FC625797', 'Type' : 'Sedan', 'Year' : 2019, 'Make' : 'Mercedes', 'Model' : 'CLK 350', 'Color' : 'White' } >>
Selanjutnya, Anda dapat menggunakan SELECT
pernyataan untuk membaca data dari tabel di vehicle-registration
buku besar. Lanjut ke Langkah 3: Kueri tabel dalam buku besar.