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
-
Apri la console Amazon QLDB in /qldb. https://console.aws.amazon.com
-
Nel riquadro di navigazione, scegli Guida introduttiva.
-
Nell'opzione Automatico nella scheda dati dell'applicazione di esempio, scegli
vehicle-registration
nell'elenco dei libri contabili. -
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 parametri
INSERT
. 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
-
Apri la console Amazon QLDB in /qldb. https://console.aws.amazon.com
-
Nel pannello di navigazione, scegli Editor PartiQl.
-
Scegli il
vehicle-registration
libro mastro. -
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
-
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)
-
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' } >>
-
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' : '' } >>
-
Ora compila la
VehicleRegistration
tabella con i documenti di immatricolazione del veicolo. Questi documenti includono unaOwners
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' : [] } } >>
-
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.