As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Consultar o histórico de revisões
Importante
Aviso de fim do suporte: os clientes existentes poderão usar a Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte Migrar um Amazon QLDB Ledger para o Amazon Aurora Postgre
A Amazon QLDB armazena o histórico completo de cada documento em uma tabela. Você pode ver todas as três revisões de um documento de registro de veículo que inseriu, atualizou e excluiu anteriormente em Atualizar e excluir documentos, consultando a função de histórico integrada.
Função de histórico
A função de histórico em QLDB é uma extensão partiQL que retorna revisões da exibição definida pelo sistema da sua tabela. Portanto, inclui seus dados e os metadados associados no mesmo esquema que a visualização confirmada.
Sintaxe
SELECT * FROM history( table_name
| 'table_id
' [, `start-time
` [, `end-time
` ] ] ) AS h
[ WHERE h.metadata.id = 'id
' ]
Argumentos
table_name
| 'table_id
'-
O nome da tabela ou o ID da tabela. O nome da tabela é um identificador PartiQL que você pode indicar com aspas duplas ou sem aspas. O ID da tabela é um literal de string que deve estar entre aspas simples. Para saber mais sobre como usar a tabelaIDs, consulteConsultando o histórico de tabelas inativas.
- `
start-time
`, `end-time
` -
(Opcional) Especifica o intervalo de tempo durante o qual todas as revisões estavam ativas. Esses parâmetros não especificam o intervalo de tempo durante o qual as revisões foram confirmadas no diário em uma transação.
Os horários de início e término são literais de timestamp de Ion que podem ser indicados com acentos graves (
`...`
). Para saber mais, consulte Consultando o Ion com o PartiQL na Amazon QLDB.Esses parâmetros de tempo têm o seguinte comportamento:
-
A hora de início e a hora de término são opcionais. Eles devem estar no formato de data e hora ISO8601
e no Tempo Universal Coordenado ()UTC. -
A hora de início deve ser menor ou igual à hora de término e pode ser qualquer data arbitrária no passado.
-
O horário final deve ser menor ou igual à UTC data e hora atuais.
-
Se você especificar uma hora de início, mas não uma hora de término, sua consulta padronizará a hora de término para a data e a hora atuais. Se você não especificar nenhum dos dois, sua consulta retornará o histórico inteiro.
-
- '
id
' -
(Opcional) O ID do documento para o qual você deseja consultar o histórico de revisões, indicado por aspas simples.
dica
Como prática recomendada, qualifique uma consulta de histórico com um intervalo de datas (hora de início e hora de término) e um ID de documentos (metadata.id
). EmQLDB, cada SELECT
consulta é processada em uma transação e está sujeita a um limite de tempo limite de transação.
As consultas de histórico não usam os índices que você cria em uma tabela. QLDBo histórico é indexado somente pela ID do documento, e você não pode criar índices de histórico adicionais no momento. As consultas de histórico que incluem uma hora de início e uma hora de término ganham o benefício da qualificação por intervalo de datas.
Exemplo de consulta de histórico
Para consultar o histórico do documento de registro do veículo, use o id
que você salvou anteriormente em Atualizar e excluir documentos. Por exemplo, a consulta de histórico a seguir retorna todas as revisões do ID do documento ADR2Ll1fGsU4Jr4EqTdnQF
que já estiveram ativas entre 2019-06-05T00:00:00Z
e 2019-06-05T23:59:59Z
.
nota
Lembre-se de que os parâmetros de hora de início e término não especificam o intervalo de tempo durante o qual as revisões foram confirmadas no diário em uma transação. Por exemplo, se uma revisão foi confirmada antes de 2019-06-05T00:00:00Z
e permaneceu ativa após esse horário de início, essa consulta de exemplo retornará essa revisão nos resultados.
Certifique-se de substituir a id
,hora de início e a hora de término por seus próprios valores, conforme adequado.
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
Os resultados terão uma aparência semelhante a esta:
{
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"
}
}
O resultado inclui atributos de metadados que fornecem detalhes sobre quando cada item foi modificado e por qual transação. A partir desses dados, você pode deduzir o seguinte:
-
O documento é identificado exclusivamente por seu
id
atribuído pelo sistema:ADR2Ll1fGsU4Jr4EqTdnQF
. UUIDIsso é representado em uma string codificada em Base62. -
Uma instrução
INSERT
cria a revisão inicial de um documento (versão0
). -
Cada transação subsequente cria uma nova revisão com o mesmo documento
id
e um número de versão incrementado. -
O campo
txId
indica a transação que confirmou cada revisão etxTime
mostra quando cada uma foi confirmada. -
Uma declaração
DELETE
cria uma revisão nova, mas final, de um documento. Essa revisão final tem somente metadados.
Para saber como excluir permanentemente uma revisão, vá para Redigir revisões de documentos.