Paso 2: Creación de tablas, índices y datos de ejemplo 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: Creación de tablas, índices y datos de ejemplo en un libro mayor

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

En este paso, creará cuatro tablas en lavehicle-registrationlibro mayor:

  • VehicleRegistration

  • Vehicle

  • Person

  • DriversLicense

También crea los siguientes índices.

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

Puede utilizar la consola QLDB para crear automáticamente estas tablas con índices y cargarlas con datos de ejemplo. O bien, puede utilizar laEditor PartiQLen la consola para ejecutar manualmente cada unoPartiQLdeclaración step-by-step.

Para crear tablas, índices y datos de ejemplo

  1. Abra la consola de Amazon QLDB enhttps://console.aws.amazon.com/qldb.

  2. En el panel de navegación, elijaIntroducción.

  3. UNDEROpción automáticaen elDatos de aplicación de ejemplocard, elijavehicle-registrationen la lista de libros mayores.

  4. ElegirCarga de datos de ejemplo.

    Si la operación finaliza correctamente, la consola muestra el mensajeDatos de ejemplo cargados.

    Este script ejecuta todas las sentencias de una sola transacción. Si falla alguna parte de la transacción, se revierte cada extracto y se muestra un mensaje de error adecuado. Puede volver a intentar la operación después de solucionar cualquier problema.

    nota
    • Una posible causa de un error de transacción es intentar crear tablas duplicadas. La solicitud de carga de datos de muestra fallará si ya existe alguno de los siguientes nombres de tabla en el libro mayor:VehicleRegistration,Vehicle,Person, yDriversLicense.

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

    • Este script se ejecuta parametrizadoINSERTInstrucciones Por lo tanto, estas sentencias PartiQL se registran en los bloques de diario con parámetros de enlace en lugar de los datos literales. Por ejemplo, podría ver la siguiente declaració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 ?

Inserta documentos enVehicleRegistrationcon un vacíoPrimaryOwnercampo, y enDriversLicensecon un vacíoPersonId. Más adelante, rellena estos campos con el documento asignado por el sistemaiddesde lasPersontable.

sugerencia

Como práctica recomendada, utilice este documentoidcampo de metadatos como clave externa. Para obtener más información, consulte Consulta de metadatos de documentos.

Para crear tablas, índices y datos de ejemplo

  1. Abra la consola de Amazon QLDB enhttps://console.aws.amazon.com/qldb.

  2. En el panel de navegación, elijaEditor PartiQL.

  3. Elija el iconovehicle-registrationlibro mayor.

  4. Empieza creando cuatro tablas. QLDB admite 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, escriba la siguiente instrucción y elijaEjecución de. Para ejecutar la instrucción, también puede utilizar el método abreviado de tecladoCtrl+Enteren Windows, oCmd+Returnpara macOS. Para obtener más métodos abreviados de teclado, consulteAtajos de teclado del editor PartiQL.

    CREATE TABLE VehicleRegistration

    Repita este paso para cada una de las siguientes opciones.

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

    importante

    QLDB requiere un índice para buscar un documento de forma eficiente. Sin un índice, QLDB necesita realizar un análisis completo de tablas al leer documentos. Esto puede provocar problemas de rendimiento en tablas grandes, incluidos conflictos de concurrencia y tiempos de espera de transacción.

    Para evitar los análisis de tablas, debe ejecutar sentencias con unWHEREcláusula predicado mediante unigualdadoperador (=oIN) en un campo indexado o en un ID de documento. Para obtener más información, consulte Optimización del rendimiento de consultas.

    En la ventana del editor de consultas, escriba la siguiente instrucción y elijaEjecución de.

    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 (LicenseNumber)
    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 elPersontabla con información personal sobre los propietarios de los vehículos que está rastreando el libro mayor.

    En la ventana del editor de consultas, escriba la siguiente instrucción y elijaEjecución de.

    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 elDriversLicensetabla con documentos que incluyen información de licencia de conducir para cada propietario de vehículo.

    En la ventana del editor de consultas, escriba la siguiente instrucción y elijaEjecución de.

    INSERT INTO DriversLicense << { 'LicenseNumber' : 'LEWISR261LL', 'LicenseType' : 'Learner', 'ValidFromDate' : `2016-12-20T`, 'ValidToDate' : `2020-11-15T`, 'PersonId' : '' }, { 'LicenseNumber' : 'LOGANB486CG', 'LicenseType' : 'Probationary', 'ValidFromDate' : `2016-04-06T`, 'ValidToDate' : `2020-11-15T`, 'PersonId' : '' }, { 'LicenseNumber' : '744 849 301', 'LicenseType' : 'Full', 'ValidFromDate' : `2017-12-06T`, 'ValidToDate' : `2022-10-15T`, 'PersonId' : '' }, { 'LicenseNumber' : 'P626-168-229-765', 'LicenseType' : 'Learner', 'ValidFromDate' : `2017-08-16T`, 'ValidToDate' : `2021-11-15T`, 'PersonId' : '' }, { 'LicenseNumber' : 'S152-780-97-415-0', 'LicenseType' : 'Probationary', 'ValidFromDate' : `2015-08-15T`, 'ValidToDate' : `2021-08-21T`, 'PersonId' : '' } >>
  8. Ahora, rellena elVehicleRegistrationtabla con documentos de registro de vehículos. Estos documentos incluyen un anidadoOwnersestructura que almacena los propietarios primarios y secundarios.

    En la ventana del editor de consultas, escriba la siguiente instrucción y elijaEjecución de.

    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, poblar elVehicletabla con documentos que describen los vehículos registrados en su libro mayor.

    En la ventana del editor de consultas, escriba la siguiente instrucción y elijaEjecución de.

    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 utilizarSELECTinstrucciones para leer datos de las tablas delvehicle-registrationlibro mayor. Continúe en Paso 3: Consultar las tablas de un libro mayor.