Gestion de Data Flow

Apprenez à gérer Data Flow et à configurer les stratégies et le stockage appropriés pour gérer vos données, ainsi que les mesures disponibles.

Evénements Data Flow

Les événements sont des fichiers JSON émis avec certaines opérations de service qui contiennent des informations sur l'opération concernée.

Pour plus d'informations sur la gestion des règles pour Oracle Cloud Infrastructure Events, reportez-vous à Gestion des règles pour Events.

Data Flow émet un événement lorsque :
  • une application Data Flow est créée
  • une application Data Flow est supprimée
  • une application Data Flow est mise à jour
  • Début de l'exécution d'un flux de données
  • Fin de l'exécution d'un flux de données

Vous pouvez afficher ces événements dans le service Events. Configurez des règles pour effectuer des actions lorsque ces événements sont émis, par exemple, vous envoyer un fichier JSON par courriel ou déclencher une fonction. Lorsque vous créez des règles basées sur le type d'événement, sélectionnez Data Flow comme nom de service. Les actions disponibles sont décrites dans la documentation Events dans Présentation d'Events.

Types d'événement pour les applications

Data Flow émet des événements, sous la forme d'un fichier JSON, lorsqu'une application est créée, supprimée ou mise à jour.

Une application est un modèle d'application Spark réutilisable à l'infini composé d'une application Spark, de ses dépendances, de ses paramètres par défaut et d'une spécification de ressource d'exécution par défaut. Une fois qu'un développeur a créé une application Data Flow, tout utilisateur peut s'en servir sans s'inquiéter de la complexité de son déploiement, de sa configuration ou de son exécution.
Evénements d'application
Nom convivial Description Type d'événement
Application - Créer Emise lors de la création d'une application Data Flow. com.oraclecloud.dataflow.createapplication
Application - Supprimer Emise lorsqu'une application Data Flow est supprimée. com.oraclecloud.dataflow.deleteapplication
Application - Mettre à jour Emise lors de la mise à jour d'une application Data Flow. com.oraclecloud.dataflow.updateapplication
Exemple de création d'événement d'application

Voici un fichier d'événement de référence pour un événement de création d'application Data Flow qui s'est terminé avec succès.

{
  "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"
}
Exemple de suppression d'événement d'application

Voici un fichier d'événement de référence pour un événement de suppression d'application Data Flow qui s'est terminé avec succès.

{
  "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"
}
Exemple de mise à jour d'événement d'application

Voici un fichier d'événement de référence pour un événement de mise à jour d'application Data Flow qui s'est terminé avec succès.

{
  "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"
}

Types d'événement pour la création de travaux d'exécution

Data Flow émet des événements, sous la forme d'un fichier JSON, lorsqu'une exécution de création commence ou se termine.

A chaque exécution d'une application Data Flow, une exécution est créée. L'exécution Data Flow capture la sortie, les journaux et les statistiques de l'application, qui sont automatiquement stockés en toute sécurité. La sortie est enregistrée afin qu'elle puisse être visualisée par tout utilisateur disposant des droits d'accès appropriés via l'interface utilisateur ou l'API REST. Les exécutions permettent un accès sécurisé à l'interface utilisateur Spark pour permettre le débogage et le diagnostic.
Evénements d'application
Nom convivial Description Type d'événement
Exécuter - Commencer Emise lorsqu'une demande de déclenchement d'une exécution Data Flow est soumise. com.oraclecloud.dataflow.createrun.begin
Exécution - Fin Emise lorsque le traitement de la demande d'exécution soumise est terminé et que l'exécution est passée à l'état de terminal SUCCEEDED, CANCELED, FAILED ou STOPPED. com.oraclecloud.dataflow.createrun.end
Exemple de création d'événement de début d'exécution

Voici un fichier d'événement de référence pour un événement de début d'exécution Data Flow qui s'est terminé avec succès.

{
  "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"
}
Exemple de création d'événement de fin d'exécution

Voici un fichier d'événement de référence pour un événement de fin d'exécution Data Flow qui s'est terminé avec succès.

