本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon QLDB 文件
重要
支援終止通知:現有客戶將可以使用 Amazon QLDB,直到 07/31/2025 的支援結束為止。如需詳細資訊,請參閱將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL
Amazon 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 相容性。如需 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-encoded字串表示 (例如 3Qv67yjXEwB9SjmvkuG6Cp
)。如需詳細資訊,請參閱Amazon QLDB 中的唯一 IDs 。
每個文件修訂版本都是由文件 ID 和零基版本編號的組合唯一識別。
文件 ID 和版本欄位包含在文件的中繼資料中,您可以在遞交檢視 (資料表的系統定義檢視) 中查詢。如需 QLDB 中檢視的詳細資訊,請參閱核心概念。若要進一步了解中繼資料,請參閱 查詢文件中繼資料。