データ・フローの管理

データ・フローの管理方法(データを管理するための適切なポリシーおよびストレージの設定、使用可能なメトリックなど)について学習します。

データ・フロー・イベント

イベントは、一部のサービス操作で発行され、その操作に関する情報を伝達するJSONファイルです。

Oracle Cloud Infrastructure Eventsのルールの管理の詳細は、イベントのルールの管理を参照してください。

データ・フローは:
  • データ・フロー・アプリケーションの作成
  • データ・フロー・アプリケーションが削除されます
  • データ・フロー・アプリケーションの更新
  • データ・フロー実行の開始
  • データ・フロー実行の終了

これらのイベントは、イベント・サービスで表示できます。JSONファイルの電子メール送信やファンクションのトリガーなど、これらのイベントが生成されたときにアクションを実行するルールを設定します。イベント・タイプに基づいてルールを作成する場合は、サービス名としてData Flowを選択します。使用可能なアクションについては、Events Overviewのイベントドキュメントで説明されています。

アプリケーションのイベント・タイプ

データ・フローは、アプリケーションの作成、削除または更新時に、JSONファイルの形式でイベントを発行します。

アプリケーションは、Sparkアプリケーション、その依存関係、デフォルト・パラメータおよびデフォルト・ランタイム・リソース仕様で構成される、無制限に再利用可能なSparkアプリケーション・テンプレートです。開発者がデータ・フロー・アプリケーションを作成すると、開発者はだれもがデータ・フロー・アプリケーションを使用でき、デプロイ、設定または実行の複雑さを気にする必要がありません。
アプリケーション・イベント
フレンドリ名 説明 イベント・タイプ
アプリケーション- 作成 データ・フロー・アプリケーションの作成時に発行されます。 com.oraclecloud.dataflow.createapplication
アプリケーション- 削除 データ・フロー・アプリケーションが削除されたときに発行されます。 com.oraclecloud.dataflow.deleteapplication
アプリケーション- 更新 データ・フロー・アプリケーションの更新時に発行されます。 com.oraclecloud.dataflow.updateapplication
アプリケーションの作成イベントの例

正常に完了したデータ・フロー・アプリケーション作成イベントのリファレンス・イベント・ファイルを次に示します。

{
  "id": "ocid1.eventschema.oc1.phx.abyhqljr7e6dxrsvyp2rowvkgqynfzjuo5gjiqo5gnkfcq7fzmaf7nzskk2q",
  "exampleEvent": {
    "eventType": "com.oraclecloud.dataflow.createapplication",
    "cloudEventsVersion": "0.1",
    "eventTypeVersion": "2.0",
    "source": "dataflow",
    "eventTime": "2022-07-17T02:17:41Z",
    "contentType": "application/json",
    "data": {
      "eventGroupingId": "unique_id",
      "eventName": "CreateApplication",
      "compartmentId": "ocid1.compartment.oc1.unique_id",
      "compartmentName": "example_compartment",
      "resourceName": "application_name",
      "resourceId": "ocid1.dataflowapplication.oc1.phx.unique_id",
      "availabilityDomain": "AD",
      "definedTags": {
        "Oracle-Tags": {
          "CreatedBy": "user_name",
          "CreatedOn": "2022-07-17T02:17:40.799Z"
        }
      },
      "request": {
        "id": "unique_id",
        "path": "/20200129/applications",
        "action": "POST",
        "parameters": {},
        "headers": {}
      },
      "response": {
        "status": "200",
        "responseTime": "2022-07-17T02:17:41Z",
        "headers": {},
        "payload": {},
        "message": "application_name CreateApplication succeeded"
      }
    },
    "eventID": "unique_id",
    "extensions": {
      "compartmentId": "ocid1.compartment.oc1..example_compartment"
    }
  },
  "serviceName": "Data Flow",
  "displayName": "Application - Create",
  "additionalDetails": [],
  "timeCreated": "2022-07-18T04:01:56Z"
}
アプリケーション・イベントの削除の例

正常に完了したデータ・フロー・アプリケーション削除イベントのリファレンス・イベント・ファイルを次に示します。

