Creación de tablas con índices e inserción de 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.

Creación de tablas con índices e inserción de documentos

Una vez que haya creado un libro mayor de Amazon QLDB, el primer paso consiste en crear una tabla con unCREATE TABLEstatement. Las tablas consisten enDocumentos de la QLDB, que son conjuntos de datos enAmazon Ion structformato.

Creación de tablas e índices

Las tablas tienen nombres sencillos que distinguen mayúsculas y minúsculas sin espacios de nombres. QLDB admite contenido abierto y no aplica el esquema, por lo que no se definen atributos ni tipos de datos al crear tablas.

CREATE TABLE VehicleRegistration
CREATE TABLE Vehicle

UNACREATE TABLEdevuelve el identificador asignado por el sistema de la nueva tabla. TodosID asignados a QLDBson identificadores únicos universalmente (UUID) que están representados cada uno en una cadena codificada en Base62.

nota

Opcionalmente, 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 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 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.

Tenga en cuenta las siguientes restricciones al crear índices:

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

  • Puede crear un índice en cualquierTipos de datos Ion, incluidolistystruct. Sin embargo, solo puede realizar la búsqueda indexada por igualdad de todo el valor Ion, independientemente del tipo Ion. Por ejemplo, cuando se utiliza unalistescriba como índice, no puede realizar una búsqueda indexada por un elemento de la lista.

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

    QLDB no respeta las desigualdades en los predicados de consulta. Como resultado, no se implementan 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 asíncrona. El periodo de tiempo que tarda en completarse un índice en una tabla no 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 las tablas. Los documentos QLDB se almacenan en formato Amazon Ion. El siguiente PartiQLINSERTlas declaraciones 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 campo se incluyen entre comillas simples ('...').

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

  • Las marcas de hora se incluyen en los backticks (`...`). Los backticks se pueden utilizar para denotar cualquier literal de iones.

  • Los enteros y los decimales son valores literales que no necesitan denotarse.

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

UnINSERTcrea la revisión inicial de un documento con un número de versión de cero. Para identificar de forma exclusiva cada documento, QLDB asigna unID de documentocomo parte de los metadatos. Las instrucciones Insert devuelven el ID de cada documento insertado.

importante

Dado que QLDB no aplica el esquema, puede insertar el mismo documento en una tabla varias veces. Cada instrucción insert confirma una entrada de documento independiente en el diario y QLDB asigna a cada documento un ID exclusivo.

Para obtener información sobre cómo consultar los documentos que insertó en la tabla, continúe enConsulta de datos.