パイプラインのライフサイクル

一般的なパイプライン の運用ライフサイクルは、一貫したパターンに従います。 ポータル GUI 、 CLI 、または API を使用する独自のアプリケーションのいずれを使用する場合も、このパターンには次の 3 つの主要なフェーズがあります。

  1. パイプライン を作成します
  2. パイプライン を展開します
  3. パイプライン を管理します

最初の 2 つの手順を図 1 に示します。 フェーズ 1 はローカルの開発環境で行います。 フェーズ 2 は、ポータル GUI 、 OLP CLI 、または パイプライン REST API を使用して独自のアプリケーションを使用して実行できます。

パイプラインの作成と展開のプロセスダイアグラム
図 1. OLP パイプラインのライフサイクル

パイプライン を作成します

フェーズ 1 の目的 は、パイプライン JAR ファイル を作成することです。 この JAR ファイル には、パイプラインフレームワーク、データの取り込み、データ出力、および目的のデータ処理ワークフローを実装するために必要なすべてのデータ変換ロジックのコードが含まれています。

この作業を簡素化するために、 HERE では、ボイラープレートコードのできるだけ多くを提供するプロジェクトの原型と、その他すべてを含むフレームワークを提供しています。 さまざま な専門家が 、バッチ パイプライン またはストリーム パイプライン のいずれかのプロジェクトを設定しています。 これらの原型は、プラットフォーム 内の適切なフレームワークでパイプライン を実行するために必要なすべてのインターフェイスコードも提供します。 提供する必要があるのはデータ処理コードのみです。 パイプライン JAR ファイル は、実際には、パイプライン で必要とされるすべてのライブラリおよびその他のアセットを含む Fat JAR ファイル です。

  1. パイプライン のビジネス要件 ( データソース、データタイプ / スキーマ、プロセスフロー、およびデータ処理の目的の結果 ) を定義します。

  2. ビジネス要件に基づいて、ワークフローを決定し、データスキーマ を正式に定義して、データ変換アルゴリズムを開発します。 アルゴリズムとデータの取り込み / 出力は、 Java または Scala 言語で実装され、パイプライン プロジェクトに統合されます。

  3. Java/Scala コードがコンパイルされます。 その結果、データの取り込み、データ処理、および処理済みデータの出力のコードを含む JAR ファイル が作成されます。 Fat JAR ファイル を作成するために、必要なすべてのライブラリおよびその他のアセットが追加されます。 結果として得られる パイプライン JAR ファイル は、独自の、移動可能で再利用可能です。

注 : 資格情報が必要です

使用する前に、すべてのパイプライン アプリケーションを HERE platform に登録する必要があります。 このプロセスについては 、『 Identity & Access Management Guide』を参照してください。 具体的な手順については、「 アプリを管理する」を参照してください。

HERE に示されているフェーズ 1 のプロセスは、実際にはフェーズ 2 よりも複雑です。これは、変換アルゴリズムを設計してコンパイル可能なコードに変換するのは簡単なタスクではないためです。 また、このプロセスでは、パイプラインコードのテスト、確認、または検証の補助的な手順についても扱いません。
バッチ パイプラインの作成プロセスの詳細については 『データ プロセッシング ライブラリ開発者ガイド Using both Java and Scala』を参照してください。

詳細について は、「パイプラインの作成」を参照してください。

パイプライン を展開します

パイプライン JAR ファイルを使用してパイプライン を配備します。 パイプライン JAR ファイルは、バッチ処理またはストリーム 処理のいずれかに対応しています。 また、特定のデータスキーマ に特定のデータ処理ワークフローを実装するように設計されています。 展開時に指定されたランタイムの考慮事項もあります。

展開するパイプライン JAR ファイル を選択し、次の手順を実行して展開の準備を行います。

  1. パイプラインオブジェクトの作成 - パイプラインのインスタンスを設定し、パイプライン ID を取得します。

    パイプラインオブジェクトを作成します
    図 2. パイプライン ID
  2. テンプレートの作成 - パイプライン JAR ファイル をアップロードしてテンプレート ID を取得します。 入力および出力カタログ識別子を指定します。

    パッケージを作成します
    図 3. テンプレート ID
  3. パイプライン バージョンの作成 - パイプライン の実行可能インスタンスを作成し、展開されたパイプライン の実行時要件を登録します。 このステップが正常に完了すると、パイプライン バージョン 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 である必要があります。

パイプライン を削除します

パイプライン 、その一連のパイプライン バージョン、および関連するコンテンツを削除するには、 PipelineIDdeleteコマンドを適用します。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 場合は、非アクティブ化してからアップグレード先のバージョンをアクティブ化するだけでかまいません。

アップグレードシーケンス

  1. 既存または新しい テンプレート を使用して、新しいパイプライン バージョンを作成します。

  2. ポータルまたは CLI からアップグレード操作を実行します。

アップグレードプロセスの一部として、古いパイプラインバージョンが一時停止され、新しいパイプラインバージョンがアクティブ化されます。 数分後に、古いパイプラインバージョンが Ready状態に移行し、新しいパイプラインバージョンがScheduled 状態に移行します。

プロセスについては、以下の図を参照してください。

パイプライン アップグレードプロセスの実行のシーケンスダイアグラム
図 6. アップグレードシーケンス

パイプライン を更新します

パイプラインインスタンスに関連付けられている名前、説明、連絡先の電子メールプロパティを変更できます。 他のすべてのプロパティは更新できません。 これらの変更は、 CLI コマンドの パイプライン update を使用して行います。 一部のメタデータを変更でき pipeline update 、各メタデータ項目をコマンドのオプションのパラメータとして再定義できます。 詳細については 、『コマンド ライン インターフェース開発者ガイド』を参照してください。

シーケンスを更新します

  1. 実行中のパイプライン バージョンをキャンセルします。 ジョブは処理を停止し、パイプライン バージョンを準備完了状態に移行します。
  2. CLI を使用 してパイプラインアップデートコマンドを発行し、変更するオプションのパラメータを含めます。
  3. パイプラインインスタンスのメタデータが更新さ pipeline ID れ、に関連付けられているパイプラインバージョンが、関連付けられている新しいメタデータで実行できるようになりました。

グループ ID/ プロジェクト ID

パイプライン を作成する場合は、グループ ID を指定してグループに割り当てるか、またはプロジェクト ID を指定してプロジェクトを割り当てる必要があります。グループまたはプロジェクトの一部であるユーザーおよびアプリケーションのみがパイプライン にアクセスできます。 パイプラインを非公開にするには、自分自身または登録済みユーザーのグループへのアクセスを制限します。 これらのユーザーは、グループ ID またはプロジェクト ID で識別されます。パイプライン で作業するには、有効なグループ ID またはプロジェクト ID が必要です。 詳細について は、『 Identity & Access Management Guide 』を参照してください。

注意 : ストリーム パイプラインでは、一意のアプリケーション ID を使用する必要があります

アプリケーション ID 、レイヤー ID 、およびカタログ ID の特定の組み合わせに同じグループ ID を使用すると、データの一部消費の問題が発生する可能性があります。 この状況を回避するには、ストリーム パイプラインごとに異なるグループ( HERE アカウントグループ)を作成して、各パイプラインが一意のアプリケーション ID を使用するようにします。 詳細については、『パイプライン開発者ガイド』の「ストリーム処理のベストプラクティス」を参照してください。

も参照してください

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

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