Consultar el historial de revisiones - 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.

Consultar el historial de revisiones

Amazon QLDB almacena el historial completo de todos los documentos de una tabla. Para ver las tres revisiones del documento de registro del vehículo que insertó, actualizó y eliminó anteriormente en Actualizar y eliminar documentos, consulte la función de historial integrada.

Función de historial

La función de historial de QLDB es una extensión PartiQL que devuelve las revisiones de la vista de la tabla definida por el sistema. Por lo tanto, incluye sus datos y los metadatos asociados en el mismo esquema que la vista confirmada.

Sintaxis

SELECT * FROM history( table_name | 'table_id' [, `start-time` [, `end-time` ] ] ) AS h [ WHERE h.metadata.id = 'id' ]
Argumentos
table_name | 'table_id'

El nombre de la tabla o el identificador de la tabla. El nombre de una tabla es un identificador PartiQL que puede indicarse con comillas dobles o sin comillas. Un identificador de tabla es un literal de cadena que se debe incluir entre comillas simples. Para obtener más información sobre cómo usar identificadores de tabla, consulte Consultar el historial de tablas inactivas.

`start-time`, `end-time`

(Opcional) Especifica el intervalo de tiempo durante el que estuvieron activas las revisiones. Estos parámetros no especifican el intervalo de tiempo durante el cual las revisiones se confirmaron en el diario de una transacción.

Las horas de inicio y finalización son literales de marca temporal de Ion que se pueden indicar con acentos graves (`...`). Para obtener más información, consulte Consulta de Ion con PartiQL en Amazon QLDB.

Estos parámetros de tiempo funcionan de la siguiente manera:

  • Tanto la hora de inicio como la hora de finalización están incluidas. Deben estar en formato de fecha y hora ISO 8601 y en hora universal coordinada (UTC).

  • La hora de inicio debe ser anterior o igual a la hora de finalización y puede ser cualquier fecha pasada arbitraria.

  • La hora de finalización debe ser inferior o igual a la fecha y hora UTC actuales.

  • Si especifica una hora de inicio, pero no una hora de finalización, la consulta establece de forma predeterminada la hora de finalización en la fecha y hora actuales. Si no especifica ninguna de las dos, la consulta devolverá el historial completo.

'id'

(Opcional) El identificador del documento cuyo historial de revisiones desea consultar, indicado entre comillas simples.

sugerencia

Como práctica recomendada, califique una consulta de historial con un intervalo de fechas (hora de inicio y hora de finalización) y un identificador de documento (metadata.id). En QLDB, cada consulta SELECT se procesa en una transacción y está sujeta a un límite de tiempo de espera de la transacción.

Las consultas de historial no utilizan los índices que crea en una tabla. El historial de QLDB solo se indexa por ID de documento y no se pueden crear índices de historial adicionales de momento. Las consultas de historial que incluyen una hora de inicio y una hora de finalización se benefician de la calificación por intervalo de fechas.

Ejemplo de consulta de historial

Para consultar el historial del documento de registro de vehículos, utilice el id que guardó anteriormente en Actualizar y eliminar documentos. Por ejemplo, la siguiente consulta de historial devuelve cualquier revisión del identificador del documento ADR2Ll1fGsU4Jr4EqTdnQF que haya estado activa entre 2019-06-05T00:00:00Z y 2019-06-05T23:59:59Z.

nota

Los parámetros de hora de inicio y finalización no especifican el intervalo de tiempo durante el cual las revisiones se confirmaron en el diario de una transacción. Por ejemplo, si una revisión se confirmó antes de 2019-06-05T00:00:00Z y permaneció activa después de esa hora de inicio, esta consulta de ejemplo mostrará esa revisión en los resultados.

Asegúrese de sustituir id, la hora de inicio y la hora de finalización por sus propios valores, según proceda.

SELECT * FROM history(VehicleRegistration, `2019-06-05T00:00:00Z`, `2019-06-05T23:59:59Z`) AS h WHERE h.metadata.id = 'ADR2Ll1fGsU4Jr4EqTdnQF' --replace with your id

Los resultados deben ser similares a los siguientes.

{ blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:14 }, hash:{{B2wYwrHKOWsmIBmxUgPRrTx9lv36tMlod2xVvWNiTbo=}}, data: { VIN: "1HVBBAANXWH544237", LicensePlateNumber: "LS477D", State: "WA", City: "Tacoma", PendingPenaltyTicketAmount: 42.20, ValidFromDate: 2011-10-26T, ValidToDate: 2023-09-25T, Owners: { PrimaryOwner: { PersonId: "KmA3XPKKFqYCP2zhR3d0Ho" }, SecondaryOwners: [] } }, metadata:{ id:"ADR2Ll1fGsU4Jr4EqTdnQF", version:0, txTime:2019-06-05T20:53:321d-3Z, txId:"HgXAkLjAtV0HQ4lNYdzX60" } }, { blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:17 }, hash:{{LGSFZ4iEYWZeMwmAqcxxNyT4wbCtuMOmFCj8pEd6Mp0=}}, data: { VIN: "1HVBBAANXWH544237", LicensePlateNumber: "LS477D", State: "WA", PendingPenaltyTicketAmount: 42.20, ValidFromDate: 2011-10-26T, ValidToDate: 2023-09-25T, Owners: { PrimaryOwner: { PersonId: "KmA3XPKKFqYCP2zhR3d0Ho" }, SecondaryOwners: [] }, City: "Bellevue" }, metadata:{ id:"ADR2Ll1fGsU4Jr4EqTdnQF", version:1, txTime:2019-06-05T21:01:442d-3Z, txId:"9cArhIQV5xf5Tf5vtsPwPq" } }, { blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:19 }, hash:{{7bm5DUwpqJFGrmZpb7h9wAxtvggYLPcXq+LAobi9fDg=}}, metadata:{ id:"ADR2Ll1fGsU4Jr4EqTdnQF", version:2, txTime:2019-06-05T21:03:76d-3Z, txId:"9GslbtDtpVHAgYghR5FXbZ" } }

El resultado incluye atributos de metadatos que proporcionan detalles sobre cuándo se modificó cada elemento y mediante qué transacción. A partir de estos datos, puede comprobar lo siguiente:

  • El documento se identifica de forma única por su id asignado por el sistema: ADR2Ll1fGsU4Jr4EqTdnQF. Se trata de un identificador único universal (UUID) que se representa en una cadena codificada en Base62.

  • Una instrucción INSERT crea la revisión inicial de un documento (versión 0).

  • Cada actualización posterior crea una nueva revisión con el mismo documento id y un número de versión incrementado.

  • El campo txId indica la transacción que confirmó cada revisión y txTime muestra cuándo se confirmó cada una.

  • Una instrucción DELETE crea una revisión nueva, pero final, de un documento. Esta revisión final solo tiene metadatos.

Para obtener información sobre cómo eliminar una revisión de forma permanente, continúe con Editar revisiones de documentos.