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

一般的なパイプライン運用ライフサイクル

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

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

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

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

フェーズ 1 : パイプラインを作成しています

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

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

  1. フェーズ 1 では 、パイプラインのビジネス要件を定義します。 データソース、データタイプ / スキーマ、プロセスフロー、データ処理の望ましい結果などが含まれます。
  2. ビジネス要件から 、ワークフロー が決定 され、データスキーマが正式に定義され、データ変換アルゴリズムが開発されます。 アルゴリズムとデータの取り込み / 出力は、 Java または Scala 言語で実装され、パイプラインプロジェクトに統合されます。
  3. Java/Scala コードがコンパイルされます。
  4. その結果、データの取り込み、データ処理、および処理済みデータの出力のコードを含む JAR ファイル が作成されます。 Fat JAR ファイル を作成するために、必要なすべてのライブラリおよびその他のアセットが追加されます。 結果として得られるパイプライン JAR ファイル は、独自の、移動可能で再利用可能です。

    注 : 資格情報が必要です

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

これで、パイプライン作成プロセスのフェーズ 1 は完了です。

コメント

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

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

フェーズ 2: パイプラインを展開しています

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

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

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

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

    パッケージを作成します
    図 3.
  3. パイプラインバージョンの作成 - パイプラインの実行可能インスタンスを作成し、展開されたパイプラインの実行時要件を登録します。 このステップが正常に完了すると、パイプラインバージョン ID が割り当てられます。

    パイプラインバージョンを作成します
    図 4.
  4. パイプラインが展開され、アクティブ化できるようになりました。

パイプラインをアクティブ化します

パイプラインを実行するに は、いずれかのパイプラインバージョンをアクティブ化する必要があります。

パイプラインバージョンをアクティブ化するに は、パイプラインバージョン ID でアクティブ化操作が必要です。 バッチ パイプライン をアクティブ化 してオンデマンドで実行するか ( 今すぐ実行 ) 、またはスケジュールできます。 [ スケジュール済み ] オプションを使用すると、入力カタログが新しいデータで更新されたとき、またはタイムスケジュールに基づいてバッチ パイプラインバージョンを実行できます。 さまざまな実行モードの詳細については、以下のセクションを参照してください。

パイプラインをアクティブ化するための実行モード

パイプラインバージョンをアクティブ化するには、いくつかの実行モードを使用できます。 次の表に、これらの実行モードとその違いを示します。

パイプラインタイプ 実行モード : オンデマンド 実行モード : スケジュール済み 実行モード : タイムスケジュール
バッチ パイプラインが Scheduled 状態に入り、指定 Running した入力データカタログの処理を試みるためにただちに状態に変わります。 ジョブが完了 Ready すると、パイプラインは状態に戻ります。 入力カタログが新しいデータを受信しても、これ以上処理は行われません。 追加の処理は手動で開始する必要があります。 パイプラインバージョンは Scheduled 一定時間状態に入り、 Running 状態に変化して入力カタログ内の既存のデータの処理を開始します。 ジョブが完了すると Scheduled 、入力カタログで新しいデータが使用可能になるまで待機する状態に戻ります。 以降の実行ごとに、新しいデータのみが処理されます。 パイプラインが Scheduled 状態に入り 、次回のタイムスケジュールの試行時間を待ちます。 次回の試行 時間が経過 Running すると、ステータスが変更され、入力カタログの既存のデータの処理が開始されます。 ジョブが完了すると Scheduled 、 次回の試行を待機する状態 に戻ります。
ストリーム サポート対象外です。 現在、ストリーム パイプラインの終了時間を指定するオプションはありません。 そのため、一度だけ実行することはできません。 パイプラインは Scheduled 短時間状態で開始 Running され、指定された入力カタログからデータストリームの処理を開始するために状態に変更されます。 パイプラインは Running 、一時停止、キャンセル、または非アクティブ化されるまで実行を続行します(状態のままです)。 ストリームパイプラインがデータを継続的に処理するため、サポートされません。

