パイプラインのライフサイクル 一般的なパイプライン の運用ライフサイクルは、一貫したパターンに従います。 ポータル GUI 、 CLI 、または API を使用する独自のアプリケーションのいずれを使用する場合も、このパターンには次の 3 つの主要なフェーズがあります。
パイプライン を作成します パイプライン を展開します パイプライン を管理します 最初の 2 つの手順を図 1 に示します。 フェーズ 1 はローカルの開発環境で行います。 フェーズ 2 は、ポータル GUI 、 OLP CLI 、または パイプライン REST API を使用して独自のアプリケーションを使用して実行できます。
図 1. OLP パイプラインのライフサイクル パイプライン を作成します フェーズ 1 の目的 は、パイプライン JAR ファイル を作成することです。 この JAR ファイル には、パイプラインフレームワーク、データの取り込み、データ出力、および目的のデータ処理ワークフローを実装するために必要なすべてのデータ変換ロジックのコードが含まれています。
この作業を簡素化するために、 HERE では、ボイラープレートコードのできるだけ多くを提供するプロジェクトの原型 と、その他すべてを含むフレームワークを提供しています。 さまざま な専門家が 、バッチ パイプライン またはストリーム パイプライン のいずれかのプロジェクトを設定しています。 これらの原型は、プラットフォーム 内の適切なフレームワークでパイプライン を実行するために必要なすべてのインターフェイスコードも提供します。 提供する必要があるのはデータ処理コードのみです。 パイプライン JAR ファイル は、実際には、パイプライン で必要とされるすべてのライブラリおよびその他のアセットを含む Fat JAR ファイル です。
パイプライン のビジネス要件 ( データソース、データタイプ / スキーマ、プロセスフロー、およびデータ処理の目的の結果 ) を定義します。
ビジネス要件に基づいて、ワークフロー を決定し、データスキーマ を正式に定義して、データ変換アルゴリズム を開発します。 アルゴリズムとデータの取り込み / 出力は、 Java または Scala 言語で実装され、パイプライン プロジェクトに統合されます。
Java/Scala コードがコンパイルされます。 その結果、データの取り込み、データ処理、および処理済みデータの出力のコードを含む JAR ファイル が作成されます。 Fat JAR ファイル を作成するために、必要なすべてのライブラリおよびその他のアセットが追加されます。 結果として得られる パイプライン JAR ファイル は、独自の、移動可能で再利用可能です。
詳細について は、「パイプラインの作成 」を参照してください。
パイプライン を展開します パイプライン JAR ファイルを使用してパイプライン を配備します。 パイプライン JAR ファイルは、バッチ処理またはストリーム 処理のいずれかに対応しています。 また、特定のデータスキーマ に特定のデータ処理ワークフローを実装するように設計されています。 展開時に指定されたランタイムの考慮事項もあります。
展開するパイプライン JAR ファイル を選択し、次の手順を実行して展開の準備を行います。
パイプラインオブジェクトの作成 - パイプラインのインスタンスを設定し、パイプライン ID を取得します。
図 2. パイプライン ID テンプレートの作成 - パイプライン JAR ファイル をアップロードしてテンプレート ID を取得します。 入力および出力カタログ識別子を指定します。
図 3. テンプレート ID パイプライン バージョンの作成 - パイプライン の実行可能インスタンスを作成し、展開されたパイプライン の実行時要件を登録します。 このステップが正常に完了すると、パイプライン バージョン ID が割り当てられます。 パイプライン が展開され、アクティブ化できるようになりました。
図 4. パイプライン バージョン ID パイプライン をアクティブ化します パイプライン を実行するには、いずれかのパイプライン バージョンをアクティブ化する必要があります。
パイプライン バージョンをアクティブ化するには、パイプライン バージョン ID でアクティブ化 操作を実行します。バッチ パイプラインをアクティブ化してオンデマンド で実行するか ( 今すぐ実行 ) 、またはスケジュール できます。 [ スケジュール済み ] オプションを使用すると、入力カタログが新しいデータで更新されたとき、またはタイムスケジュールに基づいてバッチ パイプライン バージョンを実行できます。 さまざまな実行モードの詳細については、以下を参照してください。
パイプライン をアクティブ化するための実行モード パイプライン バージョンをアクティブ化するには、次の表に示すように、いくつかの実行モードを使用できます。
パイプラインタイプ 実行モード : オンデマンド 実行モード : スケジュール済み 実行モード : タイムスケジュール バッチ パイプラインが Scheduled
状態に入り、指定 Running
した入力データカタログの処理を試みるためにただちに状態に変わります。 ジョブが完了 Ready
すると、パイプラインは状態に戻ります。 入力カタログが新しいデータを受信しても、これ以上処理は行われません。 追加の処理は手動で開始する必要があります。 パイプラインバージョンは Scheduled
一定時間状態に入り、 Running
状態に変化して入力カタログ内の既存のデータの処理を開始します。 ジョブが完了すると Scheduled
、入力カタログで新しいデータが使用可能になるまで待機する状態に戻ります。 以降の実行ごとに、新しいデータのみが処理されます。 パイプラインが Scheduled
状態に入り 、次回 のタイムスケジュールの試行時間を待ちます。 次回の試行 時間が経過 Running
すると、ステータスが変更され、入力カタログの既存のデータの処理が開始されます。 ジョブが完了すると Scheduled
、 次回の試行を待機する状態 に戻ります。 ストリーム サポート対象外です。 現在、ストリーム パイプラインの終了時間を指定するオプションはありません。 そのため、一度だけ実行することはできません。 パイプラインは Scheduled
短時間状態で開始 Running
され、指定された入力カタログからデータストリームの処理を開始するために状態に変更されます。 パイプラインは Running
、一時停止、キャンセル、または非アクティブ化されるまで実行を続行します(状態のままです)。 ストリームパイプラインがデータを継続的に処理するため、サポートされません。
パイプライン バージョンをアクティブ化すると、パイプライン バージョンの実行を開始するようにパイプライン サービスに要求が送信されます。 実行を開始するジョブ が作成され、ジョブ ID が生成されます。 ジョブが開始されると、パイプライン サービスによって、ジョブのすべてのログの URL が返されます。
注 : 展開のヒント Web ポータル または CLI からアクティブ化すると、ロギング URL が自動的に返されます。パイプライン API を使用する場合は、 URL を取得するために別のリクエストを作成する必要があります。
同じ テンプレート または 別のテンプレート を使用して、追加のパイプラインバージョン を作成できます。 各パイプラインバージョン は、固有 のパイプラインバージョン ID で識別 されます。
パイプライン は、一度に 1 つのパイプライン バージョンのみを実行 / アクティブにできます。 このライフサイクルは、バッチパイプラインとストリーム パイプラインの両方に、わずかなバリエーションで適用されます。
パイプラインの展開は、パイプラインサービスでそのパイプラインのインスタンスを作成することから始まることに注意してください。 そのインスタンスには、識別のための UUID が割り当て pipeline ID
られます。 それ以外のものはすべてパイプラインサービスによって管理 pipeline ID
されているため、変更することはできません。変更することはできません。 に関連付けられているメタデータ pipeline ID
は、パイプラインインスタンスについて簡単に説明できる手段として使用されます。 そのため、名前と説明は変更できますが、パイプラインサービスについては同じパイプラインインスタンスです。
このすべての機能の詳細については、「展開」 を参照してください。
パイプライン を管理します パイプライン がアクティブ化されて実行されると、次の操作に応答します。
キャンセル 非アクティブ化 削除 一時停止 再開 表示( Show ) アップグレード パイプライン バージョンの現在の状態を確認するには、 Web ポータル で確認するか、 CLI コマンドまたは パイプライン API を使用します。
基本的なパイプラインランタイム環境は次のようになります。
図 5. ランタイム環境 パイプライン バージョンを終了します 実行中のパイプライン バージョンは、次の操作によって終了できます。
一時停止
バッチ パイプラインバージョンの場合、現在のジョブは完了し、今後のジョブは一時停止されます。 そのため、一時停止がすぐには発生しない可能性があります。
オンデマンドで実行されているバッチ パイプラインバージョンでは、一時停止操作は使用できません 。 このようなパイプライン はキャンセルのみが可能 です。
ストリーム パイプラインバージョンの場合、現在の状態が保存され、ジョブが正常に終了します。
キャンセル
バッチまたはストリーム パイプラインバージョンの場合 Ready
、実行中のジョブは保存状態でただちに終了され、パイプラインバージョンが状態に移行します。 終了 ( 内部 )
これは内部操作のみです。 現在のジョブが 成功 または 失敗して終了 しました。 パイプライン バージョンが再度実行されるように設定されている場合、 スケジュール 済み状態に設定されます。設定されていない場合、準備完了 状態に設定されます。
注 : 一時停止したパイプライン バージョンを再開します 一時停止したパイプライン バージョンは Resume
、操作を使用して再起動できます。 ストリーム パイプライン バージョンの場合、ジョブは一時停止したジョブの保存済み状態 から再開されます。 バッチ パイプライン バージョンの場合、パイプライン バージョンの状態がに変更 Scheduled
され、次のジョブが実行モードに基づいて作成されます。 キャンセル されたパイプライン バージョン は再開でき ません。 代わりに、実行中 またはスケジュール済み の状態に戻すために Activated
である必要があります。
パイプライン を削除します パイプライン 、その一連のパイプライン バージョン、および関連するコンテンツを削除するには、 PipelineID にdelete
コマンドを適用します。running
および paused
のパイプライン バージョンは削除できません。つまり、削除するすべてのパイプライン バージョンがReady
状態にある必要があります。 1 つ以上のパイプライン バージョンが running
またはの場合、エラーが返さ paused
れます。
CLI を使用してパイプラインを削除するには、次のコマンドを使用します。
olp pipeline delete < pipeline-id> [command options]
詳細については 、『コマンド ライン インターフェース開発者ガイド 』を参照してください。
API を使用してパイプラインを削除するに delete
は、コマンドを使用します。 詳細については 、『パイプライン API リファレンス 』を参照してください。
パイプライン をアップグレードします パイプライン をアップグレードする目的は、既存のパイプライン バージョンを、元のバージョンとは異なる パイプライン JAR ファイル または設定に基づいた新しいパイプライン バージョンに置き換えることです。
パイプラインのアップグレードは、ストリームパイプラインとバッチパイプラインの両方で可能ですが、次の点で若干の違いがあります。
ストリーム パイプラインの場合、ジョブのセーブポイントが取得 RUNNING
され、処理がただちに終了されます。 セーブポイントは、アップグレードされたパイプライン バージョンに渡され、から処理が開始されます。 バッチ パイプラインの場合、実行中のジョブは終了しません。 代わりに、処理を完了できます。この処理が完了すると、アップグレードされたパイプライン バージョンが状態SCHEDULED
になっている間、パイプライン バージョンが状態READY
に戻ります。 つまり、次回パイプラインが実行されるようにスケジュールされるまで、アップグレードは有効になりません。 アップグレード状態 ストリーム パイプラインまたはバッチパイプラインは、バージョンが RUNNING
またはのステートにある場合にのみアップグレードでき PAUSED
ます。 アップグレードに使用されたバージョンは状態になります READY
。これは、その状態にないバージョンのパイプラインのみが存在する可能性があるためです。 状態のパイプラインをアップグレードする SCHEDULED
場合は、非アクティブ化してからアップグレード先のバージョンをアクティブ化するだけでかまいません。
アップグレードシーケンス 既存または新しい テンプレート を使用して、新しいパイプライン バージョン を作成します。
ポータルまたは CLI からアップグレード 操作を実行します。
アップグレードプロセスの一部として、古いパイプラインバージョンが一時停止され、新しいパイプラインバージョンがアクティブ化されます。 数分後に、古いパイプラインバージョンが Ready
状態に移行し、新しいパイプラインバージョンがScheduled
状態に移行します。
プロセスについては、以下の図を参照してください。
図 6. アップグレードシーケンス パイプライン を更新します パイプラインインスタンスに関連付けられている名前、説明、連絡先の電子メールプロパティを変更できます。 他のすべてのプロパティは更新できません。 これらの変更は、 CLI コマンドの パイプライン update を使用して行い ます。 一部のメタデータを変更でき pipeline update
、各メタデータ項目をコマンドのオプションのパラメータとして再定義できます。 詳細については 、『コマンド ライン インターフェース開発者ガイド 』を参照してください。
シーケンスを更新します 実行中のパイプライン バージョンをキャンセル します。 ジョブは処理を停止し、パイプライン バージョンを準備完了 状態に移行します。 CLI を使用 してパイプラインアップデート コマンドを発行し、変更するオプションのパラメータを含めます。 パイプラインインスタンスのメタデータが更新さ pipeline ID
れ、に関連付けられているパイプラインバージョンが、関連付けられている新しいメタデータで実行できるようになりました。 グループ ID/ プロジェクト ID パイプライン を作成する場合は、グループ ID を指定してグループに割り当てるか、またはプロジェクト ID を指定してプロジェクトを割り当てる必要があります。グループまたはプロジェクトの一部であるユーザーおよびアプリケーションのみがパイプライン にアクセスできます。 パイプラインを非公開にするには、自分自身または登録済みユーザーのグループへのアクセスを制限します。 これらのユーザーは、グループ ID またはプロジェクト ID で識別されます。パイプライン で作業するには、有効なグループ ID またはプロジェクト ID が必要です。 詳細について は、『 Identity & Access Management Guide 』 を参照してください。
注意 : ストリーム パイプラインでは、一意のアプリケーション ID を使用する必要があります アプリケーション ID 、レイヤー ID 、およびカタログ ID の特定の組み合わせに同じグループ ID を使用すると、データの一部消費の問題が発生する可能性があります。 この状況を回避するには、ストリーム パイプラインごとに異なるグループ( HERE アカウントグループ)を作成して、各パイプラインが一意のアプリケーション ID を使用するようにします。 詳細については、『パイプライン開発者ガイド』の「ストリーム処理のベストプラクティス 」を参照してください。
も参照してください