本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊QLDB文档
重要
终止支持通知:现有客户可以在2025年7月31日终止支持QLDB之前使用亚马逊。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL
亚马逊将数据记录QLDB存储为文档,这些文档只是插入到表格中的 Amazon Ion struct
对象。有关 Ion 规范,请访问 Amazon Ion GitHub
Ion 文档结构
同样JSON,QLDB文档由以下结构中的名称/值对组成。
{
name1: value1,
name2: value2,
name3: value3,
...
nameN: valueN
}
名称为符号标记,其值不受限制。每个名称/值对都称为一个字段。字段的值可以是任何 Ion数据类型,包括以下容器类型:嵌套结构、列表和结构列表。
也像JSON,a struct
用大括号 ({...}
) 表示,a 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兼容性。有关中 PartiQL 语法和语义的详细信息,请参阅QLDB。使用 PartiQL 查询 Ion
PartiQL-ion 类型映射
在中QLDB,PartiQL 扩展SQL了类型系统以涵盖离子数据模型。此映射描述如下:
-
SQL标量类型由其离子对应物覆盖。例如:
-
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,请参阅核心概念。了解有关元数据的更多信息,请参阅 查询文档元数据。