16.20 - TD_GETTIMEBUCKET - Teradata Vantage NewSQL Engine

Teradata Vantage™ 時系列テーブルおよび操作

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

目的

TD_GETTIMEBUCKETシステム関数は、PTIテーブルからTD_TIMEBUCKET列値を取得します。タイムバケットはハッシュ キーであるため、DBAはTD_TIMEBUCKET列値を使用して、PTIテーブルの行がAMP間でどの程度分散されているかを判断し、スキューを回避することができます。

構文



構文要素

TD_SYSFNLIB
関数が格納されているデータベースの名前。
table_name
PTIテーブルの名前。
TD_TIMECODE
データが収集された日時を示すPTIテーブル列。

戻り値

この関数の戻り型はBIGINTです。

使用上の注意

TD_TIMEBUCKET列はSQLリクエストで直接参照することはできないため、この関数を使用してTD_TIMEBUCKETの値を確認できます。この関数は、システム関数呼び出しが有効な任意のSQLリクエストで参照できます。

SQLリクエストが複数のPTIテーブルを参照している場合は、table_nameを使用します。TD_TIMECODEは、TD_TIMEBUCKETの取得元のテーブルを指定します。

例: TD_TIMEBUCKET列からのTD_TIMEBUCKET値の取得

create table ocean_buoys(buoyid integer, salinity integer, temperature integer)
PRIMARY TIME INDEX(TIMESTAMP(6), DATE '2016-04-19', HOURS(1));
 
-- The following two adjcent SELECT statements should return the same output:
SELECT td_gettimebucket(td_timecode) from ocean_buoys;
SELECT td_gettimebucket(ocean_buoys.td_timecode) from ocean_buoys;
 
TD_GETTIMEBUCKET(TD_TIMECODE)
-----------------------------
289
  
 
-- The column title contains TIMEBUCKET_COL.
SELECT td_gettimebucket(ocean_buoys.td_timecode) as TimeBucket_COL from ocean_buoys;
 
TIMEBUCKET_COL
--------------
           289
 
SELECT buoyid FROM ocean_buoys WHERE td_gettimebucket(td_timecode) > 200;
 
BUOYID
------
   101