ストリームデータをアーカイブします

HERE Workspace を使用すると、ストリームデータをアーカイブして、後で非リアルタイムの使用例についてそのデータをクエリーおよび処理できるようになります。 たとえば、バッチ処理を毎日実行して、特定の都市を囲む領域でその日に記録されたすべての路面状況検知イベントを検索する場合、インデックス レイヤーを使用して、イベント時間、イベントタイプ、および場所によって路面状況検知イベントのインデックスを作成できます。 データをアーカイブします。 バッチ処理の一部として、都市部でのプールイベントのデータを 24 時間ごとにクエリできます。

次の図は、ストリームデータをアーカイブしてクエリを実行する全体的なプロセスを示しています。

アーカイブプロセス
図 1. アーカイブプロセス

図の要点は次のとおりです。

  • ストリーム レイヤーからのデータは、プラットフォームパイプラインとして作成および実行するアプリケーションによってアーカイブされます。 アーカイブアプリケーションは データアーカイブライブラリを使用します。この Java ライブラリは、ストリーム レイヤーからデータを読み取り、集計して、インデックス レイヤーにインデックスを作成します。 詳細については、以下を参照してください。

    Data Archiving ライブラリ開発者ガイド(データアーカイブサービス)

  • インデックス レイヤー には、アーカイブされたデータとインデックス属性が含まれています。 ストリーム レイヤーとは別のカタログ内のレイヤーです。 詳細については、以下を参照してください。

    レイヤーをインデックス化します

  • データがアーカイブされると、データのクエリー方法が複数あります。

    • データ クライアント ライブラリ には、インデックスレイヤーからデータを読み取るための Java/Scala ライブラリが用意されています。
    • コマンド ライン インターフェースを使用すると、コマンド ラインまたはスクリプトからインデックス レイヤーからデータを読み取ることができます。
    • REST API インデックスBlob を併用すると、インデックス化されたデータのクエリと読み取りを行うことができます。 Index API は、クエリに一致するデータのデータハンドルを返します。 たとえば、特定の時間枠および場所からイベントを検索する場合、応答にはそれらのイベントのデータハンドルが含まれます。 クエリ条件に一致するデータハンドルがある場合は、それらのハンドルを使用して Blob API を使用して対応するデータを取得できます。

インデックス レイヤーインターフェイスの比較

インデックス レイヤーとの対話には複数の方法があります。

  • データアーカイブライブラリ: Data Archiving ライブラリを使用して、パイプラインで実行できるカスタムアプリケーションを Java で開発します。 ストリーム レイヤーメッセージをインデックス レイヤーに保存するには、 Data Archiving ライブラリを使用することをお勧めします。 Data Archiving ライブラリでは、アプリケーションにライブラリのユーザー定義関数を実装するだけで、各メッセージのインデックス属性を抽出できます。 アプリケーションを作成したら、パッケージ化してパイプラインでアプリケーションを実行できます。 Data Archiving ライブラリは、インデックス レイヤーへの書き込み専用です。 データのクエリには使用できません。
  • データ クライアント ライブラリ: データ クライアント ライブラリには、インデックス レイヤーとの対話に使用できる Java および Scala API が用意されています。 データアーカイブライブラリが要件を満たしておらず、カスタムアプリケーションを開発する場合は、インデックス レイヤーを使用してデータ クライアント ライブラリを操作することをお勧めします。
  • REST API : データ クライアント ライブラリでサポートされていない言語でアプリケーションを作成する場合は、 REST API を使用します。 REST API を使用してインデックス レイヤーと対話できます。
  • コマンド ライン インターフェース: コマンド ライン インターフェース( CLI )を使用して、コマンド ラインまたはスクリプトからインデックス レイヤーを操作します。

アーカイブ・ソリューションの作成

ストリーム レイヤーのアーカイブソリューションを作成するには、次の手順を実行します。

ステップ 1 : ストリーム レイヤーを作成します

データをアーカイブするストリーム レイヤーがまだない場合は、ストリーム レイヤーを作成します。 手順については、以下を参照してください。

レイヤーを作成します

ステップ 2 : インデックス レイヤーを作成します

アーカイブするストリーム レイヤーが含まれているカタログとは別のカタログで、インデックス レイヤーを作成します。 手順については、以下を参照してください。 レイヤーを作成します

ステップ 3 : アーカイブアプリケーションを作成します

アーカイブプロセスは、パイプラインで作成して実行するアプリケーションによって実行されます。 アプリケーションを作成する最も簡単な方法は、 HERE Data SDK に含まれているサンプルアプリケーションのいずれかから開始することです。 これらの例では、 Data Archiving ライブラリを使用してデータを保存する方法を示します。

アーカイブアプリケーションを作成するには、次の手順に従います。

  1. Data Archiving ライブラリで提供されるユーザー定義の機能を実装します。
  2. application.conf ファイルを設定します。
  3. アプリケーションを Fat JAR ファイル にパッケージ化します。

詳細については、サンプルに含まれている README ファイルを参照してください。

ステップ 4 : 権限を設定します

アーカイブパイプラインは 、ストリーム レイヤーが含まれているカタログへのreadアクセス権、readおよびインデックス レイヤーが含まれているカタログへのwriteアクセス権を持っている必要があります。 このアクセス権を、アーカイブパイプラインを作成するグループ ID に付与します。 アクセス権を付与する方法については、以下を参照してください。

カタログを共有します

ステップ 5 : パイプラインを使用してアプリケーションを展開します

アプリケーションを実行するには、 HERE Workspace でパイプラインを作成する必要があります。 手順については、以下を参照してください。

パイプラインのポータル UI

ステップ 6 : パイプラインが実行されていることを確認します

ポータルで、パイプライン (Pipelines) タブを選択 し、パイプラインを探します。 実行 状態になっている必要があります。

インデックス付けされたデータをクエリし

アーカイブパイプラインが実行され、データがインデックス レイヤーにアーカイブされたら、次のいずれかの方法でデータのクエリおよび取得を行うことができます。

メモ

インデックス レイヤーに問い合わせているアプリ read がインデックス レイヤーに対する権限を持っていることを確認してください。 詳細については、以下を参照してください。

アプリを管理します

インデックス レイヤーから取得したデータの解析については、次のトピックを参照してください。

出力内容の解析方法

」に一致する結果は 件です

    」に一致する結果はありません