亞馬遜 QLDB 中的核心概念和術語 - Amazon Quantum Ledger Database (Amazon QLDB)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

亞馬遜 QLDB 中的核心概念和術語

本節提供 Amazon QLDB 核心概念和術語的概觀,包括分類帳結構以及分類帳管理資料的方式。作為總帳數據庫,QLDB 與其他面向文檔的數據庫不同,當涉及到以下關鍵概念時。

QLDB 資料物件模型

亞馬遜 QLDB 中的基本數據對象模型描述如下:

  1. 分類帳

    您的第一個步驟是建立分類帳,分類帳是 QLDB 中的主要AWS資源型態。若要瞭解如何建立分類帳,請參閱〈步驟 1:建立新的分類帳開始使用主控台〉或Amazon QLDB 分類帳的基本操作

    對於分類帳的ALLOW_ALLSTANDARD許可模式,您可以建立AWS Identity and Access Management (IAM) 政策,以授與在此分類帳資源上執行 API 作業的權限。

    分類帳本格式式式式式式

    arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}
  2. 期刊和表格

    若要開始在 QLDB 分類帳中寫入資料,您必須先建立具有基本CREATE TABLE陳述式的資料。分類帳資料包含確認至分類帳分錄的文件修訂。您可以在使用者定義表格的內容中,將文件版次確認至分類帳。在 QLDB 中,表格代表分錄中文件修訂集合的具體化視觀表。

    在分類帳的STANDARD許可模式中,您必須建立 IAM 政策,以授與權限,才能在此表格資源上執行 PartiQL 陳述式。透過表格資源的權限,您可以執行存取資料表目前狀態的陳述式。您還可以使用內置history()函數查詢表格的修訂歷史記錄。

    資料表 ARN 式式式的資料表

    arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/table/${table-id}

    如需有關授與分類帳及其相關資訊,請參閱Amazon QLDB 如何與 IAM 合作

  3. 文件

    資料表包含的修訂版QLDB 文件,這些修訂是 Amazon Ionstruct 格式的資料集。文件版本修訂代表以唯一文件 ID 識別的一系列文件的單一版本。

    QLDB 會儲存已提交文件的完整變更記錄。表格可讓您查詢其文件的目前狀態,而history()函數則可讓您查詢表格文件的整個修訂歷程記錄。如需查詢和寫入修訂的詳細資訊,請參閱使用資料和歷程記錄

  4. 系統目錄

    每個分類帳還提供系統定義的型錄資源,您可以查詢此資源,以列出分類帳中的所有表格與索引。在分類帳的STANDARD權限模式中,您需要此目錄資源的權限qldb:PartiQLSelect才能執行下列作業:

    目錄的資料 ARN 式式式式式

    arn:aws:qldb:${region}:${account-id}:ledger/${ledger-name}/information_schema/user_tables

日誌優先的交易

當應用程序讀取或寫入 QLDB 分類帳中的數據時,它會在數據庫事務中執行此操作。所有交易均受到中定義的限制亞馬遜 QLDB 中的配額和限制。在交易中,QLDB 執行以下步驟:

  1. 從分類帳中讀取資料的目前狀態。

  2. 執行交易中提供的陳述式,然後使用樂觀並行控制 (OCC) 檢查是否有任何衝突,以確保完全可序列化隔離。

  3. 如果找不到 OCC 衝突,請依照下列方式傳回交易結果:

    • 對於讀取,返回結果集,並以僅附加的方式將SELECT語句提交到日誌。

    • 對於寫入,請以僅附加的方式將任何更新、刪除或新插入的資料提交至日誌。

日誌代表了對數據的所有更改的完整和不可變的歷史記錄。QLDB 會將一個鏈結的區塊寫入交易中的日誌。每個區塊都包含項目物件,這些物件代表您插入、更新和刪除的文件修訂版,以及認可它們的 PartiQL 陳述式。

下圖說明此分錄結構的說明此分錄結構

Amazon QLDB 日誌結構圖顯示一組組成鏈結的區塊,以及每個區塊的序號和區塊雜湊。

