Amazon 概述 QLDB - Amazon Quantum Ledger 資料庫 (Amazon QLDB)

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

Amazon 概述 QLDB

重要

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

以下各節提供 Amazon QLDB 服務元件及其互動方式的高階概觀。

第一期刊

在傳統的數據庫體系結構,你通常寫在表中的數據作為一個事務的一部分。交易記錄 (通常是內部實作) 會記錄所有的交易,以及它們所做的資料庫修改。交易記錄檔是資料庫的重要元件。在發生系統故障、嚴重損壞修復或資料複寫時,您需要記錄才能重新顯示交易。但是,資料庫交易記錄檔不是不可變的,而且不是為了提供使用者直接且輕鬆存取而設計的。

在 AmazonQLDB,該日誌是數據庫的核心。在結構上與交易記錄檔類似,日誌是不可變的、僅附加的資料結構,可儲存應用程式資料以及相關聯的中繼資料。所有寫入交易 (包括更新和刪除) 都會先確認至日誌。

QLDB透過將分錄實現至可查詢的使用者定義表格,以使用分錄來決定分類帳資料的目前狀態。這些表格也提供所有交易資料的可存取歷史記錄,包括文件修訂版和中繼資料。此外,該日誌還處理分類帳資料的並行、排序、密碼編譯驗證和可用性。

下圖說明QLDB期刊架構。

標題為QLDB:該分錄是數據庫,顯示日誌架構,其中包含連接到分類帳並將交易確認到分錄(具體化為表格)的應用程序。
  • 在此範例中,應用程式會連線至分類帳,並執行將文件插入、更新及刪除名為的表格中的交易cars

  • 資料會先以排序順序寫入日誌。

  • 然後將數據實現到具有內置視圖的表中。這些視圖使您可以查詢 Car 的當前狀態和完整歷史記錄,每個版本都分配了一個版本號。

  • 您也可以直接從日誌匯出或串流資料。

固定

由於QLDB日誌是僅附加的,因此會保留無法修改或覆寫之資料所有變更的完整記錄。沒有APIs或其他方法可以更改任何已提交的數據。此分錄結構可讓您存取並查詢分類帳的完整歷史記錄。

注意

QLDB支持的不變性的唯一例外是數據編輯。使用此功能,您可以遵守法規,例如歐盟的《一般資料保護條例》(GDPR) 和《加州消費者隱私法》(CCPA)。

QLDB提供密文操作,可讓您永久刪除表格記錄中非使用中的文件修訂版。此作業只會刪除指定修訂版本中的使用者資料,並保持分錄順序與文件中繼資料不變。這樣可以維護分類帳的整體資料完整性。如需詳細資訊,請參閱 編輯文件修訂版本

QLDB將一個區塊寫入交易中的日誌。每個區塊都包含項目物件,這些物件代表您插入、更新和刪除的文件,以及您執行來認可它們的陳述式。這些塊經過排序和哈希鏈接,以確保數據的完整性。

下圖說明此分錄結構。

標題為記錄的圖表不能被改變,顯示了不可變的,只附加的日誌結構QLDB,每個哈希鏈式日誌塊的序列號。

該圖表顯示交易作為哈希鏈接進行驗證的塊認可到日誌。每個塊都有一個序列號來指定其地址。

可以加密驗證

日誌塊與加密哈希技術進行排序並鏈接在一起,類似於區塊鏈。QLDB使用日誌的雜湊鏈,使用密碼編譯驗證方法來提供交易資料完整性。使用摘要(表示截至某個時間點日誌的完整散列鏈的哈希值)和 Merkle 審核證明(一種證明二進制哈希樹中任何節點有效性的機制),您可以驗證隨時對數據沒有意外更改。

下圖顯示在某個時間點涵蓋日誌的完整雜湊鏈的摘要。

標題為使用 SHA -256 的雜湊鏈結的圖表,顯示涵蓋日誌完整雜湊鏈的摘要,其中包含代表 Ion 文件、PartiQL 陳述式和中繼資料的日誌區塊結構。

在此圖中,日誌區塊會使用 SHA -256 密碼編譯雜湊函式進行雜湊處理,並依序鏈結至後續區塊。每個區塊都包含包含在交易中執行的資料文件、中繼資料和 PartiQL 陳述式的項目。

如需詳細資訊,請參閱 Amazon 中的資料驗證 QLDB

SQL像和文檔靈活

QLDB使用 PartiQL 作為其查詢語言,Amazon 離子作為其文檔導向的數據模型。PartiQL 是一種開放原始碼、SQL兼容的查詢語言,已擴展為與 Ion 一起使用。使用 PartiQL,您可以使用熟悉的SQL運算子插入、查詢和管理資料。當您查詢平面文件時,其語法與用於查詢關聯式資料表SQL的語法相同。若要進一步了解 PartiQL 的QLDB實作,請參閱. Amazon QLDB 参考

Amazon 離子是一個超集. JSON Ion 是一種開放原始碼、以文件為基礎的資料格式,可讓您靈活地儲存和處理結構化、半結構化和巢狀資料。若要進一步瞭解中的 IonQLDB,請參閱Amazon Amazon 離子數據格式參考 QLDB

如需傳統關聯式資料庫中核心元件和功能的高階比較QLDB,請參閱從關聯式到分類帳

开源开发者工具

為了簡化應用程序開發,QLDB提供各種編程語言的開源驅動程序。您可以在分類帳上執行 PartiQL 陳述式並處理這些陳述式的結果,使用這些驅動程式與交易資料API互動。如需目前支援之驅動程式語言的資訊和自學課程,請參閱〈〉開始使用 Amazon QLDB 驅動程序

Amazon Ion 也提供可為您處理 Ion 資料的用戶端程式庫。如需處理 Ion 資料的開發人員指南和程式碼範例,請參閱上的 Amazon Ion 文件 GitHub。

無伺服器和高可用性

QLDB完全受管、無伺服器且高可用性。服務會自動擴展以支援應用程式的需求,而且您不需要佈建執行個體或容量。您的資料的多個副本會在可用區域內複寫,並在 AWS 區域.

企業級

QLDB事務完全符合原子性,一致性,隔離和耐久性(ACID)屬性。QLDB使用樂觀並發控制(OCC),並且交易以完全序列化(最高級別的隔離)進行操作。這意味著沒有看到幻象讀取,骯髒讀取,寫入歪斜或其他類似並發問題的風險。如需詳細資訊,請參閱 Amazon QLDB 并发模型