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

Pipeline Builder でセンサーオブジェクトタイプのデータを作成する

このガイドで作成するパイプラインは、インポートされたフライトセンサー読み取りデータセットをトランスフォームしてセンサーオブジェクトタイプの元データセットを作成し、次にセンサー読み取りデータをtime series形式にトランスフォームしてtime series同期出力を作成します。このデータはプラットフォームで使用するセンサーオブジェクトタイプを作成するために使用されます。このガイドの最後にある最終パイプラインは以下の画像のようになるはずです。

Pipeline builder final output

このユースケースで提供される例は、ソースデータセットからセンサーデータをトランスフォームする1つの方法を示しています。センサー読み取りデータは多様なスキーマを持つさまざまな形状で存在しますが、我々の例では一般的なスキーマを使用しています。各行は複数のセンサー(たとえば、速度や高度)に対する個々のセンサー読み取りを表しており、フライトに関連付けられています(したがって、flight_IDFlightオブジェクトの外部キーとして機能します)。

Sample starting data from a sensor reading dataset

timestampflight_idheadingaltitudespeedlatitudelongitudevertical_speedflight_ title
2023-01-11T23...021fcdbsd ...2111345040.78354-73.87231-320YX4472...

このガイドは、Pipeline Builderの基本的な理解を前提としています。一般的なパイプラインガイダンスについては、Pipeline Builderのドキュメントを参照してください。このユースケースの例では、フライトセンサー読み取りデータがすでにパイプラインにインポートされていることを前提としています。

パート 1: センサー読み取りデータを強化する

センサー読み取りデータセットを新しいパイプラインに追加したら、いくつかのメタデータを追加する必要があります。

1. センサー読み取りデータを再フォーマットするためにトランスフォームを適用する

センサー読み取りデータセットから、以下のステップを使用してトランスフォームを適用します。

データをアンピボットしてシリーズ値をマージする

このデータセットには異なる列にtime seriesデータが含まれているため、アンピボットトランスフォームを使用して1つの値列にマージし、time series同期に必要なスキーマにデータを一致させる必要があります。以下のように設定します。

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

下記に示すように、アンピボットトランスフォームはaltitudespeedの値を同じseries_value列に配置します。これらの元の列名は、新しいseries_name列に出力され、親ルートオブジェクトが各センサーの表すものを識別できるようにします(たとえば、高度)。

The unpivot transform board in Pipeline Builder, merging sensor data into one column

トランスフォームされたデータセットは、新しいseries_valueおよびseries_id列でプレビューされるはずです。

series_nameseries_valuetimestampflight_idflight_ title
altitude1342023-01-11T23...021fcdbsd...YX4472...
speed114.002023-01-11T23...021fcdbsd...YX4472...

主キーを連結してシリーズIDを作成する

次に、文字列の連結トランスフォームを使用してシリーズID(関連するtime series値の識別子)を作成します。トランスフォームを使用してseries_name(各センサーの表すもの)と各オブジェクトの主キーを組み合わせます。

The concatenate strings transform board in Pipeline Builder

flight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ title
altitude_021fcdbsd...altitude1342023-01-11T23...021fcdbsd...YX4472...
speed_021fcdbsd...speed114.002023-01-11T23...021fcdbsd...YX4472...

null値を削除する

time series計算に使用されないnull値を含む行を削除するためにフィルター処理するトランスフォームを適用します。

A filter transform board in Pipeline Builder, configured to filter out rows containing null values.

2. データセットに単位を追加する

単位データセットを手動でアップロードする

元のセンサー読み取りデータセットには単位が含まれていないため、生成されたデータセットを追加して単位をシリーズ名にマップする必要があります。Pipeline Builderグラフの左上隅からAdd dataを選択し、次にEnter data manuallyを選択します。series_nameという列とunitsという列を作成します。必要に応じて、内部補間のためにこのステップを繰り返すことができます(ただし、この例では必要ありません)。

内部補間は、Quiverが隣接するデータポイント間のシリーズ値を推測できるようにするために使用されます。内部補間列は、センサーオブジェクトごとに補間設定を保存するプロパティをオントロジーに提供します。Quiverは、time seriesデータを視覚化する際にそのプロパティに依存します。補間に関する詳細は、補間オプションのドキュメントを参照してください。

一部のセンサー読み取りデータセットには単位が含まれています。この場合、このステップをスキップし、センサーオブジェクトタイプの元データセットを作成する手順に進むことができます。

Manually create a units dataset in Pipeline Builder

単位とセンサーデータセットを結合して結合を作成する

結合ボードを使用して、単位とセンサーデータセットからデータを結合する結合を作成します。次の設定が行われていることを確認してください。

  • Left joinを追加し、series_nameで一致させます。
  • 左側のデータセットから列を自動選択します。
  • 右側の列としてunits列のみを選択します。

Use the join board to combine units and sensor datasets

データは以下のように新しいunits列でプレビューされるはずです。

flight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ titleunits
altitude_021fcdbsd...altitude1342023-01-11T23...021fcdbsd...YX4472...ft
altitude_021fcdbsd...altitude1552023-01-11T23...021fcdbsd...YX4472...ft
speed_021fcdbsd...speed114.002023-01-11T23...021fcdbsd...YX4472...mph
speed_021fcdbsd...speed135.002023-01-11T23...021fcdbsd...YX4472...mph

