Consultando metadados do documento - Amazon Quantum Ledger Database (Amazon QLDB)

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á.

Consultando metadados do documento

Uma instrução INSERT cria a revisão inicial de um documento com um número de versão zero. Para identificar cada documento de forma exclusiva, o Amazon QLDB atribui uma ID do documento como parte dos metadados.

Além da ID do documento e do número da versão, o QLDB armazena outros metadados gerados pelo sistema para cada documento em uma tabela. Esses metadados incluem informações da transação, atributos do diário e o valor de hash do documento.

Todos os IDs atribuídos pelo sistema no QLDB são identificadores universalmente exclusivos (UUID), cada um representado em uma string codificada em Base62. Para obter mais informações, consulte IDs exclusivos no Amazon QLDB.

Visão confirmada

Você pode acessar os metadados do documento consultando a visualização confirmada. Essa visualização retorna documentos DA tabela definida pelo sistema que corresponde diretamente à sua tabela de usuário. Ela inclui a última revisão confirmada e não excluída de seus dados e dos metadados gerados pelo sistema. Para consultar essa visualização, adicione o prefixo _ql_committed_ ao nome da tabela em sua consulta. (O prefixo _ql_ é reservado no QLDB para objetos do sistema.)

SELECT * FROM _ql_committed_VehicleRegistration AS r WHERE r.data.VIN IN ('1N4AL11D75C109151', 'KM8SRDHF6EU074761')

Usando os dados inseridos anteriormente em Criação de tabelas com índices e inserção de documentos, a saída dessa consulta mostra o conteúdo do sistema da revisão mais recente de cada documento não excluído. O documento do sistema tem metadados aninhados no campo metadata e seus dados de usuário aninhados no campo data.

{ blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:14 }, hash:{{wCsmM6qD4STxz0WYmE+47nZvWtcCz9D6zNtCiM5GoWg=}}, data:{ 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" }] } }, metadata:{ id:"3Qv67yjXEwB9SjmvkuG6Cp", version:0, txTime:2019-06-05T20:53:321d-3Z, txId:"HgXAkLjAtV0HQ4lNYdzX60" } }, { blockAddress:{ strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:14 }, hash:{{wPuwH60TtcCvg/23BFp+redRXuCALkbDihkEvCX22Jk=}}, data:{ VIN: "KM8SRDHF6EU074761", LicensePlateNumber: "CA762X", State: "WA", City: "Kent", PendingPenaltyTicketAmount: 130.75, ValidFromDate: 2017-09-14T, ValidToDate: 2020-06-25T, Owners: { PrimaryOwner: { PersonId: "IN7MvYtUjkp1GMZu0F6CG9" }, SecondaryOwners: [] } }, metadata:{ id:"JOzfB3lWqGU727mpPeWyxg", version:0, txTime:2019-06-05T20:53:321d-3Z, txId:"HgXAkLjAtV0HQ4lNYdzX60" } }
Campos de visualização confirmados
  • blockAddress— A localização do bloco no diário do seu ledger em que a revisão do documento foi confirmada. Um endereço, que pode ser usado para verificação criptográfica, tem os dois campos a seguir.

    • strandId— O ID exclusivo da cadeia do diário que contém o bloco.

    • sequenceNo— O número do índice que especifica a localização do bloco dentro da cadeia.

    nota

    Ambos os documentos neste exemplo têm um blockAddress idêntico com o mesmo sequenceNo. Como esses documentos foram inseridos em uma única transação (e, nesse caso, em uma única declaração), eles foram confirmados no mesmo bloco.

  • hash— O valor de hash SHA-256 Ion que representa exclusivamente a revisão do documento. O hash cobre os campos data e metadata das revisões e pode ser usado para verificação criptográfica.

  • data— Os atributos de dados do usuário do documento.

    Se você redigir uma revisão, essa estrutura data será substituída por um campo dataHash, cujo valor é o hash de Ion da estrutura data removida.

  • metadata— Os atributos de metadados do documento.

    • id— O ID exclusivo do documento atribuído pelo sistema.

    • version— O número da versão do documento. Esse é um número inteiro baseado em zero que é incrementado com cada revisão do documento.

    • txTime – O carimbo de hora/data e hora em a revisão do documento foi confirmada no diário.

    • txId – O ID exclusivo da transação que confirmou a revisão do documento.

Unindo as visualizações confirmadas e do usuário

Você pode escrever consultas que unem uma tabela na visualização confirmada com uma tabela na visualização do usuário. Por exemplo, talvez você queira unir o documento id de uma tabela com um campo definido pelo usuário de outra tabela.

A consulta a seguir une duas tabelas nomeadas DriversLicense e Person em seus PersonId e campos id do documento, respectivamente, usando a visualização confirmada para a última.

SELECT * FROM DriversLicense AS d INNER JOIN _ql_committed_Person AS p ON d.PersonId = p.metadata.id WHERE p.metadata.id = '1CWScY2qHYI9G88C2SjvtH'

Para saber como consultar o campo ID do documento na visualização padrão do usuário, vá paraUsando a cláusula BY para consultar a ID do documento.