{
  "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"
  }
L'événement Data Flow Run-End est créé lorsque l'exécution Data Flow atteint l'état de terminal SUCCEEDED, CANCELED, FAILED ou STOPPED. L'événement Run-End comporte les champs supplémentaires suivants sur lesquels le service Events peut créer des filtres de règle :
  • lifecycleState correspond aux états de cycle de vie d'exécution de Data Flow.
  • type est le type d'exécution Data Flow.
  • language est le langage de code Spark correspondant.
  • sparkVersion est la version de Spark d'exécution de Data Flow utilisée.
  • applicationId est l'OCID de l'application Data Flow correspondante pour l'exécution Data Flow.
  • tenantId est l'OCID du locataire qui a soumis l'exécution.
Les valeurs possibles pour ces champs sont les suivantes :
"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"
}

Mesures de Data Flow

Découvrez les mesures relatives à Spark disponibles dans l'espace de noms de mesure oci_data_flow.

Présentation des mesures

Les mesures de Data Flow vous aident à surveiller le nombre de tâches terminées ou en échec, et la quantité de données impliquées. Il s'agit de mesures de service gratuites et disponibles dans Service Metrics ou Metrics Explorer. Pour plus d'informations, reportez-vous à Visualisation des mesures.

Terminologie

Ces termes vous aident à comprendre ce qui est disponible avec les mesures de Data Flow.

Espace de noms :
Un espace de noms est un conteneur pour les mesures de Data Flow. L'espace de noms identifie le service envoyant les mesures. L'espace de noms pour Data Flow est oci_dataflow.
Mesures :
Les mesures sont le concept fondamental dans le domaine de la télémétrie et de la surveillance. Les mesures définissent un ensemble de points de données avec une série temporelle. Chaque mesure est définie de manière unique par les éléments suivants :
  • espace de travail
  • nom de mesure
  • identificateur de compartiment
  • ensemble de dimensions
  • unité de mesure
Un horodatage, une valeur et un nombre sont associés à chaque point de données.
Dimensions :
Une dimension est une paire clé-valeur qui définit les caractéristiques associées à la mesure. Data Flow compte cinq dimensions :
  • resourceId : OCID d'une instance d'exécution Data Flow.
  • resourceName : nom que vous avez donné à la ressource d'exécution. Il n'est pas garanti qu'il soit unique.
  • applicationId : OCID d'une instance d'application Data Flow.
  • applicationName : nom que vous avez donné à la ressource d'application. Il n'est pas garanti qu'il soit unique ou finalisé.
  • executorId : un cluster Spark est composé d'un pilote et d'exécuteurs. Pour le pilote : executorId = driver, pour les exécuteurs : executorId = 1.2.3...n.
Statistiques :
Les statistiques sont des agrégations de données de mesure au cours de périodes spécifiées. Les agrégations sont effectuées à l'aide de l'espace de noms, du nom de la mesure, des dimensions et de l'unité de mesure du point de données dans la période spécifiée.
Alarmes :
Les alarmes permettent d'automatiser la surveillance et les performances des opérations. Une alarme effectue le suivi des modifications apportées au cours d'une période spécifique et exécute des actions définies, en fonction des règles définies pour la mesure.

Prérequis

Pour surveiller les ressources dans Data Flow, vous devez disposer du type d'accès requis dans une stratégie écrite par un administrateur.

La stratégie doit vous donner accès aux services de surveillance et aux ressources surveillées. Cette exigence s'applique que vous utilisiez la console ou l'API REST avec un kit SDK, l'interface de ligne de commande ou un autre outil. Si vous essayez d'effectuer une action et qu'un message vous indique que vous n'y êtes plus autorisé, vérifiez auprès du gestionnaire le type d'accès qui a été accordé et quel compartiment dans lequel vous souhaitez travailler. Pour plus d'informations sur les autorisations utilisateur liées à la surveillance, reportez-vous à la section Authentification et autorisation du service associé : Monitoring ou Notifications.

