Création de tables avec index et insertion de documents - Base de données Amazon Quantum Ledger (AmazonQLDB)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de tables avec index et insertion de documents

Important

Avis de fin de support : les clients existants pourront utiliser Amazon QLDB jusqu'à la fin du support le 31 juillet 2025. Pour plus de détails, consultez Migrer un Amazon QLDB Ledger vers Amazon Aurora SQL Postgre.

Après avoir créé un QLDB registre Amazon, la première étape consiste à créer un tableau avec un CREATE TABLE relevé de base. Les tables se composent de Documents QLDB jeux de données au struct format Amazon Ion.

Création de tables et d'index

Les tables ont des noms simples, sensibles aux majuscules et minuscules, sans espaces de noms. QLDBprend en charge le contenu ouvert et n'applique pas le schéma. Vous ne définissez donc pas d'attributs ou de types de données lors de la création de tables.

CREATE TABLE VehicleRegistration
CREATE TABLE Vehicle

Une CREATE TABLE instruction renvoie l'ID attribué par le système à la nouvelle table. Tous les identifiants uniques () attribués par IDs le système QLDB sont des identifiants uniques universels (UUID) qui sont chacun représentés dans une chaîne codée en Base62.

Note

Vous pouvez éventuellement définir des balises pour une ressource de table pendant que vous créez la table. Pour savoir comment procéder, veuillez consulter la section Marquer les tables lors de leur création.

Vous pouvez également créer des index sur les tables afin d'optimiser les performances des requêtes.

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

QLDBnécessite un index pour rechercher efficacement un document. Sans index, il QLDB faut effectuer une analyse complète du tableau lors de la lecture de documents. Cela peut entraîner des problèmes de performances sur de grandes tables, notamment des conflits de simultanéité et des délais d'expiration des transactions.

Pour éviter de scanner des tables, vous devez exécuter des instructions contenant une clause de WHERE prédicat à l'aide d'un opérateur d'égalité (=ouIN) sur un champ indexé ou un identifiant de document. Pour plus d’informations, consultez Optimisation des performances des requêtes.

Tenez compte des contraintes suivantes lors de la création d'index :

  • Un index ne peut être créé que sur un seul champ de niveau supérieur. Les index composites, imbriqués, uniques et basés sur des fonctions ne sont pas pris en charge.

  • Vous pouvez créer un index sur tous les types de données Ion, y compris list etstruct. Cependant, vous ne pouvez effectuer la recherche indexée que par égalité de la valeur totale de l'ion, quel que soit le type d'ion. Par exemple, lorsque vous utilisez un list type comme index, vous ne pouvez pas effectuer de recherche indexée par un élément de la liste.

  • Les performances des requêtes ne sont améliorées que lorsque vous utilisez un prédicat d'égalité ; par exemple, WHERE indexedField = 123 ouWHERE indexedField IN (456, 789).

    QLDBne respecte pas les inégalités dans les prédicats de requête. Par conséquent, les scans filtrés par plage ne sont pas implémentés.

  • Les noms des champs indexés distinguent les majuscules et minuscules et peuvent comporter un maximum de 128 caractères.

  • La création d'index dans QLDB est asynchrone. Le temps nécessaire pour terminer la création d'un index sur une table non vide varie en fonction de la taille de la table. Pour plus d’informations, consultez Gestion des index.

Insertion de documents

Vous pouvez ensuite insérer des documents dans vos tableaux. QLDBles documents sont stockés au format Amazon Ion. Les INSERT instructions partiQL suivantes incluent un sous-ensemble des échantillons de données d'immatriculation des véhicules utilisés dans. Commencer à utiliser la 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' } >>
Syntaxe et sémantique partiQL
  • Les noms des champs sont placés entre guillemets simples ('...').

  • Les valeurs de chaîne sont également placées entre guillemets simples ('...').

  • Les horodatages sont encadrés par des backticks (). `...` Les backticks peuvent être utilisés pour désigner n'importe quel littéral ionique.

  • Les nombres entiers et décimaux sont des valeurs littérales qui n'ont pas besoin d'être indiquées.

Pour plus de détails sur la syntaxe et la sémantique de partiQL, consultez. Interroger Ion avec PartiQL sur Amazon QLDB

Une INSERT instruction crée la révision initiale d'un document dont le numéro de version est zéro. Pour identifier de manière unique chaque document, QLDB attribuez un identifiant de document dans le cadre des métadonnées. Les instructions d'insertion renvoient l'ID de chaque document inséré.

Important

Comme il QLDB n'applique pas le schéma, vous pouvez insérer le même document plusieurs fois dans un tableau. Chaque instruction d'insertion valide une entrée de document distincte dans le journal et QLDB attribue à chaque document un identifiant unique.

Pour savoir comment rechercher les documents que vous avez insérés dans votre tableau, passez àInterrogation de vos données.