亚马逊QLDB文档 - 亚马逊 Quantum Ledger 数据库(亚马逊QLDB)

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

亚马逊QLDB文档

重要

终止支持通知:现有客户可以在2025年7月31日终止支持QLDB之前使用亚马逊。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL e。

亚马逊将数据记录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标量类型由其离子对应物覆盖。例如:

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

    • NUMBER映射至 Ion decimal类型。

  • Ion 的struct类型等同于一个SQL元组,传统上它代表一个表格

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

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

文档 ID

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

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

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