首页 > 解决方案 > 我们可以通过 qldb 中的事务哈希检索文档修订吗

问题描述

我们正在尝试使用其事务哈希检索 qldb 中已提交的文档修订。但是,在尝试以下查询时,它没有返回具有特定哈希的行

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

我相信 qldb 修订版中的 tx 哈希是离子文字,因此不应将其视为字符串。那么我们如何通过哈希检索文档修订

标签: sqlblockchainamazon-qldbpartiql

解决方案


要成功执行此查询,您需要将hash值视为 blob 类型的 Ion 文字,这可以使用反引号和 来完成{{...}}

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

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

值得注意的是,此查询会扫描Users表中所有文档的每个修订版。QLDB 的历史记录不支持索引,并且此查询将随着表的增长而降级。


推荐阅读