Paso 2: crear tablas, índices y datos de muestra en un libro mayor - Base de datos Amazon Quantum Ledger (AmazonQLDB)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 2: crear tablas, índices y datos de muestra en un libro mayor

importante

Aviso de fin del soporte: los clientes actuales podrán utilizar Amazon QLDB hasta que finalice el soporte, el 31 de julio de 2025. Para obtener más información, consulte Migración de un Amazon QLDB Ledger a Amazon Aurora SQL Postgre.

Cuando tu QLDB libro mayor de Amazon esté activo, podrás empezar a crear tablas con datos sobre los vehículos, sus propietarios y su información de registro. Tras crear las tablas y los índices, puede cargarlos con datos.

En este paso, creará cuatro tablas en el libro mayor vehicle-registration:

  • VehicleRegistration

  • Vehicle

  • Person

  • DriversLicense

También se crean los siguientes índices.

Nombre de la tabla Campo
VehicleRegistration VIN
VehicleRegistration LicensePlateNumber
Vehicle VIN
Person GovId
DriversLicense LicensePlateNumber
DriversLicense PersonId

Puedes usar la QLDB consola para crear automáticamente estas tablas con índices y cargarlas con datos de ejemplo. O bien, puedes usar el editor PartiQL de la consola para ejecutar manualmente cada sentencia PartiQL. step-by-step

Cree tablas, índices y datos de muestra
  1. Abre la QLDB consola de Amazon en https://console.aws.amazon.com/qldb.

  2. En el panel de navegación, elija Introducción.

  3. En la Opción automática de la tarjeta de datos de aplicación de muestra, seleccione vehicle-registration de la lista de libros mayores.

  4. Elija Cargar datos de muestra.

    Si la operación finaliza correctamente, la consola muestra el mensaje Se cargaron los datos de muestra.

    Este script ejecuta todas las instrucciones en una sola transacción. Si alguna parte de la transacción falla, se revierten todas las instrucciones y se muestra el mensaje de error correspondiente. Puede volver a intentar la operación después de solucionar cualquier problema.

    nota
    • Una posible causa del error de una transacción es intentar crear tablas duplicadas. La solicitud para cargar datos de muestra no se realizará correctamente si alguno de los siguientes nombres de tabla ya existe en el libro mayor: VehicleRegistration, Vehicle, Person y DriversLicense.

      En su lugar, intente cargar estos datos de muestra en un libro mayor vacío.

    • Este script ejecuta instrucciones INSERT parametrizadas. Por lo tanto, estas instrucciones de PartiQL se registran en los bloques de su diario con parámetros de enlace en lugar de los datos literales. Por ejemplo, es posible que vea la siguiente instrucción en un bloque de diario, donde el signo de interrogación (?) es un marcador de posición variable para el contenido del documento.

      INSERT INTO Vehicle ?

Los documentos se insertan en VehicleRegistration con un campo PrimaryOwner vacío y en DriversLicense con un campo PersonId vacío. Más adelante, se rellenan estos campos con el id del documento de la tabla Person asignado por el sistema.

sugerencia

Como práctica recomendada, utilice este campo de metadatos del id del documento como clave externa. Para obtener más información, consulte Consulta de los metadatos del documento.

Cree tablas, índices y datos de muestra
  1. Abre la QLDB consola de Amazon en https://console.aws.amazon.com/qldb.

  2. En el panel de navegación, elija Editor PartiQL.

  3. Elija el libro mayor vehicle-registration.

  4. Comience por crear cuatro tablas. QLDBadmite contenido abierto y no aplica el esquema, por lo que no se especifican atributos ni tipos de datos.

    En la ventana del editor de consultas, introduzca la siguiente instrucción, y a continuación elija Ejecutar. Para ejecutar la instrucción también puede utilizar el atajo de teclado Ctrl +Enter para Windows o Cmd+Return para macOS. Para obtener más atajos de teclado, consulte Atajos de teclado del editor PartiQL.

    CREATE TABLE VehicleRegistration

    Repita este paso para cada una de las siguientes.

    CREATE TABLE Vehicle
    CREATE TABLE Person
    CREATE TABLE DriversLicense
  5. A continuación, cree índices que optimicen el rendimiento de las consultas para cada tabla.

    importante

    QLDBrequiere un índice para buscar un documento de manera eficiente. Sin un índice, QLDB necesita escanear una tabla completa al leer los documentos. Esto puede provocar problemas de rendimiento en tablas grandes, como conflictos de concurrencia y tiempos de espera de las transacciones.

    Para evitar el escaneado de tablas, debe ejecutar las instrucciones con una cláusula de predicado WHERE usando un operador de igualdad (= o IN) en un campo indexado o en un ID de documento. Para obtener más información, consulte Optimización del rendimiento de las consultas.

    En la ventana del editor de consultas, introduzca la siguiente instrucción, y a continuación elija Ejecutar.

    CREATE INDEX ON VehicleRegistration (VIN)

    Repita este paso para lo siguiente.

    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. Después de crear los índices, puede empezar a cargar datos en las tablas. En este paso, inserte documentos en la tabla Person con información personal sobre los propietarios de los vehículos que está rastreando el libro mayor.

    En la ventana del editor de consultas, introduzca la siguiente instrucción, y a continuación elija Ejecutar.

    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. A continuación, rellene la tabla DriversLicense con documentos que incluyan la información del carné de conducir de cada propietario de vehículo.

    En la ventana del editor de consultas, introduzca la siguiente instrucción, y a continuación elija Ejecutar.

    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. Ahora, rellene la tabla VehicleRegistration con los documentos de registro del vehículo. Estos documentos incluyen una estructura Owners anidada que almacena los propietarios principales y secundarios.

    En la ventana del editor de consultas, introduzca la siguiente instrucción, y a continuación elija Ejecutar.

    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. Por último, rellene la tabla Vehicle con documentos que describan los vehículos que están registrados en su libro mayor.

    En la ventana del editor de consultas, introduzca la siguiente instrucción, y a continuación elija Ejecutar.

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

A continuación, puede usar las instrucciones SELECT para leer los datos de las tablas del libro mayor vehicle-registration. Continúe en Paso 3: consultar las tablas en un libro mayor.