Mesures disponibles

Voici les mesures disponibles pour Data Flow. Les mesures de plan de contrôle sont répertoriées en premier, suivies des mesures de plan de données.

Mesures de plan de contrôle
Nom de mesure Afficher le nom Dimensions Statistiques Description
RunTotalStartUpTime Durée de démarrage de l'exécution
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Moyenne Le temps de démarrage global d'une exécution contient les durées d'affectation des ressources et le démarrage du travail Spark, ainsi que le temps d'attente dans différentes files d'attente internes au service.
RunExecutionTime Durée de traitement de l'exécution
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Moyenne Durée nécessaire pour terminer une exécution, à partir de son démarrage jusqu'à la fin du traitement.
RunTotalTime Durée totale d'exécution
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Moyenne Somme de la durée de démarrage de l'exécution et de la durée de traitement de l'exécution.
RunSucceeded Exécution réussie
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Nombre Indique si l'exécution s'est terminée avec succès.
RunFailed Echec de l'exécution
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Nombre Indique si l'exécution a échoué.
Mesures de plan de données
Nom de mesure Afficher le nom Dimensions Statistiques Description
CpuUtilization Utilisation de l'UC
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Pour cent Pourcentage d'utilisation de l'UC par le conteneur alloué au pilote ou à l'exécuteur.
DiskReadBytes Octets de lecture sur disque
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum Nombre d'octets lus à partir de toutes les unités de blocs par le conteneur alloué au pilote ou à l'exécuteur au cours d'un intervalle donné.
DiskWriteBytes Octets d'écriture sur disque
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum Nombre d'octets écrits à partir de toutes les unités de blocs par le conteneur alloué au pilote ou à l'exécuteur au cours d'un intervalle donné.
FileSystemUtilization Utilisation du système de fichiers
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Pour cent Pourcentage d'utilisation du système de fichiers par le conteneur affecté au pilote ou à l'exécuteur.
GcCpuUtilization Utilisation de l'UC par GC
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Pour cent Pourcentage d'utilisation de la mémoire par le processus Garbage Collector Java du pilote ou de l'exécuteur.
MemoryUtilization Utilisation de la mémoire
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Pour cent Pourcentage d'utilisation de la mémoire par le conteneur affecté au pilote ou à l'exécuteur.
NetworkReceiveBytes Octets de réception réseau
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum Nombre d'octets reçus à partir de l'interface réseau par le conteneur alloué au pilote ou à l'exécuteur au cours d'un intervalle donné.
NetworkTransmitBytes Octets de transmission réseau
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum Nombre d'octets transmis à partir de l'interface réseau par le conteneur alloué au pilote ou à l'exécuteur au cours d'un intervalle donné.

Visualisation des mesures

Vous pouvez visualiser les mesures de Data Flow de différentes manières.

  • Dans la console, sélectionnez le menu de navigation, sélectionnez Observation et gestion, puis sous Surveillance, sélectionnez Mesures de service. Pour savoir comment utiliser ces mesures, reportez-vous à Présentation de Monitoring.
  • Dans la console, sélectionnez le menu de navigation, sélectionnez Observation et gestion, puis, sous Surveillance, sélectionnez Explorateur de mesures. Pour savoir comment utiliser ces mesures, reportez-vous à Présentation de Monitoring.
  • Dans la console, sélectionnez le menu de navigation, Flux de données, puis Exécutions. Sous Resources, sélectionnez Metrics et les mesures propres à cette exécution apparaissent. Définissez l'heure de début et l'heure de fin, ou une période dans Sélection rapide. Pour chaque graphique, vous pouvez indiquer un intervalle et les options d'affichage de chaque mesure.
  • Dans la console, sélectionnez le menu de navigation, Flux de données, puis Applications. Les mesures propres aux exécutions de cette application apparaissent. Définissez l'heure de début et l'heure de fin, ou une période dans Sélection rapide. Pour chaque graphique, vous pouvez indiquer un Intervalle, une Statistique et les Options d'affichage pour chaque mesure.