本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon QLDB 中的 REDACT_REVISION 預存程序
重要
支援終止通知:現有客戶將可以使用 Amazon QLDB,直到 07/31/2025 的支援結束為止。如需詳細資訊,請參閱將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL
注意
任何在 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 Ion 結構:
strandId和sequenceNo。這是以反引號表示的 Ion 常值。例如:
`{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'