Consulta del 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.

Consulta del historial de revisiones

Amazon QLDB almacena el historial completo de cada documento de una tabla. Puede ver las tres revisiones del documento de registro del vehículo que insertó, actualizó y eliminó anteriormente enActualización y eliminación de documentosconsultando la función de historial integrada.

Historial de funciones

La función de historial de QLDB es una extensión partiQL que devuelve revisiones desde la vista definida por el sistema de la tabla. Por lo tanto, incluye los 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 ID de tabla. Un nombre de tabla es un identificador partiQL que puede indicar con comillas dobles o sin comillas. Un ID de tabla es un literal de cadena que debe incluirse entre comillas simples. Para obtener más información acerca del uso de ID de tabla, consulteConsultar el historial de tablas eliminadas.

`Hora de inicio`,`end-time`

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

Las horas de inicio y finalización son literales de marca de tiempo de iones que se pueden denotar con retrocesos (`...`). Para obtener más información, consulte Consultar Ion con PartiQL.

Estos parámetros de tiempo tienen el siguiente comportamiento:

  • LaHora de inicioyend-timeambos son inclusivos. Deben encontrarse enISO 8601formato de fecha y hora y hora universal coordinada (UTC).

  • LaHora de iniciodebe ser menor o igual queend-timey puede ser cualquier fecha arbitraria en el pasado.

  • Laend-timedebe ser menor o igual a la fecha y hora UTC actuales.

  • Si especifica unHora de iniciopero no unend-time, la consulta establece por defecto elend-timea la fecha y hora actuales. Si no especifica ninguno de los dos, la consulta devuelve todo el historial.

'id'

(Opcional) ID del documento para el que desea consultar el historial de revisiones, indicado mediante comillas simples.

sugerencia

Como práctica recomendada, califique una consulta de historial con un intervalo de fechas (Hora de inicioyend-time) y un ID de documento (metadata.id). En QLDB, cadaSELECTla consulta se procesa en una transacción y está sujeta a unlímite de tiempo de espera de transacción.

Las consultas de historial no utilizan los índices que creas en una tabla. El historial de QLDB se indexa únicamente por ID de documento y no se pueden crear índices de historial adicionales en este momento. Las consultas de historial que incluyen una hora de inicio y hora de finalización obtienen el beneficio de la calificación del intervalo de fechas.

Ejemplo de consulta de historial

Para consultar el historial del documento de matriculación del vehículo, utilice elidque guardaste anteriormenteActualización y eliminación de documentos. Por ejemplo, la siguiente consulta de historial devuelve cualquier revisión del ID de documentoADR2Ll1fGsU4Jr4EqTdnQFque siempre estuvieron activos entre2019-06-05T00:00:00Zy2019-06-05T23:59:59Z.

nota

Recuerde que los parámetros de hora de inicio y finalizaciónDon't (Noespecificar el intervalo de tiempo en que se han confirmado las revisiones en el diario de una transacción. Por ejemplo, si se ha confirmado una revisión antes2019-06-05T00:00:00Zy permaneció activo después de esa hora de inicio, esta consulta de ejemplo devolverá esa revisión en los resultados.

Asegúrese de sustituir laid, hora de inicio y hora de finalización con sus propios valores según corresponda.

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 de la consulta deben tener un aspecto similar al siguiente.

{ 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" } }

La salida incluye atributos de metadatos que proporcionan detalles sobre cuándo se modificó cada artículo y qué transacción. A partir de estos datos, puede ver lo siguiente:

  • El documento se identifica de forma exclusiva por el que está asignado por el sistemaid: ADR2Ll1fGsU4Jr4EqTdnQF. Este es un UUID que se representa en una cadena codificada en Base62.

  • UnINSERTcrea la revisión inicial de un documento (versión)0).

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

  • LatxIdindica la transacción que confirmó cada revisión, ytxTimemuestra cuándo se cometió cada uno.

  • UNADELETEcrea una revisión nueva pero final de un documento. Esta revisión final solo tiene metadatos.

Para obtener información sobre cómo optimizar sus consultas, proceda aOptimización del rendimiento de consultas.