Amazon QLDB 文档 - Amazon Quantum Ledger Database (Amazon QLDB)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon QLDB 文档

Amazon QLDB 将数据记录存储为文档,这些文档只是插入到表中的Amazon Ion struct对象。有关 Ion 规范,请访问 Amazon Ion GitHub 网站。

Ion 文档结构

与 JSON 一样的是,QLDB 文档由以下结构中的名称/值对组成。

{ name1: value1, name2: value2, name3: value3, ... nameN: valueN }

名称为符号标记,其值不受限制。每个名称/值对都称为一个字段。字段的值可以是任何 Ion数据类型,包括以下容器类型:嵌套结构、列表和结构列表。

与 JSON 一样的是,struct用大括号 ({...}) 表示,list 用方括号 ([...]) 表示。以下示例是Amazon QLDB 控制台入门中示例数据的文档,其中包含各种类型的值。

{ VIN: "1N4AL11D75C109151", LicensePlateNumber: "LEWISR261LL", State: "WA", City: "Seattle", PendingPenaltyTicketAmount: 90.25, ValidFrom: 2017-08-21T, ValidTo: 2020-05-11T, Owners: { PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" }, SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }] } }
重要

在 Ion 中,双引号表示字符串值,未加引号符号表示字段名。但在 PartiQL,单引号表示字符串和字段名。

这种语法差异允许 PartiQL 查询语言保持 SQL 兼容性,使 Amazon Ion 数据格式保持 JSON 兼容性。有关 QLDB 中 PartiQL 的语法和语义详细信息,请参阅使用 PartiQL 查询 Ion

PartiQL-ion 类型映射

在 QLDB,PartiQL 扩展了 SQL 的类型系统,以覆盖 Ion 数据模型。此映射描述如下:

  • SQL 标量类型包含在 Ion 对应物之中。例如:

    • CHARVARCHAR是映射到 Ion string 类型的 Unicode 序列。

    • NUMBER映射至 Ion decimal类型。

  • Ion 的 struct类型等同于 SQL 元组,传统上表示表

    • 但是,在内容开放且没有架构的情况下,不支持依赖 SQL 元组有序性质的查询 (例如SELECT *的输出顺序)。

  • NULL之外,PartiQL 还有一个MISSING类型。这是一种专业化NULL,表明缺少字段。此类型为必要项,因为 Ion struct 字段可能很稀少。

文档 ID

QLDB 会为您插入到表格中的每个文档分配一个文档 ID。所有系统分配的 ID 都是通用唯一标识符 (UUID),每个标识符都以 Base62 编码的字符串表示 (例如3Qv67yjXEwB9SjmvkuG6Cp)。有关更多信息,请参阅Amazon QLDB 中的唯一编号

每个文档修订版都由文档 ID 和从零开始的版本号组合作为唯一标识。

文档 ID 和版本字段都包含在文档元数据中,您可以在提交视图(系统定义的表格视图)中对其进行查询。有关 QLDB 中的这些视图的更多信息,请参阅核心概念。了解有关元数据的更多信息,请参阅 查询文档元数据