本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon QLDB 文件
亞馬遜 QLDB 將數據記錄存儲為文檔,這些記錄只是插入到表中的亞馬遜離子struct
對象。有關離子規格,請參閱亞馬遜離子 GitHub
Ion 文件結構
像 JSON 一樣,QLDB 文檔由以下結構中的名稱-值對組成。
{
name1: value1,
name2: value2,
name3: value3,
...
nameN: valueN
}
名稱是符號標記,值不受限制。每個名稱-值對稱為一個字段。字段的值可以是任何 Ion資料類型,包括容器類型:嵌套結構,列表和結構列表。
也像 JSON 一樣,astruct
由大括號({...}
)表示,並且 alist
由方括號([...]
)表示。下列範例是來自範例資料的文件,其中包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 查詢離子。
分部离子类型映射
在 QLDB 中,PartiQL 擴展了 SQL 的類型系統,以涵蓋離子數據模型。此映射說明如下:
-
SQL 標量類型由它們的離子同行覆蓋。例如:
-
CHAR
並且VARCHAR
是映射到離子string
類型的 Unicode 序列。 -
NUMBER
映射到離子decimal
類型。
-
-
Ion 的
struct
類型相當於 SQL 元組,它傳統上表示一個表行。-
不過,如果是開放式內容且沒有結構描述,則不支援依賴 SQL 元組排序本質的查詢 (例如的輸出順序
SELECT *
)。
-
-
除此之外
NULL
,PartiQL 還有一個MISSING
類型。這是一個專業化,NULL
並表示缺乏一個領域。此類型是必要的,因為 Ionstruct
欄位可能很稀疏。
文件識別碼
QLDB 會將文件 ID 指派給您插入到表格中的每個文件。所有系統指派的 ID 都是通用唯一識別碼 (UUID),每個識別碼都以 Base62 編碼的字串表示 (例如3Qv67yjXEwB9SjmvkuG6Cp
)。如需詳細資訊,請參閱亞馬遜 QLDB 中的唯一 ID。
每個文件版本修訂都是由文件 ID 和從零開始的版本編號的組合來唯一識別。
文件 ID 和版本欄位包含在文件的中繼資料中,您可以在認可的檢視 (表格的系統定義檢視) 中進行查詢。如需 QLDB 中視圖的詳細資訊,請參閱核心概念。若要進一步了解中繼資料,請參閱查詢文件元資料。