時系列データの格納に関するベスト プラクティス

時系列データは、さまざまな方法で格納できます。 ここでは、時系列データを格納する際のベスト プラクティスを紹介します。

タイム スタンプを日付フィールドに格納する

時系列データのタイム スタンプは、日付フィールドに格納することをお勧めします。 日付フィールドは、日時情報を格納するために設けられたデータベース フィールドです。 日付フィールドを使用することでクエリのパフォーマンスが向上し、数値フィールドや文字列フィールドに時間を格納する場合より高度なデータベース クエリを実行できます。

日付フィールドを使用できない場合、データのタイム スタンプは文字列フィールドまたは数値フィールドに格納することができます。 たとえば、年次データを 2000、2001 などのように格納できます。 文字列フィールドの場合、クエリや並べ替えを効率的に行うためには、テキスト値は最も大きい時間単位の値から順に並んでいる必要があります (2012 年 1 月 26 日の場合は 20120126 など)。

注意:

日付の表示は、西暦 100 年~西暦 10,000 年の範囲でのみサポートされています。 この範囲外の日付を処理するには、値を数値形式に変換する (かつレンジ スライダーを使用してフィルタリングする) か、文字列形式 (ラベリングのため) に変換することをお勧めします。

[時間フィールドの変換 (Convert Time Field)] ジオプロセシング ツールを使用して、タイム スタンプを含む文字列フィールドまたは数値フィールドを日付フィールドに変換できます。

時系列データを行形式で格納する

時系列データを AllSource で使用する場合、個々のフィーチャに関連付けられた時間値を行形式で保存してください。 タイム スライダーを使用して時間データを移動することができ、タイム スライダーの表示はレイヤーに基づいてフィルタリングされ、指定した期間内の行のみが表示されます。

各フィーチャまたはテーブル行について、特定の時点を表す 1 つのフィールドに時間値を格納するか、観測の開始と終了によって期間を表す 2 つのフィールドに時間値を格納することができます。

時間の経過に伴ってデータの属性が変化するか、フィーチャの形状が変わるかによって、時系列データを 1 つのテーブルに保存するか、別々のテーブルに保存するかを選択できます。

属性テーブルの複数の列に時間値を格納することがよくあります。 1990 年、1991 年、1992 年の郡別医療費はテーブルの 1 つの行の別々の列にリストされます。 タイム スライダーのデータ フィルタリング機能を使用してこのデータを時系列で表示するには、時間値が行形式になるようにテーブルの書式を再設定する必要があります。

時間値を含むフィールドにインデックスを作成する

表示速度とクエリのパフォーマンスを改善するには、時間値を含むフィールドにインデックスを作成することをお勧めします。 [属性インデックスの追加 (Add Attribute Index)] ジオプロセシング ツールを使用して、インデックスを既存のテーブルまたはフィーチャクラスのフィールドに追加できます。

標準時間を使用する

サマータイム適用地域で時系列データを収集した場合は、できる限り、データの時間値を標準時間で保存してください。 サマータイムで収集されたデータは、維持することが困難です。 サマータイムは地域によって異なり、サマータイム対応ルールも年度ごとに変わる可能性があります。

時間値を標準時間で保存しておけば、編集時におけるデータの損失や重複を防げると同時に、移行時の時間的なあいまいさを排除できます。

時間フィールドでの NULL 値の使用

NULL 値が時間フィールドに保存されていることがあります。 たとえば、開始時刻と終了時刻の両方を含むレイヤーは、NULL 終了時刻を使用することで、フィーチャが将来まで存在するものとして示すことができます。 タイム スライダーを使用すると、開始時刻が含まれている場合にフィーチャが表示され、残りの再生においても継続して表示されます。 逆も同じく、NULL 開始時刻はフィーチャが過去から存在することを示し、開始時刻直後から終了時刻に到達するまで表示されます。

ただし、時間が単独のフィールドに格納されている場合、NULL 値を含むフィーチャは期間内に収まらないため除外されます。