自動車テスト車両のデータ分析

Azure Blob Storage
Azure Data Explorer
Azure Event Hubs
Azure Functions
Azure IoT Hub

自動車メーカーには、テスト走行から R&D エンジニアへテスト走行の診断データを渡すまでの時間を最小限に抑えるソリューションが必要です。 車両の自動化が進むにつれて、ソフトウェアのライフサイクルが短くなり、デジタル フィードバック ループが速くなる必要があります。 新しいテクノロジでは、データ アクセスを民主化し、テスト走行の診断データに関するほぼリアルタイムの分析情報を R&D エンジニアに提供できます。 セキュリティで保護されたデータ共有により、メーカーとサプライヤー間のコラボレーションが強化され、開発サイクルがさらに短縮されます。

このワークロード例は、テレメトリとテスト走行のバッチ データ インジェストの両方のシナリオに関連しています。 このワークロードは、診断データを処理するデータ プラットフォームと、視覚化とレポートのためのコネクタに重点を置いています。

アーキテクチャ

Diagram that shows the analytics dataflow for automotive streaming data and files.

"この記事のすべての図を含む PowerPoint ファイル をダウンロードします。"

データフロー

  1. Azure IoT Hub は、未加工のライブ テレメトリ データ (A) を取り込み、記録されたデータ ファイル (B) を車両からアップロードします。

  2. IoT Hub は、テレメトリを JavaScript Object Notation (JSON) にデコードして Azure Event Hubs に通知するAzure Functions アプリに、ライブ テレメトリ (A) を送信します。

    IoT Hub は、記録されたデータ ファイル (B) をAzure Blob Storage に送信します。 ファイルのアップロードが完了すると、Functions アプリがトリガーされ、このアプリがデータをデコードし、デコードされたファイルをインジェストに適したコンマ区切り値 (CSV) 形式で Blob Storage に書き込みます。

  3. Azure Data Explorer は、デコードされた JSON テレメトリ データを Event Hubs (A) から未加工のテレメトリ テーブルに取り込み、デコードされた CSV ファイル (B) を Blob Storage から取り込みます。

  4. Azure Data Explorer では、Update 関数を使用して JSON データを適切な行形式に拡張し、データを強化します。 たとえば、この関数は地理空間分析をサポートするために位置データをクラスター化します。

  5. データ サイエンティストと R&D エンジニアは、Kusto 照会言語 (KQL) 機能を使用して、ユーザー定義関数として格納される分析のユース ケースを作成します。 KQL 関数には、集計、時系列分析、地理空間クラスタリング、ウィンドウ化、機械学習 (ML) プラグインが含まれます。

  6. Power BI では、動的クエリを使用して、ユーザー定義クエリを使用した視覚化を作成します。 Azure Data Explorer 用の Grafana データ ソース プラグインでは、ほぼリアルタイムの更新にユーザー定義クエリが使用されます。

  7. Azure App Service アプリでは、Azure Maps データ ソース レンダリング機能を使用して、GeoJSON 形式を使用するユーザー定義のクエリ結果を視覚化します。

  8. Azure API Management は、車両から保存された生データ ファイルへのアクセスと、サードパーティのデータ収集ポリシーを管理する構成 API を提供します。

Azure Data Explorer スキーマ

Diagram that shows the Azure Data Explorer functions and methods for extracting, expanding, and enriching data.

  1. Update() 関数では、次のようなメソッドを使用します。

    • mv-expand(): JSON 構造に格納されている複雑な値を個々のシグナルを含む行に拡張します。
    • geo_point_to_h3cell() または geo_point_to_geohash(): 地理空間分析のために緯度と経度を geohash に変換します。
    • todouble() および tostring(): 動的な JSON オブジェクトから抽出された値を適切なデータ型にキャストします。
  2. フリート メタデータの最後の既知の値ビューは、インジェストの一部として他のビューを結合してコンテキストを提供します。 履歴フリート メタデータは、新しいユース ケースで未加工のテレメトリの再処理が必要な場合に便利です。

  3. 必要に応じて、重複除去されたシグナルの具体化されたビューで take_any() を使用してシグナルを重複除去します。

  4. シグナルの最後の既知の値の具体化されたビューでは、リアルタイム レポートのタイムスタンプで arg_max() を使用します。

  5. ダウンサンプリングされたシグナルの具体化されたビューでは、"毎時" や "毎日" などの定義済みのビンを使用してシグナルを集計して、フリート全体のレポートを簡略化します。

  6. DetectAnomaly() のような格納されたプラグイン関数は、データ系列の異常を検出します。 autocluster のような ML プラグインは、不連続属性の一般的なパターンを見つけます。

  7. GetGeospatial() 関数は、geohash によってグループ化されたシグナルを含む GeoJSON ファイルを生成します。

