Creazione di tabelle con indici e inserimento di documenti - 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à.

Creazione di tabelle con indici e inserimento di documenti

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 Amazon QLDB Ledger ad Amazon Aurora Postgre. SQL

Dopo aver creato un QLDB registro Amazon, il primo passo è creare una tabella con un'CREATE TABLEistruzione di base. Le tabelle sono costituite daDocumenti di QLDB, che sono set di dati in struct formato Amazon Ion.

Creazione di tabelle e indici

Le tabelle hanno nomi semplici, con distinzione tra maiuscole e minuscole, senza namespace. QLDBsupporta il contenuto aperto e non impone lo schema, quindi non si definiscono attributi o tipi di dati durante la creazione di tabelle.

CREATE TABLE VehicleRegistration
CREATE TABLE Vehicle

Un'CREATE TABLEistruzione restituisce l'ID assegnato dal sistema della nuova tabella. Tutti gli identificatori assegnati dal sistema QLDB sono identificatori univoci universalmente (UUID), ciascuno rappresentato IDs in una stringa codificata in Base62.

Nota

Facoltativamente, è possibile definire i tag per una risorsa della tabella durante la creazione della tabella. Per scoprire come, consulta Assegnazione di tag alle tabelle al momento della creazione.

Puoi anche creare indici sulle tabelle per ottimizzare le prestazioni delle query.

CREATE INDEX ON VehicleRegistration (VIN)
CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
CREATE INDEX ON Vehicle (VIN)
Importante

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

Tenete presente i seguenti vincoli durante la creazione degli indici:

  • Un indice può essere creato solo su un singolo campo di primo livello. Gli indici compositi, annidati, unici e basati su funzioni non sono supportati.

  • È possibile creare un indice su qualsiasi tipo di dati Ion, inclusi e. list struct Tuttavia, è possibile eseguire la ricerca indicizzata solo in base all'uguaglianza dell'intero valore Ion indipendentemente dal tipo di ione. Ad esempio, quando si utilizza un list tipo come indice, non è possibile eseguire una ricerca indicizzata per un elemento all'interno dell'elenco.

  • Le prestazioni delle query sono migliorate solo quando si utilizza un predicato di uguaglianza; ad esempio, o. WHERE indexedField = 123 WHERE indexedField IN (456, 789)

    QLDBnon rispetta le disuguaglianze nei predicati delle query. Di conseguenza, le scansioni con filtro per intervallo non sono implementate.

  • I nomi dei campi indicizzati fanno distinzione tra maiuscole e minuscole e possono contenere un massimo di 128 caratteri.

  • La creazione dell'indice in QLDB è asincrona. Il tempo necessario per completare la creazione di un indice su una tabella non vuota varia a seconda delle dimensioni della tabella. Per ulteriori informazioni, consulta Gestione degli indici.

Inserimento di documenti

Quindi puoi inserire documenti nelle tue tabelle. QLDBi documenti vengono archiviati in formato Amazon Ion. Le seguenti INSERT istruzioni PartiQL includono un sottoinsieme dei dati di esempio di immatricolazione dei veicoli utilizzati in. Guida introduttiva alla QLDB console 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' } >>
Sintassi e semantica PartiQL
  • I nomi dei campi sono racchiusi tra virgolette singole (). '...'

  • I valori delle stringhe sono inoltre racchiusi tra virgolette singole (). '...'

  • I timestamp sono racchiusi tra backtick (). `...` I backtick possono essere usati per indicare qualsiasi valore letterale ionico.

  • I numeri interi e i decimali sono valori letterali che non devono essere indicati.

Per ulteriori dettagli sulla sintassi e la semantica di PartiQL, vedere. Interrogare Ion con PartiQL in Amazon QLDB

Un'INSERTistruzione crea la revisione iniziale di un documento con un numero di versione pari a zero. Per identificare in modo univoco ogni documento, QLDB assegna un ID del documento come parte dei metadati. Le istruzioni Insert restituiscono l'ID di ogni documento inserito.

Importante

Poiché QLDB non impone lo schema, puoi inserire lo stesso documento in una tabella più volte. Ogni istruzione di inserimento inserisce una voce di documento separata nel diario e QLDB assegna a ciascun documento un ID univoco.

Per informazioni su come interrogare i documenti inseriti nella tabella, procedi con. Interrogazione dei dati