Warning

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

Pipeline Builder を使用して時系列データを作成する

このガイドで作成するパイプラインは、新しい時系列オブジェクトを作成するために、CarrierRoute、および 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オブジェクトタイプに変換を適用する

フライトデータセットから変換を適用します。これを CarrierRoute の両方のオブジェクトタイプで行います。

データを集約する

集約変換を使用して、オブジェクトの日付と ID (この場合、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_delaydaily_avg_arr_delay、および daily_count_of_flights の値を1つの行にマージします。この関数はすべての値が同じデータ型であることを必要とするため、日次フライト数のメトリックをダブル型にキャストする必要があります(これは平均遅延メトリクスと同じデータ型です)。

タイムスタンプへのキャストとダブルへのキャストを示す Pipeline Builder のキャストボード

アンピボットで時系列値をマージする

このデータセットには異なる行に時系列データが含まれているため、アンピボット変換を使用してそれを1つの値行にマージする必要があります。これにより、データは以下に示すような時系列同期の必須スキーマに一致します:

  • series ID: string | TSP が参照するタイムスタンプと値のペアのセットのシリーズ ID。これは TSP のシリーズ ID と一致する必要があります。
  • timestamp: timestamp または long | 量が測定される時間。
  • value: integerfloatdoublestring | それが測定される時点の量の値。文字列型はカテゴリカルな時系列を示し、各カテゴリカルな時系列は最大で127のユニークなバリアントを持つことができます。

下に示すアンピボット変換は、daily_avg_dep_delaydaily_avg_arr_delay、および daily_count_of_flights の値を同じ series_value 行に配置します。それらの元の行名は、series_id で使用する新しい series_name 行への出力です。

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

文字列値を連結して series ID を作成する

これで、連結文字列変換を使用して series 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_idseries_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日あたりのフライト数を集約する

集約変換を使用して dateorigin_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_iddest_airport_id にマッチさせます。
  • 左のデータセットからの列を自動選択します。
  • 右の列として、日次平均遅延と日次フライト数を表す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

ダブルにキャストする

すぐにアンピボット変換を適用する予定です。この関数はすべての値が同じデータ型であることを必要とするため、キャスト変換ボードを再度使用して、フライト数の日次カウントメトリクスをダブルデータ型にキャストする必要があります。

フライト数を追加する

完全な日次フライト数を計算するために、数字を追加する変換を使用して、到着フライトの日次数と出発フライトの日次数を合計します。

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つの値行にマージする必要があります。これにより、データは以下に示すような時系列同期の必須スキーマに一致します:

  • series ID: string | TSP が参照するタイムスタンプと値のペアのセットのシリーズ ID。これは TSP のシリーズ ID と一致する必要があります。
  • timestamp: timestamp または long | 量が測定される時間。
  • value: integerfloatdoublestring | それが測定される時点の量の値。文字列型はカテゴリカルな時系列を示し、各カテゴリカルな時系列は最大で127のユニークなバリアントを持つことができます。

下に示すアンピボット変換は、daily_avg_dep_delaydaily_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

文字列値を連結して series ID を作成する

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

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

| series_id | series_name | series_value | date | airport_id | | ---------------------------- | -------------------------------- | ------------------- | ------------------------ | | 12099_daily_count_of_flights | daily_count_of_flights | 77 | 2023-07-02T00:00:00.000Z | | 12099_daily_avg_dep_delay | daily_avg_dep_delay | 9.34375000000000000 | 2023-07-02T00:00:00.000Z | | 12099_daily_avg_arr_delay | daily_avg_arr_delay | 18.5294117647058840 | 2023-07-02T00:00:00.000Z |

必要な行を選択する

行の選択変換を使用して、時系列同期に必要な行だけを保持します: series_idseries_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. 時系列プロパティを元データセットに統合する

CarrierRoute、および Airport の時系列プロパティを表す変換を使用して、Union by name 型のユニオンを作成します。

Pipeline Builder グラフからユニオニング用に選択された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. 時系列同期を設定する

次に、パイプライン出力セクションの右側から Add を選択し、その後 Time series sync を選択して、時系列同期を作成します。新しい時系列同期の必要なデータを以下の考慮事項に従って記入します:

  • タイトル “[Example] Time series sync | Events” は、ユーザーの Palantir ファイルシステムフォルダー内の結果となるリソースに対応します。
  • Series ID フィールドで series_id 行を選択します。
  • Time フィールドに作成した date タイムスタンプ行を追加します。
  • Value フィールドに series_value を追加します。

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

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

時系列同期を持つパイプラインを作成したので、その同期を使用して RouteCarrier、および Airport オブジェクトタイプに時系列プロパティを追加する準備が整いました。詳細なガイダンスについては、オブジェクトタイプに時系列プロパティを追加するドキュメンテーションを参照してください。