コンポーネント

次の主要なテクノロジが、このワークロードを実装します。

代替

Azure Batch は、複雑なファイルのデコードに適した代替手段です。 このシナリオには、ファイルのバージョンまたは種類に基づいて異なるデコード アルゴリズムを必要とする、300 メガバイトを超える多数のファイルが含まれています。

Diagram that shows an alternative Azure Batch method for decoding complex files.

  1. 記録されたデータ ファイルを Blob Storage にアップロードすると、デコードをスケジュールする Functions アプリがトリガーされます。
  2. Functions アプリは、ファイルの種類、サイズ、必要なデコード アルゴリズムを考慮して、バッチ ジョブを作成します。 このアプリはプールから適切な仮想マシン (VM) を選択し、ジョブを開始します。
  3. ジョブが完了すると、Batch は結果としてデコードされたファイルを Blob Storage に書き戻します。 このファイルは、Azure Data Explorer がサポートする形式で直接インジェストに適している必要があります。
  4. デコードされたシグナル ファイルを Blob Storage にアップロードすると、Azure Data Explorer にデータを取り込む関数がトリガーされます。 この関数は、必要に応じてテーブルとデータのマッピングを作成し、インジェスト プロセスを開始します。
  5. Azure Data Explorer は、Blob Storage からデータ ファイルを直接取り込みます。

この方法には次の利点があります。

  • Azure Functions および Batch プールは、スケーラブルなデータ処理タスクを確実かつ効率的に処理できます。
  • Batch プールは、処理統計、タスク キュー、バッチ プールの正常性に関する分析情報を提供します。 状態の視覚化、問題の検出、失敗したタスクの再実行を行うことができます。
  • Azure Functions と Azure Batch の組み合わせは、Docker コンテナーでのプラグ アンド プレイ処理をサポートします。

シナリオの詳細

自動車メーカーは、あらゆる種類の車両機能をテストおよび検証するために、多数のプロトタイプとテスト車両を使用します。 実際のドライバーと車両が必要であり、特定の実際の道路テスト シナリオが複数回合格する必要があるため、テスト手順はコストがかかります。 統合テストは、複雑なシステムにおける電気、電子、機械コンポーネント間の相互作用を評価するために特に重要です。

車両の機能を検証し、異常や故障を分析するには、電子制御ユニット (ECU)、コンピューター ノード、コントローラー エリア ネットワーク (CAN) やイーサネットなどの車両通信バス、およびセンサーからギガバイト単位の診断データをキャプチャする必要があります。 以前は、車両内の小規模なデータ ロガー サーバーに、診断データがマスター データベース (MDF)、Multimedia Fusion Extension (MFX)、CSV、または JSON ファイルとしてローカルに格納されました。 テスト走行が完了すると、サーバーは診断データをデータ センターにアップロードし、データ センターで処理し、分析のために R&D エンジニアに提供しました。 このプロセスには、数時間、または場合によっては数日かかることがありました。 最近のシナリオでは、Message Queuing Telemetry Transport (MQTT) ベースの同期データ ストリームや、ほぼリアルタイムのファイル アップロードなどのテレメトリ インジェスト パターンが使用されます。

