Valid-Timeテーブルの行パーティション化 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/cjo1556732840654.ditamap
dita:ditavalPath
ja-JP/cjo1556732840654.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage

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

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

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

valid-time列が派生PERIOD列の場合、構成要素列はNOT NULLとして定義されている必要があり、派生PERIOD列はNOT NULLと定義されていると見なされます。
PERIOD(DATE)
PARTITION BY CASE_N(
 END(vtcolumn) IS NULL OR 
 END(vtcolumn) >= CURRENT_DATE AT '-12:59',
 NO CASE)

(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,
 NO CASE)
PERIOD(TIMESTAMP[(n)] [WITH TIME ZONE])
PARTITION BY CASE_N(
 END(vtcolumn) IS NULL OR
 END(vtcolumn) >= CURRENT_TIMESTAMP,
 NO CASE)

valid-timeテーブルに推奨される物理パーティション化を使用すると、その物理パーティションは次に示すようになります。

  • 現在パーティションには、パーティション式のCURRENT_DATE値またはCURRENT_TIMESTAMP値が最後に解決された時点で、有効である行(または、有効であった行)と、その日付またはタイムスタンプとの関係から将来行になる行が保持されます。

    valid-time列値がNULLの行は、現在パーティションに入ることに注意してください(ただし、そのような行は現在行とも有効行とも見なされません)。

  • 履歴パーティションには、パーティション式のCURRENT_DATE値またはCURRENT_TIMESTAMP値が最後に解決された時点で、非有効になった行が保持されます。
ほとんどのAS OF問合わせは、すでに過去になった時間に関係します。そのため、そのような問合わせには、上記の推奨されるパーティション式から得られる利益はありません。AS OF問合わせの頻繁な実行が想定される場合に、行パーティション排除の利益を得るには、それぞれのパーティションの分布が20%以内になるように、END(<VT_column>)BEGIN(<VT_column>)でパーティション化します。