1

我想在查询语言为 PartiQL 的 QLDB 中定义一个主键,如何将ID定义为主键?

CREATE TABLE CarInfo WITH (aws_tags = `{ 'ID': INT, 'Manufacturer': STRING, 'ProductionYear': year, 'Model':STRING, 'VIN':STRING, 'Owner': STRING}`);

PS,由于在《Amazon QLDB-开发者指南》的文档中写着“ QLDB支持开放内容,不强制schema,所以创建表的时候不要定义属性或数据类型。 ”,可能没有PRIMARY KEY存在在 PartiQL 中?

4

1 回答 1

0

您最初的断言是正确的——目前 QLDB 中没有传统的主键概念。要唯一标识文档,您可以使用文档 id。为了强制唯一性,当前的建议是在事务中的 INSERT 之前 SELECT 以验证插入的数据是唯一的。您还需要确保用于强制唯一性/幂等性的字段包含高基数值,以便优化索引查询(请参阅此处优化的更多信息)。

关于您对排序的评论,QLDB 索引中的内容未排序,目前不支持排序索引。因此,您需要执行应用程序级别的排序。如果有太多行无法执行此操作,您可以考虑流式传输到辅助数据库进行排序和任何其他分析查询。

于 2022-02-28T23:28:47.633 回答