{
  "id": "ocid1.eventschema.oc1.phx.abyhqljrhnwwfto2ed3ytl7xaumc4qrjzsuumfagptovb5rhjjp266cryfpa",
  "exampleEvent": {
    "eventType": "com.oraclecloud.dataflow.deleteapplication",
    "cloudEventsVersion": "0.1",
    "eventTypeVersion": "2.0",
    "source": "dataflow",
    "eventTime": "2022-07-18T00:10:14Z",
    "contentType": "application/json",
    "data": {
      "eventGroupingId": "unique_id",
      "eventName": "DeleteApplication",
      "compartmentId": "ocid1.compartment.oc1.unique_id",
      "compartmentName": "example-compartment",
      "resourceName": "",
      "resourceId": "ocid1.dataflowapplication.oc1.phx.unique_id",
      "availabilityDomain": "AD",
      "definedTags": {
        "Oracle-Tags": {
          "CreatedBy": "user_name",
          "CreatedOn": "2022-07-17T02:17:40.799Z"
        }
      },
      "request": {
        "id": "unique_id",
        "path": "/20200129/applications/ocid1.dataflowapplication.oc1.phx.unique_id",
        "action": "DELETE",
        "parameters": {},
        "headers": {}
      },
      "response": {
        "status": "204",
        "responseTime": "2022-07-18T00:10:14Z",
        "headers": {},
        "payload": {},
        "message": "DeleteApplication succeeded"
      }
    },
    "eventID": "unique_id",
    "extensions": {
      "compartmentId": "ocid1.compartment.oc1..unique_id"
    }
  },
  "serviceName": "Data Flow",
  "displayName": "Application - Delete",
  "additionalDetails": [],
  "timeCreated": "2022-07-18T04:01:56Z"
}
アプリケーション・イベントの更新の例

正常に完了したデータ・フロー・アプリケーション更新イベントのリファレンス・イベント・ファイルを次に示します。

{
  "id": "ocid1.eventschema.oc1.phx.abyhqljrf42fatkajcznyzhdilv4c3sivrffbfgi45wm656tyqzwuf6ndwpa",
  "exampleEvent": {
    "eventType": "com.oraclecloud.dataflow.updateapplication",
    "cloudEventsVersion": "0.1",
    "eventTypeVersion": "2.0",
    "source": "dataflow",
    "eventTime": "2022-07-18T00:07:08Z",
    "contentType": "application/json",
    "data": {
      "eventGroupingId": "/unique_id",
      "eventName": "UpdateApplication",
      "compartmentId": "ocid1.compartment.oc1..unique_id",
      "compartmentName": "example-compartment",
      "resourceName": "application_name",
      "resourceId": "ocid1.dataflowapplication.oc1.phx.unique_id",
      "availabilityDomain": "AD",
      "freeformTags": {},
      "definedTags": {
        "Oracle-Tags": {
          "CreatedBy": "user_name",
          "CreatedOn": "2022-07-18T00:07:06.095Z"
        }
      },
      "request": {
        "id": "unique_id",
        "path": "/20200129/applications/ocid1.dataflowapplication.oc1.phx.unique_id",
        "action": "PUT",
        "parameters": {},
        "headers": {}
      },
      "response": {
        "status": "200",
        "responseTime": "2022-07-18T00:07:08Z",
        "headers": {},
        "payload": {},
        "message": "application_name UpdateApplication succeeded"
      }
    },
    "eventID": "unique_id",
    "extensions": {
      "compartmentId": "ocid1.compartment.oc1..unique_id"
    }
  },
  "serviceName": "Data Flow",
  "displayName": "Application - Update",
  "additionalDetails": [],
  "timeCreated": "2022-07-18T04:01:56Z"
}

実行ジョブの作成のイベント・タイプ

データ・フローは、作成実行の開始または終了時に、JSONファイルの形式でイベントを発行します。

データ・フロー・アプリケーションが実行されるたびに、実行が作成されます。データ・フロー実行では、アプリケーションの出力、ログおよび統計が取得され、自動的に安全に格納されます。出力は保存され、UIまたはREST APIを使用して、適切な権限を持つユーザーが参照できます。実行により、デバッグおよび診断のためにSpark UIへのセキュアなアクセスが可能になります。
アプリケーション・イベント
フレンドリ名 説明 イベント・タイプ
実行- 開始 データ・フロー実行をトリガーするリクエストが正常に送信されたときに発行されます。 com.oraclecloud.dataflow.createrun.begin
実行- 終了 送信された実行リクエスト処理が完了し、実行が終了状態SUCCEEDEDCANCELEDFAILEDまたはSTOPPEDに遷移したときに発行されます。 com.oraclecloud.dataflow.createrun.end
実行開始イベントの作成の例

