16.20 - 二重テンポラル テーブルの行パーティション化 - Teradata Vantage NewSQL Engine

Teradata Vantage™ テンポラル テーブル サポート

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1182-162K-JPN

次に示す表では、二重テンポラル テーブルに推奨されるパーティション式について説明しています。この式のvtcolumnはvalid-time列を表わし、ttcolumnはtransaction-time列を表わします。

valid-time列のデータ型 推奨されるパーティション式
PERIOD(DATE) NOT NULL
PARTITION BY CASE_N(
 END(vtcolumn) >= CURRENT_DATE AT '-12:59'
  AND END(ttcolumn) >= CURRENT_TIMESTAMP,
 END(vtcolumn) < CURRENT_DATE AT '-12:59'
  AND END(ttcolumn) >= CURRENT_TIMESTAMP,
 END(ttcolumn) < CURRENT_TIMESTAMP)

(AT '-12:59'はAT INTERVAL -'12:59' HOUR TO MINUTEの省略形)

(END(ttcolumn) < CURRENT_TIMESTAMP式は、クローズ行を表わすもので、より最適なパーティション排除を実現するために、NO CASEの代わりに使用します)

PERIOD(DATE)
PARTITION BY CASE_N(
 (END(vtcolumn) IS NULL OR
  END(vtcolumn) >= CURRENT_DATE AT '-12:59')
  AND END(ttcolumn) >= CURRENT_TIMESTAMP,
 END(vtcolumn) < CURRENT_DATE AT '-12:59'
  AND END(ttcolumn) >= CURRENT_TIMESTAMP,
 END(ttcolumn) < CURRENT_TIMESTAMP)

(AT '-12:59'はAT INTERVAL -'12:59' HOUR TO MINUTEの省略形)

PERIOD(TIMESTAMP[(n)] [WITH TIME ZONE]) NOT NULL
PARTITION BY CASE_N(
 END(vtcolumn) >= CURRENT_TIMESTAMP AND
 END(ttcolumn) >= CURRENT_TIMESTAMP,
 END(vtcolumn) < CURRENT_TIMESTAMP AND
 END(ttcolumn) >= CURRENT_TIMESTAMP,
 END(ttcolumn) < CURRENT_TIMESTAMP)
PERIOD(TIMESTAMP[(n)] [WITH TIME ZONE])
PARTITION BY CASE_N(
(END(vtcolumn) IS NULL OR END(vtcolumn) >= CURRENT_TIMESTAMP) AND END(ttcolumn) >= CURRENT_TIMESTAMP,
END(vtcolumn) < CURRENT_TIMESTAMP AND END(ttcolumn) >= CURRENT_TIMESTAMP,
END(ttcolumn) < CURRENT_TIMESTAMP)

二重テンポラル テーブルに推奨される行によるパーティション化を使用すると、そのパーティションは次に示すようになります。

  • 現在パーティションには、パーティション式のCURRENT_TIMESTAMP値が最後に解決された時点で、オープン行である(または、オープン行であった)行と、有効行である(または、有効行であった)行が保持されます。
  • valid-time履歴/transaction-timeオープン パーティションには、パーティション式のCURRENT_DATE値またはCURRENT_TIMESTAMP値が最後に解決された時点で、非有効になった(または、非有効だった)行のうちオープン行である行が保持されます。
  • transaction-time履歴パーティションには、パーティション式のCURRENT_DATE値またはCURRENT_TIMESTAMP値が最後に解決された時点で、クローズされていた行が保持されます。