如何使QLDB分区有效?

How to make QLDB partitioning effective?

我必须在 QLDB 中存储某些账户的交易数据,有什么方法可以让 QLDB 将一个账户的数据存储在同一台服务器上,这样我的 chunking/querying会更快吗?

QLDB is serverless。 AWS 有意将服务器抽象化,即使您今天知道实施细节,它也可能随时更改,而不会发出警告。

当 QLDB 最终支持多个 partitions/shards/strands 时,即便如此,您也不应尝试从服务器的角度考虑这一点,因为无法保证 [=21] 上存在一个分区 "key" =]正好一个 partition/server.

为了帮助解释我的意思,我将与 DynamoDB 进行比较。 (虽然我知道他们没有相同的设计,但我认为指出一点仍然有用。)当使用 DynamoDB 时,你的数据是根据 hashkey 进行分区的,但不能保证所有数据都用于一个单一的hashkey 值存在于一个分区中。 QLDB 可以做类似的事情——也可能不做——但是在设计 table.

时不应对底层实现做出任何假设。

话虽如此,如果您在 accountId 字段上 create an index,则可以提高获取一个帐户数据时的查询性能。

2019 版 QLDB 没有分区形式。您的所有数据都写入日志的单个 "strand"(分区)。索引存储中有多个数据副本,但每个节点都拥有所有数据(用于所有表和索引)。