Data Flow verwalten

Erfahren Sie, wie Sie Data Flow verwalten, einschließlich der Einrichtung der richtigen Policys und Speicher zur Verwaltung Ihrer Daten sowie der verfügbaren Metriken.

Data Flow-Ereignisse

Ereignisse sind JSON-Dateien, die mit bestimmten Servicevorgängen ausgegeben werden und Informationen zu diesem Vorgang enthalten.

Informationen zum Verwalten von Regeln für Oracle Cloud Infrastructure Events finden Sie unter Regeln für Ereignisse verwalten.

Data Flow gibt ein Ereignis aus, wenn:
  • Eine Datenflussanwendung wird erstellt
  • Eine Datenflussanwendung wird gelöscht
  • Eine Datenflussanwendung wird aktualisiert
  • Eine Datenflussausführung beginnt
  • Eine Datenflussausführung endet

Sie können diese Ereignisse im Events-Service anzeigen. Richten Sie Regeln ein, um Aktionen auszuführen, wenn diese Ereignisse ausgegeben werden. Beispiel: Sie erhalten eine JSON-Datei per E-Mail, oder Sie lösen eine Funktion aus. Wenn Sie Regeln basierend auf dem Ereignistyp erstellen, wählen Sie Data Flow als Servicename aus. Die verfügbaren Aktionen werden in der Dokumentation "Ereignisse" unter Überblick über Ereignisse beschrieben.

Ereignistypen für Anwendungen

Data Flow gibt Ereignisse in Form einer JSON-Datei aus, wenn eine Anwendung erstellt, gelöscht oder aktualisiert wird.

Eine Anwendung ist eine unbegrenzt wiederverwendbare Spark-Anwendungsvorlage, die aus einer Spark-Anwendung, ihren Abhängigkeiten, Standardparametern und einer Spezifikation von Standardlaufzeitressourcen besteht. Nachdem ein Entwickler eine Datenflussanwendung erstellt hat, kann sie von beliebigen Benutzern verwendet werden, ohne dass diese die Komplexität des Bereitstellens, Einrichtens oder Ausführens berücksichtigen müssen.
Anwendungsereignisse
Anzeigename Beschreibung Veranstaltungstyp
Anwendung - Erstellen Wird bei der Erstellung einer Datenflussanwendung ausgegeben. com.oraclecloud.dataflow.createapplication
Anwendung - Löschen Wird ausgegeben, wenn eine Datenflussanwendung gelöscht wird. com.oraclecloud.dataflow.deleteapplication
Anwendung - Aktualisieren Wird ausgegeben, wenn eine Datenflussanwendung aktualisiert wird. com.oraclecloud.dataflow.updateapplication
Anwendungsereignis erstellen - Beispiel

Im Folgenden finden Sie eine Referenzereignisdatei für ein erfolgreich abgeschlossenes Erstellungsereignis einer Datenflussanwendung.

{
  "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": "/latest/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"
}
Anwendungsereignis löschen - Beispiel

Im Folgenden finden Sie eine Referenzereignisdatei für ein erfolgreich abgeschlossenes Löschereignis einer Datenflussanwendung.

{
  "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": "/latest/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"
}
Anwendungsereignis aktualisieren - Beispiel

Im Folgenden finden Sie eine Referenzereignisdatei für ein Aktualisierungsereignis einer Datenflussanwendung, das erfolgreich abgeschlossen wurde.

{
  "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": "/latest/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"
}

Ereignistypen für "Ausführungsjobs erstellen"

Data Flow gibt Ereignisse in Form einer JSON-Datei aus, wenn eine Erstellungsausführung beginnt oder endet.

Bei jeder Ausführung einer Datenflussanwendung wird eine Ausführung erstellt. Bei der Datenflussausführung werden die Ausgabe, die Logs und die Statistiken der Anwendung erfasst und automatisch sicher gespeichert. Die Ausgabe wird so gespeichert, dass sie von jedem Benutzer mit den entsprechenden Berechtigungen über die UI oder die REST-API angezeigt werden kann. Ausführungen ermöglichen den sicheren Zugriff auf die Spark-UI zu Debugging- und Diagnosezwecken.
Anwendungsereignisse
Anzeigename Beschreibung Veranstaltungstyp
Ausführen - Beginn Wird ausgegeben, wenn eine Anforderung zum Auslösen einer Datenflussausführung erfolgreich weitergeleitet wurde. com.oraclecloud.dataflow.createrun.begin
Ausführen - Ende Wird ausgegeben, wenn die Verarbeitung der weitergeleiteten Ausführanforderung abgeschlossen ist und die Ausführung in den Endstatus SUCCEEDED, CANCELED, FAILED oder STOPPED übergegangen ist. com.oraclecloud.dataflow.createrun.end
Ausführungsbeginnereignis erstellen - Beispiel