正常に完了したデータ・フロー実行開始イベントのリファレンス・イベント・ファイルを次に示します。

{
  "id": "ocid1.eventschema.oc1.phx.abyhqljrbhvyktxafsvf7p7thtdu5eqgwqnfxflwzlu52rkxpu3feb2p7zfa",
  "exampleEvent": {
    "eventType": "com.oraclecloud.dataflow.createrun.begin",
    "cloudEventsVersion": "0.1",
    "eventTypeVersion": "2.0",
    "source": "dataflow",
    "eventTime": "2022-07-18T04:01:56Z",
    "contentType": "application/json",
    "data": {
      "eventGroupingId": "unique_id",
      "eventName": "CreateRun",
      "compartmentId": "ocid1.compartment.oc1..unique_id",
      "compartmentName": "example_compartment",
      "resourceName": "example_run",
      "resourceId": "ocid1.dataflowrun.oc1.phx.unique_id",
      "availabilityDomain": "availability_domain",
      "definedTags": {
        "Oracle-Tags": {
          "CreatedBy": "unique_id",
          "CreatedOn": "2022-07-18T04:01:55.278Z"
        }
      },
      "request": {
        "id": "unique_id",
        "path": "/20200129/runs",
        "action": "POST",
        "parameters": {},
        "headers": {}
      },
      "response": {
        "status": "200",
        "responseTime": "2022-07-18T04:01:56Z",
        "headers": {},
        "payload": {},
        "message": "example_run CreateRun succeeded"
      }
    },
    "eventID": "unique-id",
    "extensions": {
      "compartmentId": "ocid1.compartment.oc1..unique_id"
    }
  },
  "serviceName": "Data Flow",
  "displayName": "Run - Begin",
  "additionalDetails": [],
  "timeCreated": "2022-07-18T04:01:56Z"
}
ランタイム・イベントの作成の例

正常に完了したデータ・フロー実行終了イベントのリファレンス・イベント・ファイルを次に示します。

{
  "id": "ocid1.eventschema.oc1.phx.abyhqljriljgnkdbqfuagrwc5h57kc2cpwphgcxpxkgqp6mnarjjo3zvhy7q",
  "exampleEvent": {
    "eventType": "com.oraclecloud.dataflow.createrun.end",
    "cloudEventsVersion": "0.1",
    "eventTypeVersion": "2.0",
    "source": "dataflow",
    "eventTime": "2022-07-18T04:06:11Z",
    "contentType": "application/json",
    "data": {
      "eventGroupingId": "unique_id",
      "eventName": "CreateRun",
      "compartmentId": "ocid1.compartment.oc1..unique_id",
      "compartmentName": "example_compartment",
      "resourceName": "example_run",
      "resourceId": "ocid1.dataflowrun.oc1.phx.unique_id",
      "availabilityDomain": "availability_domain",
      "request": {},
      "response": {
        "status": "204",
        "responseTime": "2022-07-18T04:06:11Z",
        "message": "example_run CreateRun succeeded"
      },
      "additionalDetails": {
        "lifecycleState": "SUCCEEDED" | CANCELED | FAILED | STOPPED"
        ,
        "type": "BATCH | STREAMING | SESSION",
        "language": "JAVA | SCALA | PYTHON | SQL",
        "sparkVersion": "3.2.1 | 3.0.2 | 2.4.4",
        "applicationId": "ocid1.dataflowapplication.oc1.phx.unique_id",
        "tenantId": "ocid1.tenancy.oc1..unique_id"
      }
    },
    "eventID": "unique_id",
    "extensions": {
      "compartmentId": "ocid1.compartment.oc1..unique_ID"
    }
  },
  "serviceName": "Data Flow",
  "displayName": "Run - End",
  "additionalDetails": [
     { "name": "lifecycleState", "type": "string"},
     { "name": "type", "type": "string"},
     { "name": "language", "type": "string"},
     { "name": "sparkVersion", "type": "string"},
     { "name": "applicationId", "type": "string"},
     { "name": "tenantId", "type": "string"}
  ],
  "timeCreated": "2022-07-18T04:06:11Z"
  }
