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

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

Cuando su libro mayor de Amazon QLDB esté activo, podrá 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

Puede utilizar la consola de QLDB para crear automáticamente estas tablas con índices y cargarlas con datos de ejemplo. O bien, puede usar el editor de PartiQL de la consola para ejecutar manualmente cada instrucción de PartiQL paso a paso.

Cree tablas, índices y datos de muestra
  1. Abra la consola de Amazon QLDB 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 iddocumento como clave externa. Para obtener más información, consulte Consulta de los metadatos del documento.

Cree tablas, índices y datos de muestra
  1. Abra la consola de Amazon QLDB 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. QLDB admite contenido abierto y no aplica el esquema, por lo que no se definen atributos o tipos de datos.

    En la ventana del editor de consultas, introduzca la siguiente instrucción, y a continuación elija Ejecutar. Para ejecutar una 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

    QLDB requiere un índice para buscar un documento de manera eficiente. Sin un índice, QLDB necesita escanear toda la tabla 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 Optimizar el rendimiento de las consul‎tas‎.

    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.