パイプライン ワークフロー HERE platform は、データ処理パイプラインを使用して、 HERE 地理空間 リソースおよびカスタムクライアントリソースからのデータを処理し、新しい有用なデータ製品を作成します。 さまざまな種類のデータ処理アプリケーションは、 パイプライン API を使用してプラットフォーム に展開できます。パイプライン API の詳細については 、「 HERE 」を参照してください。
このワークフローでは、 OLP CLI を使用してプラットフォーム のプロジェクト内にパイプライン を展開する方法について説明します。
OLP CLI には、次のようなパイプラインを管理するためのツールがあります。
準備 : 展開 : 詳細について は、「プロジェクト コマンド」および「パイプライン コマンド」を参照してください。
次の図は、ワークフローを示しています。
パイプラインワークフロー プロジェクトを作成 パイプラインは、グループまたはプロジェクト範囲内に作成できます。
このワークフローでは、プロジェクトを使用してプラットフォーム のすべてのリソースを管理することが推奨されるため、プロジェクト内にパイプライン を作成します。 プロジェクトは、アプリ 、サービス、またはその他の作業中の製品をビルドするために使用する HERE platform リソースのコンテナです。 カタログ、パイプライン、スキーマ、サービスなどのリソースを含めることができます。 プロジェクトは、プロジェクト内のリソースにアクセスできるユーザー、アプリ、およびグループを制御します。 プロジェクトの詳細については、「プロジェクトの管理 」ドキュメントを参照してください。
プロジェクトを作成するには、次の OLP CLI コマンドを実行します。
olp project create < YOUR_PROJECT_ID> < YOUR_PROJECT_NAME>
コマンドを使用すると、プロジェクトが作成され、プロジェクトの HERE リソースネーム が表示されます。 このプロジェクトは後でワークフローで必要になるので、 HERE リソースネーム をメモしておきます。
Project hrn:here:authorization::org:projectid has been created
パイプライン を作成します パイプライン は、ユーザーの作業をグループ化する HERE platform の最上位のエンティティです。 作業中、ユーザーは特定の目的に応じてパイプラインを開発します。 パイプライン ごとに、 HERE platform によって複数のバージョンを保存および管理できます。
olp pipeline create
--scope
パラメーターを指定してコマンドを使用し、プロジェクトの範囲にパイプライン を作成しましょう。
olp pipeline create example-pipeline --scope < YOUR_PROJECT_HRN>
コマンドによってパイプライン が作成され、指定したプロジェクトに関連付けられて、パイプライン ID が表示されます。このパイプライン ID は後でワークフローで必要になるので、メモしておいてください。
Pipeline has been created
ID: ec60ab85-a735-4dce-8413-b43cd5d5202a
注 プロジェクトではなくグループを使用してパイプラインを作成し、指定したグループ ID に関するエラーメッセージが表示された場合は、プラットフォーム プロファイル ページで正しいグループ ID が使用されていることを確認してください。また、アプリ がそのグループの一部であることも確認してください。 自分または自分のアプリ がグループに属していない場合は、チームまたは組織の管理者に依頼して、自分または自分のアプリ をグループに割り当ててください。
パイプライン テンプレート を作成します パイプライン テンプレート は、実行可能ファイルのパイプライン バージョンおよびパイプライン のランタイムプロパティの不変の定義です。 データへのアクセス、処理、およびデータの保存に必要なすべての設定情報が保持されます。 また、このワークフローでは、実行可能なパイプライン バージョンを作成する必要があります ( 以下を参照 ) 。 パイプライン テンプレート は、パイプライン の実際のランタイム実装と、使用する入力および出力カタログを定義します。 1 つのパイプライン テンプレート を複数のパイプライン バージョンで同時に使用できますが、使用されている入力および出力カタログは一部のジョブで上書きできます。 パイプライン は、各テンプレート に作成中に一意のテンプレート ID ( UUID )を割り当てます。
新しいパイプライン テンプレートを作成するには、次の手順を実行します。
まず、アプリケーションを実行する環境を選択する必要があります。 olp pipeline environment list
コマンドを実行して、使用可能な環境を取得します。
olp pipeline environment list
コマンドを実行すると、次の結果が表示されます。
ID name resource profiles description
batch-2.0.0 Batch 2.0 .0 ( Deprecated) HC1B, HM1B, HS1B Spark 2.4 .2, Java OpenJDK 8u262, Scala 2.11
batch-2.1.0 Batch 2.1 .0 ( Deprecated) HC1B, HM1B, HS1B Spark 2.4 .2 With AWS SDK 1.7 .4, Java OpenJDK 8u262, Scala 2.11
batch-3.0 Batch 3.0 HC1B, HM1B, HS1B Spark 2.4 .7 With AWS SDK 1.7 .4, Java OpenJDK 8u262, Scala 2.12
stream-2.0.0 Stream 2.0 .0 ( Deprecated) HC1S, HM1S, HS1S Flink 1.7 .1, Java OpenJDK 8u312, Scala 2.11
stream-3.0.0 Stream 3.0 .0 ( Deprecated) HC1S, HM1S, HS1S Flink 1.10 .1, Java OpenJDK 8u312, Scala 2.11
stream-4.0 Stream 4.0 ( Deprecated) HC1S, HM1S, HS1S Flink 1.10 .3, Java OpenJDK 8u312, Scala 2.12
stream-5.0 Stream 5.0 HC1S, HM1S, HS1S Flink 1.13 .5, Java OpenJDK 8u312, Scala 2.12
このコマンドを使用すると、そのユーザーで現在有効になっているすべてのランタイム環境が一覧表示されます 使用可能なランタイム環境を選択し ID
、以下のコマンドで使用します。
olp pipeline template create
コマンドを入力します。 テンプレート 名、ランタイム環境 (ストリーム またはバッチ)、パッケージ、メインクラス、パイプライン が属するグループ、およびパイプライン バージョン設定で想定される入力カタログ ID を指定します。
例については、 HERE Workspace for Java and Scala Developers を参照して ください。
olp pipeline template create "example-pipeline-template" batch-3.0 \
example-pipeline.jar com.here.pipeline.PipelineProcessor \
--input-catalog-ids optimized-map sensor-data --scope < YOUR_PROJECT_HRN>
olp pipeline template create "example-pipeline-template" batch-3 .0 ^
example-pipeline.jar com.here.pipeline.PipelineProcessor ^
--input-catalog-ids optimized-map sensor-data --scope <YOUR_PROJECT_HRN>
コマンドによってパイプライン テンプレートが作成され、その ID が表示されます。 このテンプレート ID は後でワークフローで必要になるので、メモしておいてください。
パイプライン テンプレート を確認するには olp pipeline template show
、コマンドを入力します。
olp pipeline template show < YOUR_PIPELINE_TEMPLATE_ID> --scope < YOUR_PROJECT_HRN> --json
コマンドを実行すると、次の結果が表示されます。
{
"created" : "2018-03-30T12:40:39.577Z" ,
"defaultClusterConfiguration" : {
"workerResourceProfileId" : "HS1B" ,
"supervisorResourceProfileId" : "HS1B" ,
"supervisorUnits" : 1 ,
"workerUnits" : 1 ,
"workers" : 1
} ,
"name" : "example-pipeline-template" ,
"packageId" : "ab8ea6b8-5a81-4070-9b84-ca4f28b67e22" ,
"entryPointClassName" : "com.here.pipeline.PipelineProcessor" ,
"description" : "" ,
"id" : "ac42c041-98ff-43d9-b0c3-0002fa756f49" ,
"state" : "creating" ,
"defaultRuntimeConfiguration" : "" ,
"updated" : "2018-03-30T12:40:39.577Z" ,
"runtimeEnvironment" : "batch-3.0" ,
"inputCatalogIds" : [ "optimized-map" , "sensor-data" ]
}
パイプライン バージョンを作成します パイプライン バージョンは、 HERE Platform Pipeline 内のパイプライン の実行可能形式を表す不変のエンティティです。 各パイプライン バージョンは、特定の パイプライン JAR ファイル およびパイプライン テンプレート から作成されます。 各パイプライン バージョンに、パイプライン は作成時に独自のパイプライン バージョン ID ( UUID )を割り当てます。 1 つの パイプライン JAR ファイル に基づいて、複数のパイプライン バージョンを定義できます。 ただし、同じパイプライン バージョン(およびパイプライン バージョン ID )の 2 つのインスタンスを同時に実行することはできません。
新しいパイプラインバージョンを作成するには、次の手順を実行します。
pipeline-config.conf
ファイルで、入力カタログの固定 ID からカタログ HRNS へのマッピングを指定します。
サンプル pipeline-config.conf
ファイル :
pipeline.config {
output-catalog { hrn = "hrn:here:data::org:example-output" }
input-catalogs {
optimized-map { hrn = "hrn:here:data::org:here-optimized-map-for-location-library-2" } ,
sensor-data { hrn = "hrn:here:data::org:olp-sdii-sample-berlin-2" }
}
}
注 固定 ID
パイプラインの実装では、固定 ID を使用して複数の入力カタログをバインドし、区別できます。 固定 ID は パイプライン テンプレートで定義 されます。 一方、 HRNS は パイプラインの各バージョン に定義 されているため、同じパイプライン テンプレート を複数の設定で再利用できます。
「 OLP パイプライン version create 」 コマンドを入力し pipeline-config.conf
、バージョン名、パイプライン ID 、パイプライン テンプレート ID 、およびファイルへのパスを指定します。
olp pipeline version create example-pipeline-version < YOUR_PIPELINE_ID> \
< YOUR_PIPELINE_TEMPLATE_ID> /user/data/pipeline-config.conf --scope < YOUR_PROJECT_HRN>
olp pipeline version create example-pipeline-version <YOUR_PIPELINE_ID> ^
<YOUR_PIPELINE_TEMPLATE_ID> /user/data/pipeline-config.conf --scope <YOUR_PROJECT_HRN>
パイプライン設定の詳細について は、「パイプライン設定 」を参照してください。
このバージョン ID は後でワークフローで必要になるので、メモしておいてください。
パイプライン のバージョンを確認するには olp pipeline version show
、コマンドを入力します。
olp pipeline version show \
< YOUR_PIPELINE_ID> < YOUR_PIPELINE_VERSION_ID> --scope < YOUR_PROJECT_HRN>
olp pipeline version show ^
<YOUR_PIPELINE_ID> <YOUR_PIPELINE_VERSION_ID> --scope <YOUR_PROJECT_HRN>
コマンドを実行すると、次の結果が表示されます。
Details of the olpclitestpipe pipeline:
ID 51e86a6c-a99c-450a-9e06-1b5609932ce9
version number 1
pipeline template ID ac42c041-98ff-43d9-b0c3-0002fa756f49
output catalog HRN hrn:here:data::org:example-output
input catalogs { "optimized-map" :
ID HRN
optimized-map hrn:here:data::org:here-optimized-map-for-location-library-2
sensor-data hrn:here:data::org:olp-sdii-sample-berlin-2
state ready
created 2018 -04-13T13:00:45.909Z
updated 2018 -04-13T13:01:18.346Z
high availability false
multi-region enabled false
schedule none
workers 1
worker units 1
worker resource profile HS1B
supervisor units 1
supervisor resource profile HS1B
パイプライン バージョンをアクティブ化します パイプライン を実行するには、いずれかのパイプライン バージョンをアクティブ化する必要があります。
パイプライン バージョンをアクティブ化するに Activate
は、パイプライン バージョン ID で操作を実行します。バッチ パイプライン をアクティブ化して実行 On-demand
( 今すぐ実行 ) すること Scheduled
も、アクティブ化することもできます。 Scheduled
オプションを使用すると、入力カタログが新しいデータで更新されたとき、またはタイムスケジュールに基づいてバッチ パイプライン バージョンを実行できます。
olp pipeline version activate
コマンドを入力し、パイプライン ID とパイプライン バージョン ID の両方を指定して、実行するパイプライン バージョンをアクティブ化 On-demand
します。
olp pipeline version activate \
< YOUR_PIPELINE_ID> < YOUR_PIPELINE_VERSION_ID> --scope < YOUR_PROJECT_HRN>
olp pipeline version activate ^
<YOUR_PIPELINE_ID> <YOUR_PIPELINE_VERSION_ID> --scope <YOUR_PROJECT_HRN>
コマンドを実行すると、次の結果が表示されます。
Pipeline version has been activated
Current state: scheduled
パイプラインバージョンの状態は、次のいずれかの方法で監視できます。
スケジューラのないパイプラインは 、アクティブ化後すぐに実行 状態に移行し、 実行が完了すると準備完了 状態に移行する必要があります。 スケジューラを含むパイプラインは 、いずれかの入力カタログが変更され て実行中 状態に移行するまで、スケジュール済み 状態で待機します。 実行後 、 スケジュール済み の状態に戻ります。
使用可能なコマンドの完全なリストを取得するには、を入力 olp --help
します。