можем ли мы получить версию документа по хешу транзакции в qldb

мы пытаемся получить зафиксированную ревизию документа в qldb с ее хешем транзакции. однако он не возвращает строку с определенным хешем при попытке под запросом

      SELECT * FROM history(Users) AS h WHERE h.hash='8kmIsF2X2HonQDhuoosBbKZtSQCjHZgnyUmPGZa9pJc='

Я считаю, что хеш tx в ревизии qldb является ионным литералом, поэтому его не следует рассматривать как строку. Итак, как мы можем получить ревизию документа по хешу

1 ответ

Решение

To execute this query successfully you'll need to treat the hash value as a blob type Ion literal, which can be done using backticks and {{...}} :

      SELECT * FROM history(Users) AS h WHERE h.hash = `{{8kmIsF2X2HonQDhuoosBbKZtSQCjHZgnyUmPGZa9pJc=}}`

Reference: https://docs.aws.amazon.com/qldb/latest/developerguide/ql-reference.query.html#ql-reference.query.backtick

It is worth noting that this query scans every revision for all documents in the Users table. QLDB'shistory does not support indexes and this query will degrade as the table grows.

Другие вопросы по тегам