Langkah 2: Buat tabel, indeks, dan data sampel dalam buku besar - 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.

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

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
  1. Buka QLDB konsol Amazon di https://console.aws.amazon.com/qldb.

  2. Di panel navigasi, pilih Memulai.

  3. Di bawah Opsi otomatis pada kartu data aplikasi Sampel, pilih vehicle-registration dalam daftar buku besar.

  4. 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,, VehiclePerson, danDriversLicense.

      Sebagai gantinya, coba muat data sampel ini dalam buku besar kosong.

    • Skrip ini menjalankan pernyataan berparameterINSERT. 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
  1. Buka QLDB konsol Amazon di https://console.aws.amazon.com/qldb.

  2. Di panel navigasi, pilih editor PartiQL.

  3. Pilih vehicle-registration buku besar.

  4. 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
  5. 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)
  6. 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' } >>
  7. 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' : '' } >>
  8. Sekarang, isi VehicleRegistration tabel dengan dokumen registrasi kendaraan. Dokumen-dokumen ini termasuk Owners 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' : [] } } >>
  9. 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.