此圖表顯示交易已確認為包含文件修訂分錄的區塊。每個塊都被散列並鏈接到後續塊以進行驗證。每個塊都有一個序列號來指定其在鏈中的地址。

注意

在 Amazon QLDB 中,鏈條是分類帳期刊的分區。QLDB 目前僅支援單鏈的期刊。

若要取得有關圖塊中資料內容的資訊,請參閱〈〉亞馬遜 QLDB 中的期刊內容

查詢您的資料

QLDB 的目的想要高效能線上交易處理 (OLTP) 工作負載。分類帳會根據確認至分錄的交易資訊,提供資料的可查詢表格檢視表。在 QLDB 表視圖是在一個表中的數據的子集。視圖是實時維護的,因此它們始終可供應用程序查詢。

您可以使用 PartiQLSELECT 陳述式查詢下列系統定義的檢視:

  • 用戶」— 只有您在表中寫入的數据(即用戶數据的當前狀態)的最新活動版本。這是 QLDB 中的預設檢視。

  • 提交 — 使用者資料和系統產生的中繼資料的最新作用中修訂版本。這是直接對應至您的使用者資料表的完整系統定義表格。

除了這些可查詢的視圖之外,您還可以使用內置的查詢數據的修訂歷史記錄歷史功能。history 函數返回您的用戶數據和相同的模式中的提交視圖相關的元數據。

資料儲存體

有兩種類型的資料儲存體有兩種類型的 QLDB 儲存體:

  • 日誌儲存 — 分類帳日誌所使用的磁碟空間。該日誌僅附加,其中包含對數據的所有更改的完整,不可變和可驗證的歷史記錄。

  • 引儲存 — 分類帳表格、索引和索引歷史記錄所使用的磁碟空間。索引儲存包含針對高效能查詢最佳化的總帳資料。

將資料送達日誌之後,就會實現到您定義的資料表中。這些表格經過最佳化,可提供更快、更有效率的查詢 當應用程式使用交易資料 API 讀取資料時,會存取儲存在索引儲存體中的資料表和索引。

QLDB API 模式

QLDB 提供兩種類型的 API,您的應用程式程式碼可以與之互動:

  • 亞馬遜 QLDB — QLDB 資源管理 API (也稱為控制平面)。此 API 僅用於管理分類帳資源和非交易資料作業。您可以使用這些作來建立、刪除、描述、列出及更新分類帳。您也可以以密碼方式驗證資料,以及匯出或串流日誌區塊。

  • 亞馬遜 QLDB 工作階段 — QLDB 交易資料 API。您可以使用此 API 在具有 PartiQL 陳述式的分類帳上執行資料交易。

    重要

    我們建議您不要直接與 QLDB 工作階段 API 互動,而是使用 QLDB 驅動程式或 QLDB 命令介面在分類帳上執行資料交易。

    • 如果您使用的是AWS SDK,請使用 QLDB 驅動程式。驅動程式會在 QLDB 工作階段資料 API 上方提供高階層抽象層,並為您管理SendCommand作業。如需相關資訊和支援的程式設計語言清單,請參閱開始使用驅動程式

    • 如果您正在使用AWS CLI,請使用 QLDB 命令介面。殼層是使用 QLDB 驅動程式與總帳互動的命令列介面。如需相關資訊,請參閱 使用亞馬遜 QLDB 外殼 (僅限資料 API)

如需有關這些 API 操作的詳細資訊,請參閱Amazon QLDB API 參考參考.

後續步驟

若要瞭解如何將分類帳與資料搭配使用,請參閱使用亞馬遜 QLDB 中的數據和歷史記錄並遵循說明建立資料表、插入資料和執行基本查詢程序的範例。本指南使用範例資料和上下文的查詢範例,說明這些概念如何深入運作。

若要透過使用 QLDB 主控台的範例應用程式教學課程快速入門,請參閱Amazon QLDB 主控台

如需本節所述的主要術語和定義清單,請參閱Amazon QLDB 字彙