パート 2: センサーオブジェクトタイプの元データセットを作成する

これで、センサーオブジェクトタイプを作成する準備が整いました。結合出力にトランスフォームを適用して、最終的にセンサーオブジェクトタイプをバックするデータセットを作成するための手順に従ってください。

1. 重複を削除してセンサーごとに1行を作成する

センサーオブジェクトは、1つの関連するtime seriesデータのコレクションを表します(たとえば、特定のフライトのaltitude)。各関連するtime seriesコレクションはflight_sensor_series_idによって一意に識別されるため、一意のフライトセンサーシリーズIDごとに1行だけを保持することで、正確に1つのセンサーオブジェクトに対応することができます。生成されたflight_sensor_series_idで重複を削除するトランスフォームを使用して、センサーオブジェクトごとに1行を作成します。残りのシリーズデータ(タイムスタンプと値)は後のステップで削除します。

The drop duplicates transform board in Pipeline Builder

データセットは以下のようになります。

flight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ titleunits
altitude_021fcdbsd...altitude1342023-01-11T23...021fcdbsd...YX4472...ft
speed_021fcdbsd...speed114.002023-01-11T23...021fcdbsd...YX4472...mph

2. ハッシュ化してシリーズIDを作成する

各センサーオブジェクトが一意に識別可能である必要があるため、ハッシュsha256トランスフォームを使用して各センサーオブジェクトの主キーを作成します。series_idを再利用することもできますが、ハッシュ化はseries_idが一意の識別子としてのみ使用されるべきであることをより直接的に示します。

The hash sha256 transform board in Pipeline Builder, used to create a primary key from a series ID.

データセットは以下のようにプレビューされるはずです。

unique_sensor_flight_idflight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ titleunits
2492af5a2fe62c78ad8d...altitude_021fcdbsd...altitude134.002023-01-11T23...021fcdbsd...YX4472...ft
ec4808668f4b48cc5104...altitude_011794756...altitude0.00002023-01-22T17...011794756...UA1878...ft

3. オブジェクトのタイトルプロパティを作成するために文字列を連結する

次に、文字列の連結トランスフォームを使用してセンサーオブジェクトの人間が読み取り可能なタイトルプロパティを作成します。センサーオブジェクトは他のFlightオブジェクトのオブジェクトビューに埋め込まれますが、センサーオブジェクトの専用の名前を作成することで、プラットフォームでセンサーを構築および分析する際にユーザーにとって直感的になります。

The concatenate strings transform board, used to create a new title for sensor objects.

データセットは以下のようにプレビューされるはずです。

titleunique_sensor_flight_idflight_sensor_series_idseries_nameseries_valuetimestampflight_idflight_ titleunits
Altitude sensor for YX4472...2492af5a2fe62c78ad8d...altitude_021fcdbsd...altitude134.002023-01-11T23...021fcdbsd...YX4472...ft
Altitude sensor for UA1878...ec4808668f4b48cc5104...altitude_011794756...altitude0.00002023-01-22T17...011794756...UA1878...ft

4. 不要な列を削除する

センサーオブジェクトはセンサー自体のみを表すため、ドロップ列トランスフォームを使用して残りのseries_valueおよびtimestamp列を削除します。これらの列はtime seriesプロパティで表され、flight_sensor_series値に基づいてオントロジーでセンサーにリンクされます。さらに、センサーオブジェクトタイプには必要ないため、flight_title列も削除します。

flight_idを保持して、センサーオブジェクト(Flight Sensors)がそのルートオブジェクト(Flights)にリンクできるようにします。

Drop timestamp and series value columns

データセットは以下のようにプレビューされるはずです。

titleunique_sensor_flight_idflight_sensor_series_idseries_nameflight_idunits
Altitude sensor for YX4472...2492af5a2fe62c78ad8d...altitude_021fcdbsd...altitude021fcdbsd...ft
Altitude sensor for UA1878...ec4808668f4b48cc5104...altitude_011794756...altitude011794756...ft

5. センサーオブジェクトタイプをバックするデータセット出力を追加する

Add outputを選択し、次にAdd datasetを選択します。生成されるデータセットは、トランスフォームで作成されたスキーマを反映する必要があります。新しい変更がある場合は、生成されるデータセットのスキーマを更新する必要があります。

パート 3: センサーオブジェクトタイプのtime series同期を作成する

1. センサー読み取りデータをtime series同期形式にトランスフォームする

列選択トランスフォームを使用して、time series同期に必要な列(series_idtimestamp、およびvalue)のみを保持します。元データセットは、何を測定しているかに関係なくすべてのセンサーの値を保持します(たとえば、altitudespeed)。生成されたflight_sensor_series_idseries_idとして使用して、特定のセンサーデータセットの一意の識別子とすることができます。たとえば、LGAからLAXへのフライトA445Bには、speedのセンサーデータを保持するリンクされたセンサーオブジェクトがあり、同様にaltitudeのリンクされたセンサーオブジェクトもあります。

Pipeline select columns for sensor data

データセット出力は以下のようにプレビューされるはずです。

flight_sensor_series_idseries_valuetimestamp
altitude_021fcdbsd...134.002023-01-11T23