

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

# Amazon QLDB 文档
<a name="ql-reference.docs"></a>

**重要**  
终止支持通知：现有客户将能够使用 Amazon QLDB，直到 2025 年 7 月 31 日终止支持。有关更多详细信息，请参阅[将亚马逊 QLDB 账本迁移到亚马逊 Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

Amazon QLDB 将数据记录存储为文档，这些文档只是插入到表中的[Amazon Ion](ion.md) `struct`对象。有关 Ion 规范，请访问 [Amazon Ion GitHub](http://amzn.github.io/ion-docs/docs/spec.html) 网站。

**Topics**
+ [

## Ion 文档结构
](#ql-reference.docs.ion)
+ [

## PartiQL-ion 类型映射
](#ql-reference.docs.types)
+ [

## 文档 ID
](#ql-reference.docs.id)

## Ion 文档结构
<a name="ql-reference.docs.ion"></a>

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

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

名称为符号标记，其值不受限制。每个名称/值对都称为一个*字段*。字段的值可以是任何 Ion[数据类型](ql-reference.data-types.md)，包括以下容器类型：嵌套结构、列表和结构列表。

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

```
{
    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](ql-reference.query.md)。

## PartiQL-ion 类型映射
<a name="ql-reference.docs.types"></a>

在 QLDB，PartiQL 扩展了 SQL 的类型系统，以覆盖 Ion 数据模型。此映射描述如下：
+ SQL 标量类型包含在 Ion 对应物之中。例如：
  + `CHAR`和`VARCHAR`是映射到 Ion `string` 类型的 Unicode 序列。
  + `NUMBER`映射至 Ion `decimal`类型。
+ Ion 的 `struct`类型等同于 SQL 元组，传统上表示表*行*。
  + 但是，在内容开放且没有架构的情况下，不支持依赖 SQL 元组有序性质的查询（例如`SELECT *`的输出顺序）。
+ 除`NULL`之外，PartiQL 还有一个`MISSING`类型。这是一种专业化`NULL`，表明缺少字段。此类型为必要项，因为 Ion `struct` 字段可能很稀少。

## 文档 ID
<a name="ql-reference.docs.id"></a>

QLDB 会为您插入到表格中的每个*文档分配一个文档 ID*。系统分配的所有标识符 IDs 都是通用唯一标识符 (UUID)，每个标识符都以 Base62 编码的字符串表示（例如）。`3Qv67yjXEwB9SjmvkuG6Cp`有关更多信息，请参阅 [IDs 在亚马逊 QLDB 中独树一帜](working.unique-id.md)。

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

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