パイプラインバージョンをアクティブ化すると、パイプラインバージョンの実行を開始するようにパイプラインサービスに要求が送信されます。 実行を開始するジョブが作成され、ジョブ ID が生成されます。 ジョブが開始されると、パイプラインサービスによって、ジョブのすべてのログの URL が返されます。

展開前からランタイム環境への展開まで、一般的なパイプラインのライフサイクル

注 : ログ URL

Web ポータルまたは CLI からアクティブ化が完了すると、ロギング URL が自動的に返されます。 パイプライン API を使用する場合は、 URL を取得するために別のリクエストを作成する必要があります。

注 : 複数のパイプラインバージョン

同じ テンプレート または 別のテンプレートを使用して、追加のパイプラインバージョンを作成できます。 各パイプラインバージョン は、固有 のパイプラインバージョン ID で識別されます。

注意 : パイプラインあたりの制限数

パイプラインは、一度に 1 つのパイプラインバージョンのみを実行 / アクティブにできます。

このライフサイクルは、バッチパイプラインとストリームパイプラインの両方に、わずかなバリエーションで適用されます。

情報 : パイプライン ID

パイプラインの展開は、パイプラインサービスでそのパイプラインのインスタンスを作成することから始まることに注意してください。 そのインスタンスには、識別のための UUID が割り当て pipeline IDられます。 それ以外のものはすべてパイプラインサービスによって管理 pipeline IDされているため、変更することはできません。変更することはできません。 に関連付けられているメタデータ pipeline ID は、パイプラインインスタンスについて簡単に説明できる手段として使用されます。 そのため、名前と説明は変更できますが、パイプラインサービスについては同じパイプラインインスタンスです。

注 : 展開の詳細

このすべての機能の詳細について は、「展開」セクションを参照してください。

フェーズ 3: 実行中のパイプラインを管理します

パイプラインがアクティブ化されて実行されると、次の操作に応答します。

  • キャンセル
  • 非アクティブ化
  • 削除
  • 一時停止
  • 再開
  • 表示( Show )
  • アップグレード

パイプラインバージョンの現在の状態を確認するには、 Web ポータルで確認するか、 CLI コマンドまたはパイプライン API を使用します。

基本的なパイプラインランタイム環境は次のようになります。

展開前からランタイム環境への展開まで、一般的なパイプラインのライフサイクル
図 5. ランタイム環境

パイプラインバージョンを終了します

実行中のパイプラインバージョンは、次の操作によって終了できます。

  • 一時停止
    1. バッチ パイプラインバージョンの場合、現在のジョブは完了し、今後のジョブは一時停止されます。 そのため、一時停止がすぐには発生しない可能性があります。
    2. オンデマンドで実行されているバッチ パイプラインバージョンでは、一時停止操作は使用できません。 このようなパイプライン はキャンセルのみが可能です。
    3. ストリーム パイプラインバージョンの場合、現在の状態が保存され、ジョブが正常に終了します。
  • キャンセル
    1. バッチまたはストリーム パイプラインバージョンの場合 Ready 、実行中のジョブは保存状態でただちに終了され、パイプラインバージョンが状態に移行します。
  • Terminate (internal) - 内部操作のみです。 現在のジョブが 成功 または 失敗して終了しました。 パイプラインバージョンが再度実行されるように設定されている場合、 スケジュール済み状態に設定されます 。設定されていない場合、準備完了状態に設定されます。

注 : 一時停止したパイプラインバージョンを再開します

一時停止したパイプラインバージョンは Resume 、操作を使用して再起動できます。 ストリーム パイプラインバージョンの場合 、ジョブは一時停止したジョブの保存済み状態から再開されます。 バッチ パイプラインバージョンの場合、パイプラインバージョンの状態がに変更 Scheduled され、次のジョブが実行モードに基づいて作成されます。
キャンセル されたパイプラインバージョン は再開できません。 代わり に、Activated実行中またはスケジュール済みの状態に戻す必要があります。

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

パイプライン、その一連のパイプラインバージョン、および関連するコンテンツを削除するに は、このdeleteコマンドを PipelineID に適用します。 いいえ 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 を使用するようにします。 詳細については、『パイプライン開発者ガイド』の「ストリーム処理のベストプラクティス」を参照してください。

も参照してください

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

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