Étape 2 : créer des tables, des index et des exemples de données dans un registre - 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.

Étape 2 : créer des tables, des index et des exemples de données dans un registre

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.

Lorsque votre QLDB registre Amazon est actif, vous pouvez commencer à créer des tableaux contenant les données relatives aux véhicules, à leurs propriétaires et à leurs informations d'enregistrement. Après avoir créé les tables et les index, vous pouvez les charger avec des données.

Au cours de cette étape, vous créez quatre tables dans le vehicle-registration registre :

  • VehicleRegistration

  • Vehicle

  • Person

  • DriversLicense

Vous créez également les index suivants.

Nom de la table Champ
VehicleRegistration VIN
VehicleRegistration LicensePlateNumber
Vehicle VIN
Person GovId
DriversLicense LicensePlateNumber
DriversLicense PersonId

Vous pouvez utiliser la QLDB console pour créer automatiquement ces tables avec des index et les charger avec des exemples de données. Vous pouvez également utiliser l'éditeur partiQL de la console pour exécuter manuellement chaque instruction partiQL. step-by-step

Pour créer des tables, des index et des exemples de données
  1. Ouvrez la QLDB console Amazon à l'adresse https://console.aws.amazon.com/qldb.

  2. Dans le volet de navigation, choisissez Getting started.

  3. Sous l'option Automatique sur la carte de données de l'application Sample, choisissez vehicle-registration dans la liste des registres.

  4. Choisissez Charger un échantillon de données.

    Si l'opération aboutit, la console affiche le message Sample data loaded.

    Ce script exécute toutes les instructions en une seule transaction. Si une partie de la transaction échoue, chaque instruction est annulée et un message d'erreur approprié s'affiche. Vous pouvez réessayer l'opération après avoir résolu le problème.

    Note
    • L'une des causes possibles de l'échec d'une transaction est la tentative de création de tables dupliquées. Votre demande de chargement d'échantillons de données échouera si l'un des noms de table suivants existe déjà dans votre registre :VehicleRegistration, VehiclePerson, etDriversLicense.

      Essayez plutôt de charger ces exemples de données dans un registre vide.

    • Ce script exécute des instructions paramétrées. INSERT Ces instructions partiQL sont donc enregistrées dans vos blocs de journal avec des paramètres de liaison au lieu des données littérales. Par exemple, vous pouvez voir l'instruction suivante dans un bloc de journal, où le point d'interrogation (?) est un espace réservé variable pour le contenu du document.

      INSERT INTO Vehicle ?

Vous insérez des documents dans VehicleRegistration un PrimaryOwner champ vide et dans DriversLicense un PersonId champ vide. Ensuite, vous renseignez ces champs avec le document attribué par le système à id partir du tableau. Person

Astuce

Il est recommandé d'utiliser ce champ de id métadonnées du document comme clé étrangère. Pour plus d’informations, consultez Interrogation des métadonnées d'un document.

Pour créer des tables, des index et des exemples de données
  1. Ouvrez la QLDB console Amazon à l'adresse https://console.aws.amazon.com/qldb.

  2. Dans le volet de navigation, choisissez l'éditeur PartiQL.

  3. Choisissez le vehicle-registration registre.

  4. Commencez par créer quatre tables. QLDBprend en charge le contenu ouvert et n'applique pas le schéma. Vous ne spécifiez donc pas d'attributs ou de types de données.

    Dans la fenêtre de l'éditeur de requêtes, entrez l'instruction suivante, puis choisissez Exécuter. Pour exécuter l'instruction, vous pouvez également utiliser le raccourci clavier Ctrl + Enter pour Windows ou Cmd + Return pour macOS. Pour plus de raccourcis clavier, voirRaccourcis clavier de l'éditeur PartiQL.

    CREATE TABLE VehicleRegistration

    Répétez cette étape pour chacune des opérations suivantes.

    CREATE TABLE Vehicle
    CREATE TABLE Person
    CREATE TABLE DriversLicense
  5. Créez ensuite des index qui optimisent les performances des requêtes pour chaque table.

    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.

    Dans la fenêtre de l'éditeur de requêtes, entrez l'instruction suivante, puis choisissez Exécuter.

    CREATE INDEX ON VehicleRegistration (VIN)

    Répétez cette étape pour les opérations suivantes.

    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. Après avoir créé vos index, vous pouvez commencer à charger des données dans vos tables. Au cours de cette étape, insérez dans le Person tableau des documents contenant des informations personnelles sur les propriétaires des véhicules suivis par le registre.

    Dans la fenêtre de l'éditeur de requêtes, entrez l'instruction suivante, puis choisissez Exécuter.

    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. Remplissez ensuite le DriversLicense tableau avec des documents contenant les informations du permis de conduire de chaque propriétaire de véhicule.

    Dans la fenêtre de l'éditeur de requêtes, entrez l'instruction suivante, puis choisissez Exécuter.

    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. Maintenant, remplissez le VehicleRegistration tableau avec les documents d'immatriculation du véhicule. Ces documents incluent une Owners structure imbriquée qui stocke les propriétaires principaux et secondaires.

    Dans la fenêtre de l'éditeur de requêtes, entrez l'instruction suivante, puis choisissez Exécuter.

    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. Enfin, complétez le Vehicle tableau avec des documents décrivant les véhicules enregistrés dans votre registre.

    Dans la fenêtre de l'éditeur de requêtes, entrez l'instruction suivante, puis choisissez Exécuter.

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

Vous pouvez ensuite utiliser SELECT des instructions pour lire les données des tables du vehicle-registration registre. Passez à Étape 3 : interroger les tables d'un registre.