Im Folgenden finden Sie eine Referenzereignisdatei für ein Startereignis der Datenflussausführung, das erfolgreich abgeschlossen wurde.

{
  "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": "/latest/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"
}
Ausführungsende erstellen - Beispiel

Im Folgenden finden Sie eine Referenzereignisdatei für ein erfolgreich abgeschlossenes Data Flow-Ausführungsendereignis.

{
  "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"
  }
Das Data Flow-Ereignis Run-End wird erstellt, wenn die Data Flow-Ausführung den Endstatus SUCCEEDED, CANCELED, FAILED oder STOPPED erreicht. Das Ereignis Run-End enthält die folgenden zusätzlichen Felder, in denen der Events-Service Regelfilter erstellen kann:
  • lifecycleState ist der Lebenszyklusstatus der Data Flow-Ausführung.
  • type ist der Data Flow-Ausführungstyp.
  • language ist die entsprechende Spark-Codesprache.
  • sparkVersion ist die verwendete Spark-Version für die Datenflussausführung.
  • applicationId ist die OCID der entsprechenden Datenflussanwendung für die Data Flow-Ausführung.
  • tenantId ist die OCID des Mandanten, der die Ausführung weitergeleitet hat.
Folgende Werte sind für diese Felder möglich:
"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"
}

Data Flow-Metriken

Erfahren Sie mehr über die Spark-bezogenen Metriken, die im Metrik-Namespace oci_data_flow verfügbar sind.

Überblick über Metriken

Mit den Data Flow-Metriken können Sie die Anzahl der Aufgaben, die abgeschlossen wurden oder nicht erfolgreich waren, und die Datenmenge überwachen. Es handelt sich um kostenlose Servicekennzahlen, die unter Servicekennzahlen oder Metadaten-Explorer zur Verfügung stehen. Weitere Informationen finden Sie unter Metriken anzeigen.

Terminologie

Diese Begriffe helfen Ihnen zu verstehen, was mit Data Flow-Metriken verfügbar ist.

Namespace:
Ein Namespace ist ein Container für Data Flow-Metriken. Der Namespace kennzeichnet den Service, der die Metriken sendet. Der Namespace für Data Flow lautet oci_dataflow.
Metriken:
Metriken stellen das grundlegende Konzept bei Telemetrie und Monitoring dar. Metriken definieren einen Zeitreihensatz von Datenpunkten. Jede Metrik wird eindeutig definiert durch:
  • Namespace
  • Metrikname
  • Compartment-ID
  • Set von mindestens einer Dimension
  • Maßeinheit
Mit jedem Datenpunkt sind ein Zeitstempel, ein Wert und eine Anzahl verknüpft.
Dimensionen:
Eine Dimension ist ein Schlüssel/Wert-Paar, das die mit der Metrik verknüpften Eigenschaften definiert. Data Flow hat fünf Dimensionen:
  • resourceId: Die OCID einer Data Flow-Instanz.
  • resourceName: Der Name, den Sie der Ausführungsressource zugewiesen haben. Dieser ist nicht unbedingt eindeutig.
  • applicationId: Die OCID einer Data Flow-Anwendungsinstanz.
  • applicationName: Der Name, den Sie der Anwendungsressource zugewiesen haben. Dieser ist nicht unbedingt eindeutig oder endgültig.
  • executorId: Ein Spark-Cluster besteht aus einem Treiber und einem oder mehreren Executors. Der Treiber hat executorId = driver, der Executor hat executorId = 1.2.3...n.
Statistiken:
Statistiken sind Metrikdatenaggregationen für bestimmte Zeiträume. Aggregationen werden mit Namespace, Metrikname, Dimensionen und der Maßeinheit des Datenpunkts innerhalb des angegebenen Zeitraums erstellt.
Alarme:
Alarme werden zur Automatisierung von Monitoring und Performance von Vorgängen verwendet. Ein Alarm überwacht Änderungen in einem bestimmten Zeitraum und führt entsprechend den für die Metrik definierten Regeln mindestens eine definierte Aktion aus.

Voraussetzungen

Um Ressourcen in Data Flow überwachen zu können, benötigen Sie den erforderlichen Zugriffstyp in einer von einem Administrator geschriebenen Policy.

Die Policy muss Ihnen Zugriff auf die Monitoring-Services und die überwachten Ressourcen erteilen. Die gilt unabhängig davon, ob Sie die Konsole oder die REST-API mit einem SDK, einer CLI oder einem anderen Tool verwenden. Wenn Sie versuchen, eine Aktion auszuführen, und eine Meldung erhalten, dass Sie weder über eine Berechtigung verfügen noch nicht autorisiert sind, fragen Sie den Administrator, welchen Zugriffstyp Sie erteilt haben und in welcher Abteilung Sie arbeiten möchten. Weitere Informationen über Benutzerautorisierungen für Monitoring finden Sie im Abschnitt "Authentifizierung und Autorisierung" für den zugehörigen Service: Monitoring oder Notifications.