考えられるユース ケース

  • 車両管理では、複数のテスト シナリオで車両ごとのパフォーマンスと収集されたデータを評価します。
  • システムとコンポーネントの検証では、収集された車両データを使用して、車両コンポーネントの動作が走行全体で運用境界内に収まることを確認します。
  • 異常検出では、標準的なベースライン パターンに対するセンサー値の偏差パターンをリアルタイムで見つけます。
  • 根本原因分析では、クラスタリング アルゴリズムなどの ML プラグインを使用して、複数のディメンションで値の分布の変化を識別します。
  • 予測メンテナンスでは、複数のデータ ソース、強化された位置データ、およびテレメトリを組み合わせて、コンポーネントの故障までの時間を予測します。
  • 持続可能性評価では、ドライバーの動作とエネルギー消費量を使用して、車両運用の環境への影響を評価します。

考慮事項

これらの考慮事項は、ワークロードの品質向上に使用できる一連の基本原則である Azure Well-Architected Framework の要素を組み込んでいます。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。

[信頼性]

信頼性により、顧客に確約したことをアプリケーションで確実に満たせるようにします。 詳細については、「信頼性の重要な要素の概要」を参照してください。

  • Azure 可用性ゾーンは、同じ Azure リージョン内の一意の物理的な場所です。 可用性ゾーンは、部分的なリージョンの障害から Azure Data Explorer コンピューティング クラスターとデータを保護できます。
  • Azure Data Explorer における事業継続とディザスター リカバリー (BCDR) により、中断が発生しても業務を継続できます。
  • Azure Data Explorer でフォロワー データベースを使用して、運用と非運用のユース ケース間でコンピューティング リソースを分離することを検討してください。

セキュリティ

セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティの重要な要素の概要」を参照してください。

自動車メーカーと Microsoft との責任の分担を理解することが重要です。 車両では、メーカーはスタック全体を所有しますが、データがクラウドに移動すると、責任の一部は Microsoft に移譲されます。 Azure PaaS (サービスとしてのプラットフォーム) では、オペレーティング システムを含めて、物理スタックにセキュリティが組み込まれています。 インフラストラクチャ セキュリティ コンポーネントの上に、次の機能を適用できます。

これらの機能はすべて、自動車メーカーが車両テレメトリ データの安全な環境を作成するのに役立ちます。 詳細については、「Azure Data Explorer のセキュリティ」をご覧ください。

コスト最適化

コストの最適化では、不要な費用を削減し、運用効率を向上させる方法を検討します。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。

このソリューションでは、次の方法を使用してコストを最適化します。

  • Raw テーブルと Signals テーブルのホット キャッシュとコールド ストレージを正しく構成します。 ホット データ キャッシュは RAM または SSD に格納され、パフォーマンスを向上させます。 ただし、コールド データはコストが 45 分の 1 で済みます。 ユース ケースに適したホット キャッシュ ポリシー (30 日など) を設定します。
  • Raw テーブルと Signals テーブルに保持ポリシーを設定します。 シグナル データが関連しなくなるタイミング (たとえば、365 日後など) を判断し、それに応じて保持ポリシーを設定します。
  • どのシグナルが分析に関連するかを検討します。
  • シグナルの最後の既知の値、重複除去されたシグナル、およびダウンサンプリングされたシグナルに対してクエリを実行する場合は、具体化されたビューを使用します。 具体化されたビューでは、各クエリでソース テーブルの集計を行うよりも消費されるリソースが少なくなります。
  • リアルタイム データ分析のニーズを考慮します。 ライブ テレメトリ テーブルのストリーミング インジェストを設定すると、インジェストとクエリの間の待機時間は 1 秒未満ですが、CPU サイクル増加のコストが高くなります。

パフォーマンス効率

パフォーマンス効率は、ユーザーの要求に合わせてワークロードが効率的にスケーリングできることです。 詳細については、「パフォーマンス効率の柱の概要」を参照してください。

  • 記録されたデータ ファイルの数とサイズが 1 日あたり 1,000 ファイルまたは 300 MB を超える場合は、デコードに Azure Batch を使用することを検討してください。
  • 取り込んで追加のテーブルに格納した後に、一般的な計算と分析を実行することを検討します。

このシナリオのデプロイ

Azure Data Explorer をデプロイして MDF ファイルを取り込むには、無料インスタンスのデプロイ、MDF ファイルの解析、取り込み、いくつかの基本的なクエリの実行方法を示すステップバイステップのチュートリアルに従います。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパルの作成者:

その他の共同作成者:

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次の手順