Amazon 的核心概念和術語 QLDB - Amazon Quantum Ledger 資料庫 (Amazon QLDB)

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

Amazon 的核心概念和術語 QLDB

重要

支援結束通知:現有客戶將能夠使用 Amazon,QLDB直到 2025 年 7 月 31 日終止支援為止。有關更多詳細信息,請參閱將 Amazon QLDB 分類帳遷移到 Amazon Aurora 郵政. SQL

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

QLDB資料物件模型

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

  1. 分類帳

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

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

    分類帳ARN格式:

    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 Ion struct 格式的資料集。文件版本修訂代表以唯一文件 ID 識別的一系列文件的單一版本。

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

  4. 系統目錄

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

    • 在系統目錄表格資訊上執行SELECT陳述式。

    • 在主控台的分類帳詳細資訊頁面上檢視表格和索引資QLDB訊

    • 在QLDB主控台的 PartiQL 編輯器中檢視表格和索引的清單。

    目錄ARN格式:

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

日誌優先的交易

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

  1. 從分類帳中讀取數據的當前狀態。

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

  3. 如果沒有發現OCC衝突,請按如下方式返回交易結果:

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

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

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

下圖說明此分錄結構。

Amazon QLDB 日誌結構圖顯示了組成鏈的一組鏈接塊,以及每個塊的序列號和塊哈希值。

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

注意

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

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

查詢您的資料

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

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

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

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

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

資料儲存

中有兩種類型的數據存儲QLDB:

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

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

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

QLDBAPI模型

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

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

  • Amazon QLDB 會話-交QLDB易數據API。您可以使用此API功能,在具有 PartiQL 陳述式的分類帳上執行資料交易。

    重要

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

    • 如果您使用的是 AWS SDK,請使用QLDB驅動程式。驅動程序在 QLDBSession 數據上方提供了一個高級抽象層,API並為您管理SendCommand操作。如需相關資訊和支援之程式設計語言的清單,請參閱開始使用驅動程式

    • 如果您正在使用 AWS CLI,請使用QLDB命令介面。shell 是使用QLDB驅動程序與分類帳進行交互的命令行界面。如需相關資訊,請參閱使用 Amazon QLDB 外殼(API僅限數據)

如需這些API作業的詳細資訊,請參閱Amazon QLDB API 參考

後續步驟

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

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

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