Verfügbare Metriken

Im Folgenden werden die für Data Flow verfügbar sind. Die Control-Plane-Metriken werden zuerst aufgeführt, dann die Data-Plane-Metriken.

Control-Plane-Metriken
Metrikname Anzeige Dimensionen Statistik Beschreibung
RunTotalStartUpTime Startzeit der Ausführung
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Durchschnitt Die gesamte Startzeit für eine Ausführung enthält Zeiten für die Ressourcenzuweisung und den Start des Spark-Jobs sowie die Wartezeit in verschiedenen Queues innerhalb des Service.
RunExecutionTime Ausführungszeit
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Durchschnitt Die erforderliche Zeit zum Beenden einer Ausführung vom Start bis zum Abschluss.
RunTotalTime Gesamte Laufzeit
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Durchschnitt Die Summe aus Startzeit der Ausführung und Ausführungszeit.
RunSucceeded Ausführung erfolgreich
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Anzahl Gibt an, ob der Lauf erfolgreich abgeschlossen wurde.
RunFailed Ausführung nicht erfolgreich
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Anzahl Angabe, ob die Ausführung nicht erfolgreich war.
Data-Plane-Metriken
Metrikname Anzeige Dimensionen Statistik Beschreibung
CpuUtilization CPU-Auslastung
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Prozent Die CPU-Auslastung durch den Container, der dem Treiber oder Executor zugewiesen ist, als Prozentsatz.
DiskReadBytes Datenträger-Lesevorgänge in Byte
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum Die Anzahl der Byte, die von dem Container, der dem Treiber oder Executor zugewiesen ist, in einem bestimmten Zeitintervall von allen Block-Devices gelesen werden.
DiskWriteBytes Datenträger-Schreibvorgänge in Byte
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum Die Anzahl der Byte, die von dem Container, der dem Treiber oder Executor zugewiesen ist, in einem bestimmten Zeitintervall von allen Block-Devices geschrieben werden.
FileSystemUtilization Dateisystemauslastung
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Prozent Die Dateisystemnutzung durch den Container, der dem Treiber oder Executor zugewiesen ist, als Prozentsatz.
GcCpuUtilization GC-CPU-Auslastung
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Prozent Die Speicherbelegung durch den Java Garbage Collector des Treibers oder Executors als Prozentsatz.
MemoryUtilization Speicherauslastung
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Prozent Die Speichernutzung durch den Container, der dem Treiber oder Executor zugewiesen ist, als Prozentsatz.
NetworkReceiveBytes Netzwerk-Empfangsvorgänge in Byte
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum Die Anzahl der Byte, die von der Netzwerkschnittstelle durch den Container, der dem Treiber oder Executor zugewiesen ist, in einem bestimmten Zeitintervall empfangen wurden.
NetworkTransmitBytes Netzwerk-Übertragungsvorgänge in Byte
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum Die Anzahl der Byte, die von der Netzwerkschnittstelle durch den Container, der dem Treiber oder Executor zugewiesen ist, in einem bestimmten Zeitintervall übertragen wurden.

Metriken anzeigen

Sie können Data Flow-Metriken auf unterschiedliche Weise anzeigen:

  • Wählen Sie in der Konsole das Navigationsmenü, Observability and Management, und wählen Sie unter Monitoring die Option Servicemetriken aus. Informationen zur Verwendung dieser Metriken finden Sie unter Überblick über Monitoring.
  • Wählen Sie in der Konsole das Navigationsmenü aus, und wählen Sie Beobachtbarkeit und Management aus. Wählen Sie unter Monitoring die Option Metrik-Explorer aus. Informationen zur Verwendung dieser Metriken finden Sie unter Überblick über Monitoring.
  • Wählen Sie in der Konsole das Navigationsmenü aus, wählen Sie Data Flow aus, und wählen Sie Ausführungen aus. Wählen Sie unter Ressourcen die Option Metriken aus, um die für diese Ausführung spezifischen Metriken anzuzeigen. Legen Sie die Startzeit und die Endzeit entsprechend fest, oder wählen Sie in der Schnellauswahl einen Zeitraum aus. Für jedes Diagramm können Sie ein Intervall und die Optionen für das Anzeigen der einzelnen Metriken angeben.
  • Wählen Sie in der Konsole das Navigationsmenü aus, wählen Sie Data Flow aus, und wählen Sie Anwendungen aus. Die für die Ausführungen dieser Anwendung spezifischen Metriken werden angezeigt. Legen Sie die Startzeit und die Endzeit entsprechend fest, oder wählen Sie in der Schnellauswahl einen Zeitraum aus. Für jedes Diagramm können Sie ein Intervall und eine Statistik sowie die Optionen für die Anzeige jeder Metrik angeben.