REDACT_ Amazon 中的REVISION存儲過程 QLDB - Amazon Quantum 賬本數據庫(AmazonQLDB)

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

REDACT_ Amazon 中的REVISION存儲過程 QLDB

重要

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

注意

在 2021 年 7 月 22 日之前建立的任何分類帳目前都不符合編輯資格。您可以在 Amazon QLDB 主控台上檢視分類帳的建立時間。

在 Amazon 中QLDB,使用REDACT_REVISION預存程序永久刪除索引儲存和日誌儲存中的個別非作用中文件修訂版。這個預存程序會刪除指定修訂版本中的所有使用者資料。不過,它會保持日誌序列和文件中繼資料 (包括文件 ID 和雜湊) 不變。此操作是不可逆轉的。

指定的文件修訂版本必須是記錄中的非使用中修訂版本。文件的最新使用中修訂版本不符合密文的資格。

執行此預存程序來提交密文要求之後,會以非同步方式QLDB處理資料的密文。完成密文之後,指定修訂版本 (以data結構表示) 的使用者資料會被新dataHash欄位取代。此欄位的值是已移除data結構的 Amazon Ion 雜湊值。因此,總帳會維持其整體資料完整性,並透過現有的驗證作業保持可加密驗證API。

有關具有範例資料的密文操作範例,請參閱密文範例編輯文件修訂版本的。

注意

若要瞭解如何控制在特定資料表上執行此 PartiQL 命令的存取權,請參閱開始使用 Amazon 的標準許可模式 QLDB

密文考量與限制

在 Amazon 開始進行資料編修之前QLDB,請務必先檢閱下列考量和限制:

  • REDACT_REVISION預存程序會將您的使用者資料鎖定在個別的非使用中文件修訂版本中。若要編輯多個修訂版本,您必須針對每個修訂執行一次預存程序。您可以為每個異動編輯一個修訂。

  • 若要編輯文件修訂版本中的特定欄位,您必須先使用個別的資料操作語言 (DML) 陳述式來修改修訂版本。如需詳細資訊,請參閱 標記版本中的特定欄位

  • QLDB收到密文請求後,您無法取消或更改請求。若要確認密文是否完成,您可以檢查修訂版本的data結構是否已由dataHash欄位取代。如需進一步了解,請參閱檢查密文是否完成

  • 編修不會影響任何在QLDB服務外部複寫的QLDB資料。這包括任何匯出至 Amazon S3,以及將串流至 Amazon Kinesis Data Streams。您必須使用其他資料保留方法來管理儲存在以外的任何資料QLDB。

  • 編修不會影響日誌中記錄的 PartiQL 陳述式中的常值。最佳作法是,您應該使用變數預留位置而非常值,以程式設計方式執行參數化陳述式。預留位置會以問號 (?) 的形式寫入日誌,而不是任何可能需要密文的敏感資訊。

    若要了解如何以程式設計方式使用QLDB驅動程式執行 PartiQL 陳述式,請參閱. 開始使用驅動程式

語法

EXEC REDACT_REVISION `block-address`, 'table-id', 'document-id'

引數

`block-address`

要編輯之文件修訂版本的分錄區塊位置。地址是具有兩個字段的 Amazon 離子結構:strandIdsequenceNo

這是由反引號表示的離子文字值。例如:

`{strandId:"JdxjkR9bSYB5jMHWcI464T", sequenceNo:17}`

若要瞭解如何尋找區塊位址,請參閱查詢文件元資料

'table-id'

您要編輯其文件修訂版本之表格的唯一 ID,以單引號表示。

若要瞭解如何尋找資料表 ID,請參閱查詢系統目錄

'document-id'

要編輯之修訂的唯一文件 ID,以單引號表示。

若要瞭解如何尋找文件 ID,請參閱查詢文件元資料

傳回值

Amazon Ion 結構,代表要編輯的文件修訂版,格式如下。

{ blockAddress: { strandId: String, sequenceNo: Int }, tableId: String, documentId: String, version: Int }
傳回結構欄位
  • blockAddress— 要編輯之修訂的日誌區塊位置。地址有以下兩個字段。

    • strandId— 包含區塊之日誌鏈的唯一 ID。

    • sequenceNo— 指定圖塊在鏈中的位置的索引號碼。

  • tableId— 您正在編輯其修訂版本的表格的唯一 ID。

  • documentId— 要編輯的修訂版本的唯一文件 ID。

  • version— 要編輯的文件修訂版本的版本號碼。

以下是帶有示例數據的返回結構的示例。

{ blockAddress: { strandId: "CsRnx0RDoNK6ANEEePa1ov", sequenceNo: 134 }, tableId: "6GZumdHggklLdMGyQq9DNX", documentId: "IXlQPSbfyKMIIsygePeKrZ", version: 0 }

範例

EXEC REDACT_REVISION `{strandId:"7z2P0AyQKWD8oFYmGNhi8D", sequenceNo:7}`, '8F0TPCmdNQ6JTRpiLj2TmW', '05K8zpGYWynDlEOK5afDRc'