データ・フローRun-Endイベントは、データ・フロー実行がSUCCEEDEDCANCELEDFAILEDまたはSTOPPEDの終了状態に達したときに作成されます。Run-Endイベントには、イベント・サービスでルール・フィルタを作成できる次の追加フィールドがあります。
  • lifecycleStateは、データ・フロー実行ライフサイクルの状態です。
  • typeは、データ・フロー実行タイプです。
  • languageは、対応するSparkコード言語です。
  • sparkVersionは、使用されるデータ・フロー実行Sparkバージョンです。
  • applicationIdは、データ・フロー実行に対応するデータ・フロー・アプリケーションのOCIDです。
  • tenantIdは、実行を送信したテナントのOCIDです。
これらのフィールドに使用できる値は次のとおりです。
"additionalDetails": {
      "lifecycleState": "SUCCEEDED | CANCELED | FAILED | STOPPED",
      "type": "BATCH | STREAMING | SESSION",
      "language": "JAVA | SCALA | PYTHON | SQL",
      "sparkVersion": "3.2.1 | 3.0.2 | 2.4.4",
      "applicationId": "ocid1.dataflowapplication.oc1.phx.unique_id",
      "tenantId": "ocid1.tenancy.oc1..unique_id"
}

データ・フロー・メトリック

oci_data_flowメトリック・ネームスペースから使用可能なSpark関連のメトリックについて学習します。

メトリックの概要

データ・フロー・メトリックを使用すると、完了または失敗したタスクの数と関連するデータの量をモニターできます。これらは無料のサービス・メトリックで、「サービス・メトリック」または「メトリック・エクスプローラ」から使用できます。詳細は、「メトリックの表示」を参照してください。

用語

次の用語は、データ・フロー・メトリックで何が使用可能かを理解するのに役立ちます。

ネームスペース:
ネームスペースは、データ・フロー・メトリックのコンテナです。ネームスペースは、メトリックを送信するサービスを識別します。データ・フローのネームスペースは、oci_dataflowです。
メトリック:
メトリックはテレメトリおよびモニタリングにおける基本概念です。メトリックでは、データ・ポイントの時系列セットを定義します。各メトリックは、次によって一意に定義されます:
  • ネームスペース
  • メトリック名
  • コンパートメント識別子
  • 1つ以上のディメンションのセット
  • 単位
各データ・ポイントには、タイムスタンプ、値および数が関連付けられています。
ディメンション:
ディメンションは、メトリックに関連付けられた特性を定義するキー/値のペアです。データ・フローには5つのディメンションがあります:
  • resourceId: データ・フロー実行インスタンスのOCID。
  • resourceName: 実行リソースに指定した名前。一意であることは保証されていません。
  • applicationId: データ・フロー・アプリケーション・インスタンスのOCID。
  • applicationName: アプリケーション・リソースに指定した名前。一意または最終的であることは保証されていません。
  • executorId: Sparkクラスタは、ドライバと1つ以上のエグゼキュータで構成されます。ドライバにはexecutorId = driverがあり、エグゼキュータにはexecutorId = 1.2.3...nがあります。
統計:
統計は、特定の期間にわたるメトリック・データの集計です。集計は、指定した期間内のネームスペース、メトリック名、ディメンションおよびデータ・ポイント単位を使用して実行されます。
アラーム:
アラームは、操作のモニタリングおよびパフォーマンスを自動化するために使用されます。アラームは、特定の期間に行われた変更をトラッキングし、メトリックに定義されたルールに基づいて、1つ以上の定義済アクションを実行します。

前提条件

データ・フローのリソースをモニターするには、管理者が記述したポリシーで、必要なアクセス・タイプを付与されている必要があります。

ポリシーでは、モニタリング・サービスおよびモニター対象のリソースへのアクセス権をユーザーに付与する必要があります。これは、コンソールまたはREST APIを、SDK、CLIまたはその他のツールのどれと使用する場合にも当てはまります。アクションを実行しようとしたときに、権限がない、または認可されていないというメッセージが表示された場合は、付与されているアクセスのタイプと作業するコンパートメントを管理者に確認してください。モニタリングのためのユーザー認可の詳細は、関連するサービス(モニタリングまたは通知)の「認証と認可」セクションを参照してください。

