データ・フローの管理
データ・フローの管理方法(データを管理するための適切なポリシーおよびストレージの設定、使用可能なメトリックなど)について学習します。
データの管理の設定
データ・フロー・イベント 🔗
イベントは、一部のサービス操作で発行され、その操作に関する情報を伝達するJSONファイルです。
Oracle Cloud Infrastructure Eventsのルールの管理の詳細は、イベントのルールの管理を参照してください。
- データ・フロー・アプリケーションの作成
- データ・フロー・アプリケーションが削除されます
- データ・フロー・アプリケーションの更新
- データ・フロー実行の開始
- データ・フロー実行の終了
これらのイベントは、イベント・サービスで表示できます。JSONファイルの電子メール送信やファンクションのトリガーなど、これらのイベントが生成されたときにアクションを実行するルールを設定します。イベント・タイプに基づいてルールを作成する場合は、サービス名としてData Flow
を選択します。使用可能なアクションについては、Events Overviewのイベントドキュメントで説明されています。
アプリケーションのイベント・タイプ 🔗
データ・フローは、アプリケーションの作成、削除または更新時に、JSONファイルの形式でイベントを発行します。
フレンドリ名 | 説明 | イベント・タイプ |
---|---|---|
アプリケーション- 作成 | データ・フロー・アプリケーションの作成時に発行されます。 | 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ファイルの形式でイベントを発行します。
フレンドリ名 | 説明 | イベント・タイプ |
---|---|---|
実行- 開始 | データ・フロー実行をトリガーするリクエストが正常に送信されたときに発行されます。 | com.oraclecloud.dataflow.createrun.begin |
実行- 終了 | 送信された実行リクエスト処理が完了し、実行が終了状態SUCCEEDED 、CANCELED 、FAILED または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
イベントは、データ・フロー実行がSUCCEEDED
、CANCELED
、FAILED
または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 |
実行開始時間 |
|
平均 | 実行の全体的な開始時間には、リソース割当ておよびSparkジョブの開始のタイミングと、サービス内部の様々なキューでの待機時間が含まれます。 |
RunExecutionTime |
実行時間 |
|
平均 | 開始から終了まで、実行の完了にかかる時間。 |
RunTotalTime |
合計実行時間 |
|
平均 | 実行開始時間と実行時間の合計。 |
RunSucceeded |
実行が成功しました |
|
件数 | 実行が正常に終了したかどうか。 |
RunFailed |
実行が失敗しました |
|
件数 | 実行が失敗したかどうか。 |
メトリック名 | 表示名 | ディメンション | 統計 | 説明 |
---|---|---|---|---|
CpuUtilization |
CPU使用率 |
|
パーセント | ドライバまたはエグゼキュータに割り当てられたコンテナごとのCPU使用率(パーセンテージ)。 |
DiskReadBytes |
ディスク読取りバイト数 |
|
合計 | すべてのブロック・デバイスから読み取られたバイト数であり、特定の時間間隔でドライバまたはエグゼキュータに割り当てられたコンテナが基準となっています。 |
DiskWriteBytes |
ディスク書込みバイト数 |
|
合計 | すべてのブロック・デバイスから書き込まれたバイト数であり、特定の時間間隔でドライバまたはエグゼキュータに割り当てられたコンテナが基準となっています。 |
FileSystemUtilization |
ファイル・システム使用率 |
|
パーセント | ドライバまたはエグゼキュータに割り当てられたコンテナごとのファイル・システム使用量(パーセンテージ)。 |
GcCpuUtilization |
GC CPU使用率 |
|
パーセント | ドライバまたはエグゼクティブのJavaガベージ・コレクタごとのメモリー使用量(パーセント)。 |
MemoryUtilization |
メモリー使用率 |
|
パーセント | ドライバまたはエグゼキュータに割り当てられたコンテナごとのメモリー使用量(割合)。 |
NetworkReceiveBytes |
ネットワーク受信バイト数 |
|
合計 | ネットワーク・インタフェースから受信したバイト数であり、特定の時間間隔でドライバまたはエグゼキュータに割り当てられたコンテナが基準となっています。 |
NetworkTransmitBytes |
ネットワーク送信バイト数 |
|
合計 | ネットワーク・インタフェースから送信されたバイト数であり、特定の時間間隔でドライバまたはエグゼキュータに割り当てられたコンテナが基準となっています。 |
メトリックの表示 🔗
データ・フロー・メトリックは、様々な方法で表示できます。
- コンソールで、ナビゲーション・メニューを選択し、「監視および管理」をクリックして、「モニタリング」で「サービス・メトリック」を選択します。これらのメトリックの使用方法は、モニタリングの概要を参照してください。
- コンソールで、ナビゲーション・メニューを選択し、「監視および管理」をクリックして、「モニタリング」で「メトリック・エクスプローラ」を選択します。これらのメトリックの使用方法は、モニタリングの概要を参照してください。
- コンソールで、ナビゲーション・メニューを選択し、「データ・フロー」をクリックして、「実行」を選択します。「リソース」で「メトリック」を選択すると、この実行に固有のメトリックが表示されます。必要に応じて開始時間と終了時間を設定するか、「クイック選択」で期間を設定します。チャートごとに、各メトリックの表示方法に関して、間隔とオプションを指定できます。
- コンソールからナビゲーション・メニューを選択し、「データ・フロー」を選択して、「アプリケーション」を選択します。このアプリケーションの実行に固有のメトリックが表示されます。必要に応じて開始時間と終了時間を設定するか、「クイック選択」で期間を設定します。チャートごとに、IntervalとStatistic、および各メトリックの表示方法に関するOptionsを指定できます。