5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

タイムシリーズ・テーブル

Last updated at Posted at 2022-11-25

Teradata Vantage™ - 時系列テーブルと操作の概要 [リリース番号:17.20 リリース日付:2022/9]の翻訳です。

タイムシリーズ・テーブルとは?

タイムシリーズテーブルは、センサーデータなどの時系列データに特化したテーブル構造により、柔軟な操作により時系列データの記述統計的な分析を簡単に行う事ができます。

  • タイムシリーズデータに特化したテーブルにより、効率的にタイムシリーズデータを扱うことが出来ます。
  • 時系列集約により、時間バケットごとの集約を簡単に行うことができます。
  • 時系列集約関数により、タイムシリーズ・データに対する記述統計による分析が簡単にできます。
  • FILL句により、欠損値の処理ができます。
  • 無制限配列フレームワークの時系列分析関数と連携することで、高度な分析ができます。

タイムシリーズデータの特徴と分析

タイムシリーズデータの特徴

  • タイムシリーズ=時間+変数
  • 大容量データになることが多い
  • 時間的に不規則な間隔で発生する。
  • ノイズや欠損値が含まれる場合があります
  • 時間間隔で集計されることが多い

主なタイムシリーズデータの種類とは?

  • センサーデータ
  • 温度
  • 風速
  • 地震観測データ
  • 株価情報
  • 地理空間トレース
  • 発電量
  • エンジン回転数
  • 油圧
  • 圧力チェック

時系列解析の主なカテゴリ

カテゴリ 説明
記述的分析 トレンドやパターンを、外れ値、周期的なパターンなどを把握する。
周波数分解 スペクトル解析などにより周波数の周期によるデータの分解。
フォーキャスト 過去の時系列データの傾向から将来の値を予測する。
変化点検知 何らかの外部介入に基づく変化の性質の見極め。
相関分析 時系列データ間の相関関係を分析する
タイムシリーズ利用例.png

タイムシリーズテーブルのデータ格納

プライマリ・タイム・インデックスによるタイムバケットごとのデータ格納

プライマリタイムシリーズインデックス.png
パターン 説明
タイムコードのみ この場合は各イベントのタイムスタンプをインデックスとして、これに対する時間間隔のタイムバケットを指定します。 1つのテーブルで一種類のデータを扱う場合です。
タイムコード+識別子 センサーIDなど識別子とイベントのタイムスタンプを指定して、このイベントのタイムスタンプに対してタイムバケットを指定します。 永続的にデータが発生するIOTや天候、株価などのデータを扱う場合に使います。
識別子のみ センサーIDなどの識別子のみをプライマリ・タイム・インデックスとして指定して、タイムバケットも指定しない場合です。 1回の実験データなどで、ひとまとまりとして使うもの。

値の格納

測定値の格納方法としては大きく以下の2パターンがあります。

固定変数

ひとつもしくは複数の測定値を持つ場合の形式です。
タイムシリーズ固定.png

可変複数変数

固定的でない測定値を持つ場合の形式です。通常はJSONフォーマットを用います。
タイムシリーズ可変.png

欠損値の対応

  1. 通常のSQLによる欠損値への対応
    • 欠損値の削除
    • 欠損値の定数へ置き換え
    • 欠損値の見積り値(平均など)への置き換え
  2. FILL句による欠損値への対応
    • NULLを使用して置き換え
    • 定数値を使用して置き換え
    • 前のタイムバケット値を使用した置き換え
    • 次のタイムバケット値を使用した置き換え

タイムシリーズテーブルで使える関数

各関数の使い方については、段階的にTeradata Vantageドキュメンテーションに対するリンクを追加していきますので、Teradata Vantageドキュメンテーションのマニュアルを参照して、利用方法の確認をお願いします。

関数名 説明
平均
AVERAGE
べての値の算術平均値を返します。
ボトム
BOTTOM
グループごとに最小値を返します。
カウント
COUNT
対象とされるデータの行数を返します
デルタT
DELTA_T
開始イベントと終了イベントの間の時間差(つまりDELTA_T)を計算します。計算は、時間順時系列データセットに対して実行されます。
記述
DESCRIBE
標準で、MAX、MIN、AVERAGE、STDDEV_SAMPの結果を返します。VERBOSEキーワードを使用する場合は、MEDIN、MODE、25/50/75番目のPERCENTILEも追加されます。
始値
FIRST
タイムコードによって判別される最も古い値を返します。
尖度
KURTOSIS
分布のとがり(尖度)を返します。
終値
LAST
グループごとに、タイムコードによって判別される最も新しい値を返します。
最大
MAXIMUM
最大値である列の値を返します。
中央値絶対偏差
MAD
各値間の差異の絶対値として定義された一連の値の中央値と、各グループのすべての値の中央値を返します。
中央値
MEDIAN
各グループのすべての値の中央値を返します。偶数個の値が含まれている場合、MEDIANは2つの中央値の平均を返します。
最小
MINIMUM
最小値である列の値を返します。
最頻値
MODE
各グループのすべての値の最頻値を返します。2つ以上の値の間の順位イベントでは、結果ごとに行が返されます。
パーセンタイル
PERCENTILE
各グループから目的のパーセンタイルを表わす値を返します。
ランク
RANK(ANSI)
行の順序付き順位を戻します。
偏り
SKEW
分布の偏りを返します。
母集団標準偏差
STDDEV_POP
非nullのデータ点に対して、母集団の標準偏差を戻します。
標本標準偏差
STDDEV_SAMP
非nullのデータ点に対して、標本の標準偏差を戻します。
合計
SUM
算術合計である列の値を返します。
トップ
TOP
グループごとに最大値を返します。
母集団分散
VAR_POP
データ点に対して母集団分散を戻します。
標本分散
VAR_SAMP
データ点の標本分散を戻します。

実行方法

以下のようなタイムシリーズの生データを30分間隔で集約します。
タイムシリーズ処理イメージ.png

テーブル作成

テーブル作成.sql
CREATE TABLE Quarter_Hour_Location_Data
( locatin_id INTEGER              #タイムスタンプは設定不要
, temperature FLOAT
, humidity FLOAT)   
PRIMARY TIME INDEX(		#PTIを指定します。
	  TIMESTAMP(0)       #タイムスタンプ
	, DATE 2020-01-01’    #開始日
	, HOURS(1)		#タイムバケットの指定
	, COLUMNS(locatin_id));

時系列集約の実行

時系列集約の実行.sql
SELECT (BEGIN($TD_TIMECODE_RANGE)  #集計単位の指定
  + INTERVAL 30 MINUTE) AS timepoint
, location_id
, MEDIAN(temperature)
, MEDIAN(humidity) 
FROM Quarter_Hour_Location_Data
WHERE $TD_TIMECODE > TIMESTAMP 2020-01-01 00:00:00
GROUP BY TIME(HOURS(1) AND location _id))

タイムシリーズテーブルは、タイムシリーズ関数と組み合わせて、使うことで、より多くのことができます。

おわりに

警告
この本書はTeradata Vantageドキュメンテーションよりトピックに必要な情報を抜粋したものです。掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。正確な内容については、原本をご参照下さい。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。

Teradata Vantageへのお問合せ

Teradata Vantage へのお問合せ

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?