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 o Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte Migrar um Amazon QLDB Ledger para o Amazon
O 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 no 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 tabela IDs, 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 Consultar o Ion com o PartiQL no 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. Devem estar no formato de hora e data ISO 8601
e em UTC (Tempo Universal Coordenado). -
A hora de início deve ser menor ou igual à hora de término e pode ser qualquer data arbitrária no passado.
-
A hora de término deve ser menor ou igual à data e hora UTC 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). No QLDB, cada consulta SELECT é processada em uma transação e está sujeita a um tempo limite de transação.
As consultas de histórico não usam os índices que você cria em uma tabela. O histórico do QLDB é indexado por 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
idatribuído pelo sistema:ADR2Ll1fGsU4Jr4EqTdnQF. Esse é um identificador universalmente exclusivo (UUID) representado em uma string codificada em Base62. -
Uma instrução
INSERTcria a revisão inicial de um documento (versão0). -
Cada transação subsequente cria uma nova revisão com o mesmo documento
ide um número de versão incrementado. -
O campo
txIdindica a transação que confirmou cada revisão etxTimemostra quando cada uma foi confirmada. -
Uma declaração
DELETEcria 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.