本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon QLDB 文档
重要
终止支持通知:现有客户将能够使用 Amazon QLDB,直到 2025 年 7 月 31 日终止支持。有关更多详细信息,请参阅将亚马逊 QLDB 账本迁移到亚马逊 Aurora PostgreSQL
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 对应物之中。例如:
-
CHAR
和VARCHAR
是映射到 Ionstring
类型的 Unicode 序列。 -
NUMBER
映射至 Iondecimal
类型。
-
-
Ion 的
struct
类型等同于 SQL 元组,传统上表示表行。-
但是,在内容开放且没有架构的情况下,不支持依赖 SQL 元组有序性质的查询(例如
SELECT *
的输出顺序)。
-
-
除
NULL
之外,PartiQL 还有一个MISSING
类型。这是一种专业化NULL
,表明缺少字段。此类型为必要项,因为 Ionstruct
字段可能很稀少。
文档 ID
QLDB 会为您插入到表格中的每个文档分配一个文档 ID。系统分配的所有标识符 IDs 都是通用唯一标识符 (UUID),每个标识符都以 Base62 编码的字符串表示(例如)。3Qv67yjXEwB9SjmvkuG6Cp
有关更多信息,请参阅 IDs 在亚马逊 QLDB 中独树一帜。
每个文档修订版都由文档 ID 和从零开始的版本号组合作为唯一标识。
文档 ID 和版本字段都包含在文档元数据中,您可以在提交视图(系统定义的表格视图)中对其进行查询。有关 QLDB 中的这些视图的更多信息,请参阅核心概念。了解有关元数据的更多信息,请参阅 查询文档元数据。