Crear tablas con índices e insertar documentos - 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.

Crear tablas con índices e insertar documentos

Tras crear un registro de Amazon QLDB, el primer paso es crear una tabla con unaCREATE TABLE declaración básica. Las tablas constan deDocumentos de QLDB, que son conjuntos de datos enstruct formato Amazon Ion.

Creación de tablas e índices

Las tablas tienen nombres simples que distinguen entre mayúsculas y minúsculas, sin espacios de nombres. QLDB admite contenido abierto y no impone esquemas, por lo que no se definen atributos ni tipos de datos al crear tablas.

CREATE TABLE VehicleRegistration
CREATE TABLE Vehicle

UnaCREATE TABLE sentencia devuelve el identificador asignado por el sistema a la nueva tabla. Todos los ID asignados por el sistema en QLDB son identificadores únicos universales (UUID), cada uno de los cuales se representa en una cadena codificada en Base62.

nota

Si lo desea, puede definir etiquetas para un recurso de tabla mientras crea la tabla. Para saber cómo hacerlo, consulte Etiquetado de tablas durante la creación.

También puede crear índices en tablas para optimizar el rendimiento de las consultas.

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

QLDB requiere un índice para buscar un documento de manera eficiente. Sin un índice, QLDB necesita realizar un escaneo completo de la tabla al leer documentos. Esto puede provocar problemas de rendimiento en tablas grandes, incluidos conflictos de concurrencia y tiempos de espera de las transacciones.

Para evitar el escaneo de tablas, debe ejecutar sentencias con una cláusula deWHERE predicado mediante un operador de igualdad (=oIN) en un campo indexado o en un identificador de documento. Para obtener más información, consulte Optimización del rendimiento de las consultas.

Tenga en cuenta las siguientes restricciones al crear índices:

  • Solo se puede crear un índice en un único campo de nivel superior. No se admiten los índices compuestos, anidados, únicos ni basados en funciones.

  • Puede crear un índice en cualquier tipo de datos de iones, incluidoslist ystruct. Sin embargo, solo puede realizar la búsqueda indexada por la igualdad del valor total del ion, independientemente del tipo de ion. Por ejemplo, al utilizar unlist tipo como índice, no puede realizar una búsqueda indexada por un elemento de la lista.

  • El rendimiento de las consultas solo mejora cuando se utiliza un predicado de igualdad; por ejemplo,WHERE indexedField = 123 oWHERE indexedField IN (456, 789).

    QLDB no respeta las desigualdades en los predicados de las consultas. Como resultado, no se implementan los escaneos filtrados por rango.

  • Los nombres de los campos indexados distinguen entre mayúsculas y minúsculas y deben tener 128 caracteres como máximo.

  • La creación de índices en QLDB es asincrónica. La cantidad de tiempo que tarda en crearse un índice en una tabla que no está vacía varía según el tamaño de la tabla. Para obtener más información, consulte Administración de índices.

Inserción de documentos

A continuación, puede insertar documentos en sus tablas. Los documentos QLDB se almacenan en formato Amazon Ion. Las siguientesINSERT declaraciones de PartiQL incluyen un subconjunto de los datos de muestra de registro de vehículos utilizados enIntroducción a la consola de Amazon QLDB.

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' } >>
Sintaxis y semántica de PartiQL
  • Los nombres de los campos aparecen entre comillas simples ('...').

  • Los valores de cadena también aparecen entre comillas simples ('...').

  • Las marcas de tiempo aparecen entre comillas invertidas (`...`). Las comillas invertidas se pueden utilizar para indicar cualquier literal de iones.

  • Los números enteros y los decimales son valores literales que no necesitan indicarse.

Para obtener más información sobre la sintaxis y la semántica de PartiQL, consulteConsulta de Ion con PartiQL en Amazon QLDB.

UnaINSERT sentencia crea la revisión inicial de un documento con un número de versión cero. Para identificar de forma única cada documento, QLDB asigna un ID de documento como parte de los metadatos. Las instrucciones de inserción devuelven el ID de cada documento insertado.

importante

Como QLDB no impone el esquema, puede insertar el mismo documento en una tabla varias veces. Cada sentencia de inserción envía una entrada de documento independiente al diario y QLDB asigna a cada documento un identificador único.

Para obtener información sobre cómo consultar los documentos que ha insertado en la tabla, vaya aConsulta de sus datos.