CREATE TABLE構文(時系列形式) - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - 時系列テーブルと操作の概要

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/zzg1600277315070.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1208
Product Category
Software
Teradata Vantage
{ CREATE | CT } [ table_kind ] TABLE table_name
  [, create_table_options ]
  ( [ generated_columns, ] column_definitions )
  PRIMARY TIME INDEX [ index_name ] (
    timecode_data_type
    [, timezero_date ]
    [, timebucket_duration ]
    [, COLUMNS ( column_list ) ]
    [, { NONSEQUENCED | SEQUENCED [ ( seq_max ) ] } ]
  ) [ secondary_index_definitions ] [ commit_options ] [;]

構文要素

table_kind
PTIテーブルは、SETテーブルまたはMULTISETテーブルとして定義できます。デフォルトでは永久テーブルですが、必要に応じてGLOBAL TEMPORARYテーブルまたはVOLATILEテーブルとして定義できます。
table_name
テーブルの名前 (オプションでデータベース名またはユーザー名が前に付く)。
create_table_options
非PTIテーブルのすべての標準CREATE TABLEオプションは、PTIテーブルに適用されます。これらのオプションの構文については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>で説明されています。
generated_columns
これらの列は、データベースによって自動的に生成および維持されます。それらについては、PTIテーブルの自動的に生成される列で説明されています。
column_definitions
PTIテーブルに保存される時系列データの標準列定義。CREATE TABLE文での標準列定義の詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
時系列システムは、テーブルの最初の使用可能な列を自動的に生成して、時系列データのタイムスタンプ部分を格納します。タイムスタンプ用に列を明示的に作成する必要はありません。
index_name
PTIのオプションの名前。データベース オブジェクトの命名ルールについては、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
timecode_data_type
timecode_data_type は時系列のタイムスタンプ データのフォームを反映する必要があります。次のデータ型のいずれかになります。
  • TIMESTAMP(n)。ここでnはタイムスタンプの小数秒の小数精度です。
  • TIMESTAMP(n) WITH TIME ZONE
  • DATE
これらのデータ型の詳細については、<Teradata Vantage™ - データ タイプおよびリテラル、B035-1143>を参照してください。
timezero_date
時系列データの最も早い日付より前の日付。
timezero_dateは、PTIテーブルが受け入れる最も早い時系列データを指定します。挿入されたデータにtimezero_dateより前のタイムスタンプがある場合、データベースはエラーを生成します。
timezero_dateは次の形式でなければなりません: DATE 'YYYY-MM-DD'
デフォルト値はDATE '1970-01-01'です。
このパラメータはオプションですが、時系列データの最も早いタイムスタンプに近い日付を指定することをお勧めします。
timebucket_duration
時系列データの時系列を分散したグループまたはバケットに分割するための期間。各行のタイムバケット値がタイム ゼロの日付とともに使用されるため、AMP間のデータ分散を決定するのに役立ちます。
timebucket_durationは、正式なフォーム、time_unit(n)を使用して指定できます。ここで、nは正の整数です。また、time_unitは次のいずれかです。CAL_YEARS、CAL_MONTHS、CAL_DAYS、WEEKS、DAYS、HOURS、MINUTES、SECONDS、MILLISECONDS、またはMICROSECONDS。
例: HOURS(2)
時間単位表現の省略表記に説明されているように、簡略形式を使用して timebucket_durationを表わすこともできます。
timebucket_durationの最適なサイズは、解析のニーズとアプリケーションによって異なります。分析する期間に一致する期間を使用します。例えば、アプリケーションが2時間の期間のデータを分析する場合、HOURS(2)としてtimebucket_durationを指定できます。
column_list
カンマで区切られた1つ以上のPTIテーブル列のリスト。これらの列は、AMP間での行の分散方法を決定するために、PTIとともに使用されます。
NONSEQUENCED
SEQUENCED
時系列データの読み取りが時間の点で固有かどうかを指定します。timecode_data_type の粒度とセンサー データ収集の頻度によっては、同じタイムスタンプを共有する、センサーからの複数の読み取りが存在する可能性があります。
  • NONSEQUENCEDは、タイムスタンプごとにセンサーの読み取りが1つしかないことを前提としています。これはデフォルトです。

    Vantageは、タイムスタンプに基づいて非シーケンス化PTIテーブルの行を配列します。

  • SEQUENCEDは、同じセンサーからの複数の読み取りが、同じタイムスタンプを持つ可能性があることを意味します。

    Vantageは、PTIテーブルにTD_SEQNOという名前の追加の列を自動的に挿入します。同じタイムスタンプを持つ読み取りを区別するための固有のシーケンス番号はこの列で保持されます。アプリケーションは、データを収集し、Vantageに送信して、TD_SEQNO列にシーケンス番号を挿入します。

    Vantageは、タイムスタンプに基づいてシーケンス化テーブルの行を配列し、1つのタイムスタンプ値内で、シーケンス番号に従って行を配列します。
seq_max
1~2147483647(TD_SEQNOの最大値を表わす)の正の整数。これは、同じタイムスタンプを持つことができるセンサー データ行の最大数を指定します。デフォルトは20000です。TD_SEQNOフィールドの値がseq_maxを超えると、データベースはエラーを生成します。
secondary_index_definitions
PTIテーブルは、USIとNUSIを持つことができます。これらのインデックスを定義するための構文については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>で説明されています。
commit_options
トランザクションが完了したときに、グローバル一時テーブルまたは揮発テーブルの行を削除するか、または保存するかを決定します。これらのcommit_optionsの詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。