4.2. Data Index サービス


Data Index サービスは、ワークフローインスタンスとそれに関連付けられたジョブに関連するデータを保存する専用のサポートサービスです。このサービスは、GraphQL エンドポイントを提供します。これにより、ユーザーはそのデータをクエリーできます。

Data Index サービスは、イベントを介して受信するデータを処理します。このイベントは、任意のワークフローから、または直接 Job サービスから発生する場合があります。

Data Index は、ワークフローからの CloudEvents メッセージを消費する Apache Kafka または Knative Eventing をサポートします。このイベントデータをインデックス化してデータベースに格納し、GraphQL 経由でアクセスできるようにします。これらのイベントは、ワークフロー実行に関する詳細情報を提供します。Data Index サービスは、OpenShift Serverless Logic の検索、インサイトおよび管理機能の中心となります。

Data Index サービスの主な機能は以下のとおりです。

  • 柔軟なデータ構造
  • 分散可能なクラウド対応形式
  • Apache Kafka、Knative、および CloudEvents を介したワークフローとのメッセージベースの通信
  • 強力な GraphQL ベースのクエリー API
注記

OpenShift Serverless Operator を使用してワークフローをデプロイする場合は、Data Index サービスを手動でインストールしたり、設定したりする必要はありません。Operator は、各ワークフローがこれに接続するために必要なすべての設定を自動的に管理します。

4.2.1. ワークフローインスタンスとジョブの GraphQL クエリー

ワークフローインスタンスとジョブに関するデータを取得するには、GraphQL クエリーを使用できます。

4.2.1.1. ワークフローインスタンスからのデータの取得

次のクエリー例を使用して、特定のワークフローインスタンスに関する情報を取得できます。

{
  ProcessInstances {
    id
    processId
    state
    parentProcessInstanceId
    rootProcessId
    rootProcessInstanceId
    variables
    nodes {
      id
      name
      type
    }
  }
}

4.2.1.2. ジョブからのデータの取得

以下のクエリー例を使用して、特定のジョブインスタンスからデータを取得できます。

{
  Jobs {
    id
    status
    priority
    processId
    processInstanceId
    executionCounter
  }
}

4.2.1.3. where パラメーターを使用してクエリーの結果をフィルタリングする

where パラメーターを使用してクエリーの結果をフィルタリングし、ワークフロー属性に基づいて複数の組み合わせを許可できます。

状態別にフィルタリングするクエリーの例

{
  ProcessInstances(where: {state: {equal: ACTIVE}}) {
    id
    processId
    processName
    start
    state
    variables
  }
}

ID 別にフィルタリングするクエリーの例

{
  ProcessInstances(where: {id: {equal: "d43a56b6-fb11-4066-b689-d70386b9a375"}}) {
    id
    processId
    processName
    start
    state
    variables
  }
}

デフォルトでは、フィルターは AND Operator を使用して組み合わせています。この動作は、フィルターを AND Operator または OR Operator と組み合わせることで変更できます。

フィルターを OR Operator と組み合わせるクエリーの例

{
  ProcessInstances(where: {or: {state: {equal: ACTIVE}, rootProcessId: {isNull: false}}}) {
    id
    processId
    processName
    start
    end
    state
  }
}

フィルターを AND Operator および OR Operator と組み合わせるクエリーの例

{
  ProcessInstances(where: {and: {processId: {equal: "travels"}, or: {state: {equal: ACTIVE}, rootProcessId: {isNull: false}}}}) {
    id
    processId
    processName
    start
    end
    state
  }
}

属性タイプに応じて、次の使用可能な Operator を使用できます。

属性タイプ利用可能な演算子

String array

  • contains: 文字列
  • containsAll: 文字列の配列
  • containsAny: 文字列の配列
  • isNull: ブール値 (true または false)

String

  • in: 文字列の配列
  • like: 文字列
  • isNull: ブール値 (true または false)
  • equal: 文字列

ID

  • in: 文字列の配列
  • isNull: ブール値 (true または false)
  • equal: 文字列

Boolean

  • isNull: ブール値 (true または false)
  • equal: ブール値 (true または false)

数値

  • in: 整数の配列
  • isNull: ブール値
  • equal: 整数
  • greaterThan: 整数
  • greaterThanEqual: 整数
  • lessThan: 整数
  • lessThanEqual: 整数
  • between: 数値の範囲
  • from: 整数
  • to: 整数

Date

  • isNull: ブール値 (true または false)
  • equal: 日時
  • greaterThan: 日時
  • greaterThanEqual: 日時
  • lessThan: 日時
  • lessThanEqual: 日時
  • between: 日付の範囲
  • from: 日時
  • to: 日時

4.2.1.4. orderBy パラメーターを使用してクエリー結果をソートする

orderBy パラメーターを使用して、ワークフロー属性に基づいてクエリー結果をソートできます。昇順 (ASC) または降順 (DESC) でソート順序を指定することもできます。指定した順序で複数の属性が適用されます。

開始時刻を ASC 順序でソートするクエリーの例

{
  ProcessInstances(where: {state: {equal: ACTIVE}}, orderBy: {start: ASC}) {
    id
    processId
    processName
    start
    end
    state
  }
}

4.2.1.5. pagination パラメーターを使用して結果の数を制限する

pagination パラメーターを使用して、返される結果の数を制御し、オフセットを指定できます。

オフセット 0 から始まる結果を 10 に制限するクエリーの例

{
  ProcessInstances(where: {state: {equal: ACTIVE}}, orderBy: {start: ASC}, pagination: {limit: 10, offset: 0}) {
    id
    processId
    processName
    start
    end
    state
  }
}

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.