使用可能なメトリック

次に、データ・フローで使用可能なメトリックを示します。最初のリストがコントロール・プレーン・メトリックで、次がデータ・プレーン・メトリックです。

コントロール・プレーン・メトリック
メトリック名 表示名 ディメンション 統計 説明
RunTotalStartUpTime 実行開始時間
  • resourceId
  • resourceName
  • applicationId
  • applicationName
平均 実行の全体的な開始時間には、リソース割当ておよびSparkジョブの開始のタイミングと、サービス内部の様々なキューでの待機時間が含まれます。
RunExecutionTime 実行時間
  • resourceId
  • resourceName
  • applicationId
  • applicationName
平均 開始から終了まで、実行の完了にかかる時間。
RunTotalTime 合計実行時間
  • resourceId
  • resourceName
  • applicationId
  • applicationName
平均 実行開始時間と実行時間の合計。
RunSucceeded 実行が成功しました
  • resourceId
  • resourceName
  • applicationId
  • applicationName
件数 実行が正常に終了したかどうか。
RunFailed 実行が失敗しました
  • resourceId
  • resourceName
  • applicationId
  • applicationName
件数 実行が失敗したかどうか。
データ・プレーン・メトリック
メトリック名 表示名 ディメンション 統計 説明
CpuUtilization CPU使用率
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
パーセント ドライバまたはエグゼキュータに割り当てられたコンテナごとのCPU使用率(パーセンテージ)。
DiskReadBytes ディスク読取りバイト数
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
合計 すべてのブロック・デバイスから読み取られたバイト数であり、特定の時間間隔でドライバまたはエグゼキュータに割り当てられたコンテナが基準となっています。
DiskWriteBytes ディスク書込みバイト数
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
合計 すべてのブロック・デバイスから書き込まれたバイト数であり、特定の時間間隔でドライバまたはエグゼキュータに割り当てられたコンテナが基準となっています。
FileSystemUtilization ファイル・システム使用率
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
パーセント ドライバまたはエグゼキュータに割り当てられたコンテナごとのファイル・システム使用量(パーセンテージ)。
GcCpuUtilization GC CPU使用率
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
パーセント ドライバまたはエグゼクティブのJavaガベージ・コレクタごとのメモリー使用量(パーセント)。
MemoryUtilization メモリー使用率
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
パーセント ドライバまたはエグゼキュータに割り当てられたコンテナごとのメモリー使用量(割合)。
NetworkReceiveBytes ネットワーク受信バイト数
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
合計 ネットワーク・インタフェースから受信したバイト数であり、特定の時間間隔でドライバまたはエグゼキュータに割り当てられたコンテナが基準となっています。
NetworkTransmitBytes ネットワーク送信バイト数
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
合計 ネットワーク・インタフェースから送信されたバイト数であり、特定の時間間隔でドライバまたはエグゼキュータに割り当てられたコンテナが基準となっています。

メトリックの表示

データ・フロー・メトリックは、様々な方法で表示できます。

  • コンソールで、ナビゲーション・メニューを選択し、「監視および管理」をクリックして、「モニタリング」「サービス・メトリック」を選択します。これらのメトリックの使用方法は、モニタリングの概要を参照してください。
  • コンソールで、ナビゲーション・メニューを選択し、「監視および管理」をクリックして、「モニタリング」「メトリック・エクスプローラ」を選択します。これらのメトリックの使用方法は、モニタリングの概要を参照してください。
  • コンソールで、ナビゲーション・メニューを選択し、「データ・フロー」をクリックして、「実行」を選択します。「リソース」「メトリック」を選択すると、この実行に固有のメトリックが表示されます。必要に応じて開始時間終了時間を設定するか、「クイック選択」で期間を設定します。チャートごとに、各メトリックの表示方法に関して、間隔オプションを指定できます。
  • コンソールからナビゲーション・メニューを選択し、「データ・フロー」を選択して、「アプリケーション」を選択します。このアプリケーションの実行に固有のメトリックが表示されます。必要に応じて開始時間終了時間を設定するか、「クイック選択」で期間を設定します。チャートごとに、IntervalStatistic、および各メトリックの表示方法に関するOptionsを指定できます。