注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このガイドで作成するパイプラインは、インポートされたフライトセンサー読み取りデータセットをトランスフォームしてセンサーオブジェクトタイプの元データセットを作成し、次にセンサー読み取りデータをtime series形式にトランスフォームしてtime series同期出力を作成します。このデータはプラットフォームで使用するセンサーオブジェクトタイプを作成するために使用されます。このガイドの最後にある最終パイプラインは以下の画像のようになるはずです。
このユースケースで提供される例は、ソースデータセットからセンサーデータをトランスフォームする1つの方法を示しています。センサー読み取りデータは多様なスキーマを持つさまざまな形状で存在しますが、我々の例では一般的なスキーマを使用しています。各行は複数のセンサー(たとえば、速度や高度)に対する個々のセンサー読み取りを表しており、フライトに関連付けられています(したがって、flight_ID
がFlight
オブジェクトの外部キーとして機能します)。
timestamp | flight_id | heading | altitude | speed | latitude | longitude | vertical_speed | flight_ title |
---|---|---|---|---|---|---|---|---|
2023-01-11T23... | 021fcdbsd ... | 211 | 134 | 50 | 40.78354 | -73.87231 | -320 | YX4472... |
このガイドは、Pipeline Builderの基本的な理解を前提としています。一般的なパイプラインガイダンスについては、Pipeline Builderのドキュメントを参照してください。このユースケースの例では、フライトセンサー読み取りデータがすでにパイプラインにインポートされていることを前提としています。
センサー読み取りデータセットを新しいパイプラインに追加したら、いくつかのメタデータを追加する必要があります。
センサー読み取りデータセットから、以下のステップを使用してトランスフォームを適用します。
このデータセットには異なる列にtime seriesデータが含まれているため、アンピボットトランスフォームを使用して1つの値列にマージし、time series同期に必要なスキーマにデータを一致させる必要があります。以下のように設定します。
string
| TSPが参照するタイムスタンプと値のペアのセットのシリーズIDで、TSPのシリーズIDと一致する必要があります。timestamp
または long
| 量が測定される時刻。integer
, float
, double
, string
| 測定時点での量の値。stringタイプはカテゴリtime seriesを示し、各カテゴリtime seriesは最大127個のユニークなバリアントを持つことができます。下記に示すように、アンピボットトランスフォームはaltitude
とspeed
の値を同じseries_value
列に配置します。これらの元の列名は、新しいseries_name
列に出力され、親ルートオブジェクトが各センサーの表すものを識別できるようにします(たとえば、高度)。
トランスフォームされたデータセットは、新しいseries_value
およびseries_id
列でプレビューされるはずです。
series_name | series_value | timestamp | flight_id | flight_ title |
---|---|---|---|---|
altitude | 134 | 2023-01-11T23... | 021fcdbsd... | YX4472... |
speed | 114.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... |
次に、文字列の連結トランスフォームを使用してシリーズID(関連するtime series値の識別子)を作成します。トランスフォームを使用してseries_name
(各センサーの表すもの)と各オブジェクトの主キーを組み合わせます。
flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title |
---|---|---|---|---|---|
altitude_021fcdbsd... | altitude | 134 | 2023-01-11T23... | 021fcdbsd... | YX4472... |
speed_021fcdbsd... | speed | 114.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... |
time series計算に使用されないnull
値を含む行を削除するためにフィルター処理するトランスフォームを適用します。
元のセンサー読み取りデータセットには単位が含まれていないため、生成されたデータセットを追加して単位をシリーズ名にマップする必要があります。Pipeline Builderグラフの左上隅からAdd dataを選択し、次にEnter data manuallyを選択します。series_name
という列とunits
という列を作成します。必要に応じて、内部補間のためにこのステップを繰り返すことができます(ただし、この例では必要ありません)。
内部補間は、Quiverが隣接するデータポイント間のシリーズ値を推測できるようにするために使用されます。内部補間列は、センサーオブジェクトごとに補間設定を保存するプロパティをオントロジーに提供します。Quiverは、time seriesデータを視覚化する際にそのプロパティに依存します。補間に関する詳細は、補間オプションのドキュメントを参照してください。
一部のセンサー読み取りデータセットには単位が含まれています。この場合、このステップをスキップし、センサーオブジェクトタイプの元データセットを作成する手順に進むことができます。
結合ボードを使用して、単位とセンサーデータセットからデータを結合する結合を作成します。次の設定が行われていることを確認してください。
series_name
で一致させます。units
列のみを選択します。データは以下のように新しいunits
列でプレビューされるはずです。
flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title | units |
---|---|---|---|---|---|---|
altitude_021fcdbsd... | altitude | 134 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
altitude_021fcdbsd... | altitude | 155 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
speed_021fcdbsd... | speed | 114.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | mph |
speed_021fcdbsd... | speed | 135.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | mph |
これで、センサーオブジェクトタイプを作成する準備が整いました。結合出力にトランスフォームを適用して、最終的にセンサーオブジェクトタイプをバックするデータセットを作成するための手順に従ってください。
センサーオブジェクトは、1つの関連するtime seriesデータのコレクションを表します(たとえば、特定のフライトのaltitude
)。各関連するtime seriesコレクションはflight_sensor_series_id
によって一意に識別されるため、一意のフライトセンサーシリーズIDごとに1行だけを保持することで、正確に1つのセンサーオブジェクトに対応することができます。生成されたflight_sensor_series_id
で重複を削除するトランスフォームを使用して、センサーオブジェクトごとに1行を作成します。残りのシリーズデータ(タイムスタンプと値)は後のステップで削除します。
データセットは以下のようになります。
flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title | units |
---|---|---|---|---|---|---|
altitude_021fcdbsd... | altitude | 134 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
speed_021fcdbsd... | speed | 114.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | mph |
各センサーオブジェクトが一意に識別可能である必要があるため、ハッシュsha256トランスフォームを使用して各センサーオブジェクトの主キーを作成します。series_id
を再利用することもできますが、ハッシュ化はseries_id
が一意の識別子としてのみ使用されるべきであることをより直接的に示します。
データセットは以下のようにプレビューされるはずです。
unique_sensor_flight_id | flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title | units |
---|---|---|---|---|---|---|---|
2492af5a2fe62c78ad8d... | altitude_021fcdbsd... | altitude | 134.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
ec4808668f4b48cc5104... | altitude_011794756... | altitude | 0.0000 | 2023-01-22T17... | 011794756... | UA1878... | ft |
次に、文字列の連結トランスフォームを使用してセンサーオブジェクトの人間が読み取り可能なタイトルプロパティを作成します。センサーオブジェクトは他のFlight
オブジェクトのオブジェクトビューに埋め込まれますが、センサーオブジェクトの専用の名前を作成することで、プラットフォームでセンサーを構築および分析する際にユーザーにとって直感的になります。
データセットは以下のようにプレビューされるはずです。
title | unique_sensor_flight_id | flight_sensor_series_id | series_name | series_value | timestamp | flight_id | flight_ title | units |
---|---|---|---|---|---|---|---|---|
Altitude sensor for YX4472... | 2492af5a2fe62c78ad8d... | altitude_021fcdbsd... | altitude | 134.00 | 2023-01-11T23... | 021fcdbsd... | YX4472... | ft |
Altitude sensor for UA1878... | ec4808668f4b48cc5104... | altitude_011794756... | altitude | 0.0000 | 2023-01-22T17... | 011794756... | UA1878... | ft |
センサーオブジェクトはセンサー自体のみを表すため、ドロップ列トランスフォームを使用して残りのseries_value
およびtimestamp
列を削除します。これらの列はtime seriesプロパティで表され、flight_sensor_series
値に基づいてオントロジーでセンサーにリンクされます。さらに、センサーオブジェクトタイプには必要ないため、flight_title
列も削除します。
flight_id
を保持して、センサーオブジェクト(Flight Sensors
)がそのルートオブジェクト(Flights
)にリンクできるようにします。
データセットは以下のようにプレビューされるはずです。
title | unique_sensor_flight_id | flight_sensor_series_id | series_name | flight_id | units |
---|---|---|---|---|---|
Altitude sensor for YX4472... | 2492af5a2fe62c78ad8d... | altitude_021fcdbsd... | altitude | 021fcdbsd... | ft |
Altitude sensor for UA1878... | ec4808668f4b48cc5104... | altitude_011794756... | altitude | 011794756... | ft |
Add output
を選択し、次にAdd dataset
を選択します。生成されるデータセットは、トランスフォームで作成されたスキーマを反映する必要があります。新しい変更がある場合は、生成されるデータセットのスキーマを更新する必要があります。
列選択トランスフォームを使用して、time series同期に必要な列(series_id
、timestamp
、およびvalue
)のみを保持します。元データセットは、何を測定しているかに関係なくすべてのセンサーの値を保持します(たとえば、altitude
やspeed
)。生成されたflight_sensor_series_id
をseries_id
として使用して、特定のセンサーデータセットの一意の識別子とすることができます。たとえば、LGAからLAXへのフライトA445Bには、speed
のセンサーデータを保持するリンクされたセンサーオブジェクトがあり、同様にaltitude
のリンクされたセンサーオブジェクトもあります。
データセット出力は以下のようにプレビューされるはずです。
flight_sensor_series_id | series_value | timestamp |
---|---|---|
altitude_021fcdbsd... | 134.00 | 2023-01-11T23 |