Passaggio 2: Creare tabelle, indici e dati di esempio in un libro mastro - Database Amazon Quantum Ledger (Amazon QLDB)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Passaggio 2: Creare tabelle, indici e dati di esempio in un libro mastro

Importante

Avviso di fine del supporto: i clienti esistenti potranno utilizzare Amazon QLDB fino alla fine del supporto, il 31/07/2025. Per ulteriori dettagli, consulta Migrare un registro Amazon QLDB su Amazon Aurora PostgreSQL.

Quando il registro Amazon QLDB è attivo, puoi iniziare a creare tabelle per i dati sui veicoli, i loro proprietari e le loro informazioni di immatricolazione. Dopo aver creato le tabelle e gli indici, puoi caricarli con i dati.

In questo passaggio, crei quattro tabelle nel vehicle-registration registro:

  • VehicleRegistration

  • Vehicle

  • Person

  • DriversLicense

Vengono inoltre creati i seguenti indici.

Nome tabella Campo
VehicleRegistration VIN
VehicleRegistration LicensePlateNumber
Vehicle VIN
Person GovId
DriversLicense LicensePlateNumber
DriversLicense PersonId

È possibile utilizzare la console QLDB per creare automaticamente queste tabelle con indici e caricarle con dati di esempio. In alternativa, è possibile utilizzare l'editor PartiQL sulla console per eseguire manualmente ogni istruzione PartiQL. step-by-step

Per creare tabelle, indici e dati di esempio
  1. Apri la console Amazon QLDB in /qldb. https://console.aws.amazon.com

  2. Nel riquadro di navigazione, scegli Guida introduttiva.

  3. Nell'opzione Automatico nella scheda dati dell'applicazione di esempio, scegli vehicle-registration nell'elenco dei libri contabili.

  4. Scegli Carica dati di esempio.

    Se l'operazione viene completata correttamente, la console visualizza il messaggio Dati di esempio caricati.

    Questo script esegue tutte le istruzioni in un'unica transazione. Se una parte della transazione fallisce, viene eseguito il rollback di ogni istruzione e viene visualizzato un messaggio di errore appropriato. È possibile riprovare l'operazione dopo aver risolto eventuali problemi.

    Nota
    • Una possibile causa di un errore di transazione è il tentativo di creare tabelle duplicate. La richiesta di caricamento dei dati di esempio avrà esito negativo se nel registro è già presente uno dei seguenti nomi di tabella:VehicleRegistration,Vehicle, Person e. DriversLicense

      Prova invece a caricare questi dati di esempio in un registro vuoto.

    • Questo script esegue istruzioni con parametriINSERT. Quindi, queste istruzioni PartiQL vengono registrate nei blocchi di journal con parametri bind anziché dati letterali. Ad esempio, potreste vedere la seguente istruzione in un blocco di journal, in cui il punto interrogativo (?) è un segnaposto variabile per il contenuto del documento.

      INSERT INTO Vehicle ?

Si inseriscono documenti VehicleRegistration con un PrimaryOwner campo vuoto e in DriversLicense un PersonId campo vuoto. Successivamente, si compilano questi campi con il documento assegnato dal sistema id dalla tabella. Person

Suggerimento

È consigliabile utilizzare questo campo di id metadati del documento come chiave esterna. Per ulteriori informazioni, consulta Interrogazione dei metadati dei documenti.

Per creare tabelle, indici e dati di esempio
  1. Apri la console Amazon QLDB in /qldb. https://console.aws.amazon.com

  2. Nel pannello di navigazione, scegli Editor PartiQl.

  3. Scegli il vehicle-registration libro mastro.

  4. Inizia creando quattro tabelle. QLDB supporta il contenuto aperto e non impone lo schema, quindi non è necessario specificare attributi o tipi di dati.

    Nella finestra dell'editor di query, inserisci la seguente istruzione, quindi scegli Esegui. Per eseguire l'istruzione, puoi anche usare la scorciatoia da tastiera Ctrl + Enter per Windows o Cmd + Return per macOS. Per altre scelte rapide da tastiera, consulta. Scelte rapide da tastiera dell'editor PartiQL

    CREATE TABLE VehicleRegistration

    Ripeti questo passaggio per ognuna delle seguenti operazioni.

    CREATE TABLE Vehicle
    CREATE TABLE Person
    CREATE TABLE DriversLicense
  5. Successivamente, crea indici che ottimizzano le prestazioni delle query per ogni tabella.

    Importante

    QLDB richiede un indice per cercare in modo efficiente un documento. Senza un indice, QLDB deve eseguire una scansione completa della tabella durante la lettura dei documenti. Ciò può causare problemi di prestazioni su tabelle di grandi dimensioni, inclusi conflitti di concorrenza e timeout delle transazioni.

    Per evitare la scansione delle tabelle, è necessario eseguire istruzioni con una clausola di WHERE predicato utilizzando un operatore di uguaglianza (=oIN) su un campo indicizzato o un ID di documento. Per ulteriori informazioni, consulta Ottimizzazione delle prestazioni delle query.

    Nella finestra dell'editor di query, immettete la seguente istruzione, quindi scegliete Esegui.

    CREATE INDEX ON VehicleRegistration (VIN)

    Ripeti questo passaggio per quanto segue.

    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. Dopo aver creato gli indici, puoi iniziare a caricare i dati nelle tabelle. In questo passaggio, inserisci nella Person tabella i documenti con le informazioni personali sui proprietari dei veicoli tracciati dal registro.

    Nella finestra dell'editor di query, inserisci la seguente istruzione, quindi scegli Esegui.

    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. Quindi, compila la DriversLicense tabella con i documenti che includono le informazioni sulla patente di guida per ogni proprietario del veicolo.

    Nella finestra dell'editor di query, inserisci la seguente istruzione, quindi scegli Esegui.

    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. Ora compila la VehicleRegistration tabella con i documenti di immatricolazione del veicolo. Questi documenti includono una Owners struttura annidata che memorizza i proprietari primari e secondari.

    Nella finestra dell'editor di query, inserisci la seguente istruzione, quindi scegli Esegui.

    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. Infine, compila la Vehicle tabella con i documenti che descrivono i veicoli registrati nel tuo registro.

    Nella finestra dell'editor di query, inserisci la seguente istruzione, quindi scegli Esegui.

    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' } >>

Successivamente, puoi utilizzare SELECT le istruzioni per leggere i dati dalle tabelle del vehicle-registration libro mastro. Passa a Passaggio 3: interrogare le tabelle in un libro mastro.