建立及變更時間遠程作業的物件
概觀
若要在 NPSaaS上執行時間旅行查詢,請將 DATA_VERSION_RETENTION_TIME (保留時間間隔) 設為非零值,以建立時間旅行表格、綱目或資料庫 (時間旅行物件)。 若要設定 DATA_VERSION_RETENTION_TIME,請針對這些物件類型使用 CREATE 或 ALTER 指令,或使用 Web 主控台。 您可以選取 1 天到最多 99 天之間,或選取零以將時間物件變更為非時間物件。
在設定綱目或資料庫中所有表格的保留時間間隔之前,請考量時間表格的儲存成本,這可能很重要。 請參閱 管理時間旅行空間使用情形。
此外,您可以 為系統設定預設 DATA_VERSION_RETENTION_TIME。
時間表格通常具有現行橫列及歷程橫列。 現行列未標示為刪除。 歷程列會標示為刪除 (由 DELETE、UPDATE、MERGE 或 TRUNCATE 陳述式),且在超過其刪除時間戳記的指定保留時間間隔之前,對時間遠程作業查詢可見。
DATA_VERSION_RETENTION_TIME 值為零的表格是非時間表格。 查詢只會看到其現行 (未刪除) 列。 部分歷程列可能會保留用於增量備份,但時間遠程作業查詢無法存取這些列。
如果您將現有時間表格的 DATA_VERSION_RETENTION_TIME 變更為零,則表格會變成非時間表格。 它不再支援使用時間遠程作業查詢來存取歷程資料。
限制
表格、綱目及資料庫的保留時間間隔變更不會從主要節點抄寫至抄本節點。 它們也不是歷程 (已刪除) 表格列。
nzbackup 指令會自動備份表格、綱目及資料庫的保留時間間隔,並由 nzrestore 指令還原。 不會備份及還原表格列的插入及刪除時間戳記。 還原的列會在目標資料庫或系統中取得全新插入時間戳記,而漸進式還原所刪除的列會在目標資料庫或系統中取得全新刪除時間戳記。 不預期或不保證目標上列的歷程版本數目將符合來源資料庫上的歷程版本數目。 例如,在來源上的備份增量之間,特定列可能會多次更新,或先更新再刪除。 此動作會導致在目標上單一刪除該列。
如果您嘗試使用其他 SPU 機體來展開 NPSaaS 系統,則此程序會導致遺失歷程 (已刪除) 列。 所有現行列都會重新配送全新插入時間戳記。
下列表格類型不能是時間表格:
- 暫存表格
- 外部表格
- 已透過新增及/或捨棄直欄變更的已版本化表格
- 橫列安全表格。
此限制會影響下列指令:
-
CREATE TABLE ROW SECURITY、CREATE EXTERNAL TABLE、CREATE TEMPORARY TABLE 如果將 DATA_VERSION_RETENTION_TIME 指定為非零值,則指令將會失敗。
-
ALTER TABLE DATA_VERSION_RETENTION_TIME 如果表是臨時表、行安全表、版本表或外部表,並且使用非零值指定 DATA_VERSION_RETENTION_TIME,則該命令失敗。
-
ALTER TABLE ADD COLUMN、ALTER TABLE DROP COLUMN 如果表指定了非零 DATA_VERSION_RETENTION_TIME,則命令失敗。
新郎 TABLE VERSIONS 指令會將已版本化的表格轉換成未版本化的表格。 發生此情況時,您可以使用 ALTER TABLE 指令來指定非零 DATA_VERSION_RETENTION_TIME。
watsonx.data 的 DATA_VERSION_RETENTION_TIME 相關異常狀況
與 DATA_VERSION_RETENTION_TIME 相關的 watsonx.data 有異常狀況。 下表涵蓋 watsonx.data之資料庫、綱目及表格的 DATA_VERSION_RETENTION_TIME 內容行為。
| 行為 | 例外 |
|---|---|
| watsonx.data 的 DATA_VERSION_RETENTION_TIME 的 CREATE DATABASE | 不容許 |
| ALTER DATABASE with DATA_VERSION_RETENTION_TIME for watsonx.data | 不容許 |
| watsonx.data 的 CREATE SCHEMA DATA_VERSION_RETENTION_TIME | 不容許 |
| ALTER SCHEMA with DATA_VERSION_RETENTION_TIME for watsonx.data | 除了 NETECZZA_SCHEMA 之外,不容許 |
| 含有 DATA_VERSION_RETENTION_TIME (時間) 表格的 CREATE TABLE | 僅在 NETECZA_SCHEMA 下容許 |
| ALTER TABLE 與 DATA_VERSION_RETENTION_TIME (時間) 表格 | 僅在 NETECZA_SCHEMA 下容許 |
如果 SYSTEM DEFAULT DATA_VERSION_RETENTION_TIME 不是零,則 CREATE DATABASE 不會從 SYSTEM DEFAULT 繼承內容。 包括 NETEZZA_SCHEMA 在內的 CREATE SCHEMA 將不會繼承 DB 內容。 watsonx.data的時間遠程作業相關自動化作業不需要任何影響或變更。
使用指令行建立時間遠程作業物件
使用指令行建立時間表
若要建立時間表格,請將 DATA_VERSION_RETENTION_TIME 設為非零值。
如需詳細語法及專用權,請參閱 CREATE TABLE 指令。
CREATE TABLE <tablename> ( <col>[, <col>… ] ) DATA_VERSION_RETENTION_TIME <number-of-days>;
範例:
CREATE TABLE PRODUCT (prodid int, proddesc char(100)) DATA_VERSION_RETENTION_TIME 30;
當您將列插入表格時,該列會收到虛擬插入時間戳記,該時間戳記等於插入交易的確定時間。
當您從表格中刪除列時,該列會收到虛擬刪除時間戳記,該時間戳記等於刪除 (或截斷) 交易的確定時間。
使用指令行建立時間綱目
若要建立時間綱目,請將 DATA_VERSION_RETENTION_TIME 設為非零值。
如需詳細語法及專用權,請參閱 CREATE SCHEMA 指令。
CREATE SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days>;
範例:
CREATE SCHEMA SCHEMA1 DATA_VERSION_RETENTION_TIME 30;
使用指令行建立時間資料庫
若要建立時間資料庫,請將 DATA_VERSION_RETENTION_TIME 設為非零值。
如需詳細語法及專用權,請參閱 CREATE DATABASE 指令。
CREATE DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days>;
範例:
CREATE DATABASE DB1 DATA_VERSION_RETENTION_TIME 30;
使用 Web 主控台建立時間遠程作業物件
使用 Web 主控台建立時間表格
- 登入 Web 主控台,如 開始使用 Web 主控台 中所述。
- 依照 建立表格 中的說明來建立時間表格。
您必須將 保留時間間隔 設為非零值。
包含點字元 (".") 的資料庫、綱目及表格名稱 當您將 保留時間間隔 設為非零值時,不會在時間遠程作業統計資料及圖形中顯示。 未設定 保留時間間隔時,支援所有特殊字元。
當您將列插入表格時,該列會收到虛擬插入時間戳記,該時間戳記等於插入交易的確定時間。
當您從表格中刪除列時,該列會收到虛擬刪除時間戳記,該時間戳記等於刪除 (或截斷) 交易的確定時間。
使用 Web 主控台建立時間綱目
若要建立時間綱目,請將 保留時間間隔 設為非零值。
- 登入 Web 主控台,如 開始使用 Web 主控台 中所述。
- 依照 建立綱目 中的說明來建立時間綱目。
使用指令行建立時間資料庫
若要建立時間資料庫,請將 保留時間間隔 設為非零值。
- 登入 Web 主控台,如 開始使用 Web 主控台 中所述。
- 建立時間資料庫,如 建立資料庫 中所述。
使用指令行變更時間遠程作業物件
使用指令行將時間表格變更為非時間表格
若要將時間表格變更為非時間表格,請將 DATA_VERSION_RETENTION_TIME 設為 0。
如需詳細語法及必要的專用權,請參閱 ALTER TABLE 指令。
ALTER TABLE <table> DATA_VERSION_RETENTION_TIME 0;
範例:
ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 0;
當您將 DATA_VERSION_RETENTION_TIME 設為 0 時,您無法執行時間遠程作業查詢,且再也無法存取該表格的歷程列。 您可以使用 GROOM TABLE 來收回表格中部分或所有現在無法存取的歷程列。
使用指令行將非時間表格變更為時間表格
若要將非時間表格變更為時間,請將 DATA_VERSION_RETENTION_TIME] 設為非零值。
如需詳細語法及必要的專用權,請參閱 ALTER TABLE 指令。
ALTER TABLE <table> DATA_VERSION_RETENTION_TIME <number-of-days>;
範例:
ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 30;
如果您先停用時間表格,然後將相同的表格轉換為時間表格,則無法存取該表格先前的歷程橫列。 將表格轉換為時間之後刪除或更新列時,會收集歷程資料。
與 CREATE TABLE 指令一樣,插入表格中的列會收到虛擬插入時間戳記,該時間戳記等於插入交易的確定時間。 從表格中刪除的列會收到虛擬刪除時間戳記,該時間戳記等於刪除 (或截斷) 交易的確定時間。 表格的保留下限及保留開始時間等於或剛好在此 ALTER TABLE 交易的確定時間之前。
與沒有任何現有列的 CREATE TABLE 指令不同,表格中的現有可見列會被視為是由這個 ALTER TABLE 交易所插入。 現有可見列會接收等於保留開始時間的虛擬插入時間戳記。 使用這些時間戳記,橫列可能會對時間範圍查詢可見。
使用指令行將時間綱目變更為非時間
若要將時間綱目變更為非時間,請將 DATA_VERSION_RETENTION_TIME 設為 0。
如需詳細語法、必要專用權及 CASCADE 選項,請參閱 ALTER SCHEMA 指令。
ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
範例:
ALTER SCHEMA SCHEMA DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
使用指令行將非時間綱目變更為時間
若要將非時間綱目變更為時間,請將 DATA_VERSION_RETENTION_TIME 設為非零值。
如需詳細語法、必要專用權及 CASCADE 選項,請參閱 ALTER SCHEMA 指令。
ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;
範例:
ALTER SCHEMA DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;
使用指令行將時間資料庫變更為非時間資料庫
若要將時間資料庫變更為非時間,請將 DATA_VERSION_RETENTION_TIME 設為 0。
如需詳細語法及必要的專用權,請參閱 ALTER DATABASE 指令。
ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
範例:
ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
使用指令行將非時間資料庫變更為時間資料庫
若要將非時間資料庫變更為時間,請將 DATA_VERSION_RETENTION_TIME 設為非零值。
如需詳細語法及必要的專用權,請參閱 ALTER DATABASE 指令。
ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;
範例:
ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;
使用 Web 主控台變更時間遠程作業物件
使用 Web 主控台將時間表格變更為非時間表格
若要將時間表格變更為非時間表格,請將 保留時間間隔 設為 0。
- 登入 Web 主控台,如 開始使用 Web 主控台 中所述。
- 變更表格,如 更新表格的保留時間間隔 中所述。
當您將 保留時間間隔 設為 0 時,您無法執行時間遠程作業查詢,且再也無法存取該表格的歷程列。 您可以使用 GROOM TABLE 來收回表格中部分或所有現在無法存取的歷程列。
使用 Web 主控台將非時間表格變更為時間
若要將非時間表格變更為時間,請將 保留時間間隔 設為非零值。
- 登入 Web 主控台,如 開始使用 Web 主控台 中所述。
- 變更表格,如 更新表格的保留時間間隔 中所述。
如果您先停用時間表格,然後將相同的表格轉換為時間表格,則無法存取該表格先前的歷程橫列。 將表格轉換為時間之後刪除或更新列時,會收集歷程資料。
同樣地,當您建立表格時,插入表格中的列會收到虛擬插入時間戳記,該時間戳記等於插入交易的確定時間。 從表格中刪除的列會收到虛擬刪除時間戳記,該時間戳記等於刪除 (或截斷) 交易的確定時間。 表格的保留下限及保留開始時間等於或剛好在此變更交易的確定時間之前。
與您建立表格時不同,會將表格中現有的可見列視為此變更交易所插入的列。 現有可見列會接收等於保留開始時間的虛擬插入時間戳記。 使用這些時間戳記,橫列可能會對時間範圍查詢可見。
使用 Web 主控台將時間綱目變更為非時間
若要將時間綱目變更為非時間,請將 保留時間間隔 設為 0。
- 登入 Web 主控台,如 開始使用 Web 主控台 中所述。
- 變更表格,如 更新綱目的保留時間間隔 中所述。
使用 Web 主控台將非時間綱目變更為時間
若要將非時間綱目變更為時間,請將 保留時間間隔 設為非零值。
- 登入 Web 主控台,如 開始使用 Web 主控台 中所述。
- 變更表格,如 更新綱目的保留時間間隔 中所述。
使用 Web 主控台將時間資料庫變更為非時間資料庫
若要將時間資料庫變更為非時間,請將 保留時間間隔 設為 0。
- 登入 Web 主控台,如 開始使用 Web 主控台 中所述。
- 變更表格,如 更新資料庫的保留時間間隔 中所述。
使用 Web 主控台將非時間資料庫變更為時間
若要將非時間資料庫變更為時間,請將 保留時間間隔 設為非零值。
- 登入 Web 主控台,如 開始使用 Web 主控台 中所述。
- 變更表格,如 更新資料庫的保留時間間隔 中所述。
下一步
建立時間遠程作業物件之後,您可以開始執行時間遠程作業查詢。 如需相關資訊,請參閱下列鏈結: