データ接続と統合時系列時系列プロパティのユースケースPipeline Builder での時系列プロパティの作成

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Pipeline Builder で時系列データを作成する

このガイドで作成するパイプラインは、時系列同期の元になる時系列データを生成します。この同期を Carrier、Route、Airport オブジェクトタイプの時系列プロパティに関連付けて、新しい時系列オブジェクトを作成します。このパイプラインでは、時系列ではないデータを計算して時系列データを生成するため、時系列データセットから時系列プロパティへの標準的なマッピングよりも複雑な設定が必要です。パイプラインに関する一般的なガイダンスについては、Pipeline Builder のドキュメントを参照してください。

使用するフライトデータセットには、時系列プロパティの作成に使用する次の列が含まれています。

  • flight_id: string | フライトとデータセット内の各行を識別する一意の文字列。
  • date: date | フライトが運航された日付。
  • destination_airport_id: string | 到着空港を識別する文字列。
  • airline_id: string | 航空会社の ID。
  • origin_airport_id: string | 出発空港の ID。
  • dep_delay: integer | 出発の遅延時間(分)。
  • arr_delay: integer | 到着の遅延時間(分)。
  • route_id: string| 路線を識別する一意の文字列。

このガイドの最後に完成するパイプラインは、次のようになります。

完成した時系列パイプラインの概要

パート1:時系列データを生成する

Flights オブジェクトタイプの元となるフライトデータセットを使い、集計のデータ加工を行って、フライトのメトリクスに基づく時系列データを生成できます。ヒストリアンまたはエッジセンサーから Foundry に時系列データが取り込まれている場合、この手順は不要です。時系列同期の生成に進むことができます。

1. Carrier および Route オブジェクトタイプにデータ加工を適用する

フライトデータセットに対して、以下の手順でデータ加工を適用します。Carrier と Route の両方のオブジェクトタイプに対して行います。

データを集計する

集計のデータ加工を使い、日付とオブジェクトの ID でグループ化して、到着遅延の平均、出発遅延の平均、1日あたりのフライト件数を計算します(ここでは Route オブジェクトタイプの route_id を使用します。Carrier オブジェクトタイプについても、airline_id を使用して同じ処理を別途行う必要があります)。

Pipeline Builder の集計のデータ加工ボード。

集計後、データセットのプレビューには次のスキーマが表示されるはずです。

route_iddatedaily_avg_dep_delaydaily_avg_arr_delaydaily_count_of_flights
ATL -> SFO2023-06-1233.454545454545000040.000000000000000011
ATL -> FLL2023-08-2429.727272727272000019.409090909090910022
ATL -> TVC2023-07-05-8.0000000000000000-8.00000000000000001

新しいデータ型にキャストする

この新しいデータを時系列として使用するには、タイムスタンプ型の列を作成する必要があります。そのためには、型変換のデータ加工を使い、date 列をタイムスタンプ型の列にキャストします。また、この後にアンピボットのデータ加工を適用して、daily_avg_dep_delay、daily_avg_arr_delay、daily_count_of_flights の値を1つの列にまとめます。この関数ではすべての値が同じデータ型である必要があるため、1日あたりのフライト件数のメトリクスも Double 型(遅延の平均のメトリクスと同じデータ型)にキャストする必要があります。

タイムスタンプ型へのキャストと Double 型へのキャストを示す Pipeline Builder の型変換ボード

アンピボットして時系列の値をまとめる

このデータセットには異なる列に時系列データが含まれているため、アンピボットのデータ加工を使って1つの値の列にまとめ、時系列同期に必要な以下のスキーマに合わせる必要があります。

  • シリーズID: string | 時系列プロパティ(TSP)が参照するタイムスタンプと値のペアの集合を識別するシリーズIDで、時系列プロパティのシリーズIDと一致する必要があります。
  • タイムスタンプ: timestamp または long | 量が測定された時刻です。
  • 値: integer、float、double、string | 測定時点での量の値です。文字列型はカテゴリカル時系列を示します。各カテゴリカル時系列には、最大10,000個の一意の値を含めることができます。

以下に示すアンピボットのデータ加工は、daily_avg_dep_delay、daily_avg_arr_delay、daily_count_of_flights の値を同じ series_value 列に配置します。元の列名は新しい series_name 列に出力され、series_id で使用されます。

Pipeline Builder のアンピボットのデータ加工ボード

データセットのスキーマは、次のように表示されるはずです。

series_nameseries_valueroute_iddate
daily_avg_dep_delay33.4545454545450000ATL -> SFO2023-06-12T00:00:00.000Z
daily_avg_arr_delay40.0000000000000000ATL -> SFO2023-06-12T00:00:00.000Z
daily_count_of_flights11.0000000000000000ATL -> SFO2023-06-12T00:00:00.000Z

文字列の値を連結してシリーズIDを作成する

次に、文字列連結のデータ加工を使ってシリーズID(関連する時系列の値の識別子)を作成できます。このデータ加工を使い、series_name(各センサーが表すもの)と各オブジェクトの主キーを組み合わせます。

Pipeline Builder の文字列連結のデータ加工ボード。

series_idseries_nameseries_valueroute_iddate
CMH -> IAH_daily_avg_dep_delaydaily_avg_dep_delay33.4545454545450000ATL -> SFO2023-06-12T00:00:00.000Z
CMH -> IAH_daily_avg_arr_delaydaily_avg_arr_delay40.0000000000000000ATL -> SFO2023-06-12T00:00:00.000Z
CMH -> IAH_daily_count_of_flightsdaily_count_of_flights11.0000000000000000ATL -> SFO2023-06-12T00:00:00.000Z

必要な列を選択する

列選択のデータ加工を使い、時系列同期に必要な列である series_id、series_value、date のみを保持します。フライトの元データセットには、測定対象にかかわらず、すべてのシリーズの時系列の値が格納されます。(フライトデータセットの)airline_carrier_id 列についても、この処理を繰り返します。

Pipeline Builder の列選択のデータ加工ボード

series_idseries_valuedate
CMH -> IAH_daily_avg_dep_delay33.45454545454500002023-06-12T00:00:00.000Z
CMH -> IAH_daily_avg_arr_delay40.00000000000000002023-06-12T00:00:00.000Z
CMH -> IAH_daily_count_of_flights11.00000000000000002023-06-12T00:00:00.000Z

2. 出発空港と到着空港のデータを集計・生成するデータ加工を追加する

次に、出発空港と到着空港の両方について、集計と型変換のデータ加工の手順を繰り返す必要があります。

路線ごとの1日あたりのフライト件数を集計する

集計のデータ加工を使い、date と origin_airport_id でグループ化して、到着時刻と出発時刻の平均を計算します。各グループの行の総数は、路線ごとの1日あたりのフライト件数に相当します。

1日あたりのフライト件数を集計するための Pipeline Builder の集計のデータ加工ボード

dateorigin_airport_iddaily_avg_dep_delaydaily_count_of_departing_flights
2023-07-02102999.3437500000000000033
2023-09-0610431-2.33333333333333336
2023-01-1210620-7.00000000000000002

タイムスタンプにキャストする

この新しいデータを時系列として使用するには、タイムスタンプ列を作成する必要があります。そのためには、型変換のデータ加工を使い、date 列をタイムスタンプ型の列にキャストします。

データをタイムスタンプ型にキャストするための Pipeline Builder の型変換のデータ加工ボード

3. 到着空港と出発空港を組み合わせる結合を作成する

結合ボードを使って、到着空港と出発空港のデータを組み合わせる左結合を作成し、空港データの完全な時系列プロパティを作成します。結合には必ず次の設定を行ってください。

  • 日付を一致させ、origin_airport_id を dest_airport_id と一致させます。
  • 左側のデータセットから列を自動選択します。
  • 右側の列として、1日あたりの平均遅延時間と1日あたりのフライト件数を表す2列を選択します。

空港データの左結合を作成するように設定された Pipeline Builder の結合ボード。

dateorigin_airport_iddaily_avg_dep_delaydaily_count_of_departing_flightsdaily_avg_arr_delaydaily_count_of_arriving_flights
2023-07-02102999.343750000000000003318.529411764705884034
2023-09-0610431-2.33333333333333336-8.00000000000000006
2023-01-1210620-7.0000000000000000256.50000000000000002

4. データ加工を適用して時系列同期用にデータを整形する

列名を変更

出発空港のデータと到着空港のデータを結合したので、すべての空港の到着と出発のメトリクスがそろいました。出発と到着を区別する必要がなくなったため、列名を変更するデータ加工を使って、origin_airport_id を単に airport_id に変更できます。

Pipeline Builder の列名変更のデータ加工ボード

列名を変更すると、データのプレビューは次のようになります。

dateairport_iddaily_avg_dep_delaydaily_count_of_departing_flightsdaily_avg_arr_delaydaily_count_of_arriving_flights
2023-07-02102999.343750000000000003318.529411764705884034
2023-09-0610431-2.33333333333333336-8.00000000000000006
2023-01-1210620-7.0000000000000000256.50000000000000002

Double にキャストする

この後、アンピボットのデータ加工を適用します。この関数では、すべての値が同じデータ型である必要があるため、型変換のデータ加工ボードを再度使って、1日あたりのフライト件数のメトリクスを Double データ型にキャストし、平均遅延時間のメトリクスと同じデータ型にする必要があります。

フライト件数を加算する

1日あたりの総フライト件数を計算するには、以下に示すように、数値を加算するデータ加工を使って、1日あたりの到着フライト件数と1日あたりの出発フライト件数を足し合わせます。

Pipeline Builder の型変換と数値加算のデータ加工ボード

daily_count_of_flightsdateairport_iddaily_avg_dep_delaydaily_count_of_departing_flightsdaily_avg_arr_delaydaily_count_of_arriving_flights
772023-07-02102999.343750000000000003318.529411764705884034
122023-09-0610431-2.33333333333333336-8.00000000000000006
42023-01-1210620-7.0000000000000000256.50000000000000002

アンピボットしてシリーズの値をまとめる

このデータセットでは時系列データが異なる列に格納されているため、アンピボットのデータ加工を使って1つの値の列にまとめる必要があります。これにより、データを以下の時系列同期に必要なスキーマに合わせることができます。

  • シリーズID: string | 時系列プロパティが参照するタイムスタンプと値のペアの集合に対応するシリーズIDです。時系列プロパティのシリーズIDと一致する必要があります。
  • タイムスタンプ: timestamp または long | 量が測定された時刻です。
  • 値: integer、float、double、string | 測定時点での量の値です。文字列データ型はカテゴリカル時系列を示します。各カテゴリカル時系列には、最大10,000種類の一意の値を含めることができます。

以下に示すアンピボットのデータ加工では、daily_avg_dep_delay、daily_avg_arr_delay、daily_count_of_flights の値を同じ series_value 列に格納します。これらの元の列名は、シリーズIDで使用する新しい series_name 列に出力されます。

series_name 列を出力として作成するように設定された Pipeline Builder のアンピボットのデータ加工ボード

データは次のスキーマでプレビューされます。

series_nameseries_valuedateairport_id
daily_count_of_flights772023-07-02T00:00:00.000Z10299
daily_avg_dep_delay9.343750000000000002023-07-02T00:00:00.000Z10299
daily_avg_arr_delay18.52941176470588402023-07-02T00:00:00.000Z10299

文字列値を連結してシリーズIDを作成する

これで、文字列を連結するデータ加工を使って、シリーズID(関連する時系列値の識別子)を作成できます。このデータ加工を使って、series_name(各センサーが何を表すか)と Airport オブジェクトの主キー(airport_id)を組み合わせます。

series_name と airport_id を組み合わせるように設定された Pipeline Builder の文字列連結ボード

series_idseries_nameseries_valuedateairport_id
12099_daily_count_of_flightsdaily_count_of_flights772023-07-02T00:00:00.000Z10299
12099_daily_avg_dep_delaydaily_avg_dep_delay9.343750000000000002023-07-02T00:00:00.000Z10299
12099_daily_avg_arr_delaydaily_avg_arr_delay18.52941176470588402023-07-02T00:00:00.000Z10299

必要な列を選択する

列を選択するデータ加工を使って、時系列同期に必要な列である series_id、series_value、date のみを保持します。フライトの元データセットには、測定対象にかかわらず、すべてのシリーズの時系列値が格納されます。

Pipeline Builder の列選択ボード

結果のデータセットは次のようになります。

series_idseries_valuedate
12099_daily_count_of_flights772023-07-02T00:00:00.000Z
12099_daily_avg_dep_delay9.343750000000000002023-07-02T00:00:00.000Z
12099_daily_avg_arr_delay18.52941176470588402023-07-02T00:00:00.000Z

5. 時系列プロパティを和集合として元データセットにまとめる

Carrier、Route、Airport の時系列プロパティを表すデータ加工を使用し、種類を名前による和集合に設定して和集合を作成します。

Pipeline Builder のグラフで、和集合にまとめる3個の時系列プロパティノードが選択されている

3つの時系列プロパティセットを名前による和集合にまとめるように設定された Pipeline Builder の和集合ボード

series_idseries_valuedate
12099_daily_count_of_flights772023-07-02T00:00:00.000Z
12099_daily_avg_dep_delay9.343750000000000002023-07-02T00:00:00.000Z
12099_daily_avg_arr_delay18.52941176470588402023-07-02T00:00:00.000Z
CMH -> IAH_daily_avg_dep_delay-8.00000000000000002023-03-21T00:00:00.000Z
20304_daily_avg_arr_delay9.125000000000000002023-08-13T00:00:00.000Z

パート2:時系列同期を作成する

1. null 値を削除する

生成されたデータセットにフィルターのデータ加工を適用し、すべての null 値を削除します。

null 値を削除するように設定された Pipeline Builder のフィルターのデータ加工ボード。

2. 時系列同期を設定する

次に、画面右側のパイプライン出力セクションから追加を選択して、時系列同期を作成します。その後、タイムシリーズの同期を選択します。次の点を考慮し、新しい時系列同期に必要なデータを入力します。

  • タイトル「[Example] Time series sync | Events」は、Palantir ファイルシステムのフォルダーに作成されるリソースに対応します。
  • シリーズIDフィールドには、series_id 列を選択します。
  • 時間フィールドに、作成した date タイムスタンプ列を追加します。
  • 値フィールドに series_value を追加します。

次に、パイプラインを保存してビルドします。出力はパイプラインと同じフォルダーに作成されます。

3. 時系列同期を使用してオブジェクトタイプにプロパティを追加する

時系列同期を含むパイプラインを作成したので、この同期を使用して Route、Carrier、Airport オブジェクトタイプに時系列プロパティを追加する準備ができました。詳しい手順については、オブジェクトタイプへの時系列プロパティの追加に関するドキュメントに進んでください。