Gerenciar o Data Flow

Saiba como gerenciar o serviço Data Flow, incluindo a configuração das políticas e armazenamento corretos para gerenciar seus dados e as métricas disponíveis.

Eventos do Serviço Data Flow

Eventos são arquivos JSON emitidos com algumas operações de serviço e contêm informações sobre essa operação.

Para obter informações sobre como gerenciar regras do Oracle Cloud Infrastructure Events, consulte Gerenciando Regras de Eventos.

O serviço Data Flow emite um evento quando:
  • um Aplicativo do serviço Data Flow é criado
  • um Aplicativo do Serviço Data Flow foi excluído
  • um Aplicativo do Serviço Data Flow é atualizado
  • uma Execução do serviço Data Flow começa
  • uma Execução do Serviço Data Flow termina

Você pode exibir esses Eventos no serviço Events. Configure regras para executar ações quando esses eventos forem emitidos, por exemplo, enviando por e-mail um arquivo JSON ou acionando uma Função. Ao criar regras com base no Tipo de Evento, selecione Data Flow como o Nome do Serviço. As ações disponíveis são descritas na documentação de Eventos em Visão Geral do Serviço Events.

Tipos de Evento para Aplicativos

O serviço Data Flow emite eventos, na forma de um arquivo JSON, quando um Aplicativo é criado, excluído ou atualizado.

Um Aplicativo é um modelo de aplicativo Spark infinitamente reutilizável que consiste em um aplicativo Spark, suas dependências, parâmetros padrão e uma especificação de recurso de runtime padrão. Depois que um desenvolvedor cria um Aplicativo do serviço Data Flow, qualquer pessoa pode usá-lo sem se preocupar com as complexidades de implantá-lo, configurá-lo ou executá-lo.
Eventos de Aplicativo
Nome Simples Descrição Tipo de Evento
Aplicativo - Criar Emitido quando um aplicativo do serviço Data Flow é criado. com.oraclecloud.dataflow.createapplication
Aplicativo - Excluir Emitido quando um aplicativo do serviço Data Flow é excluído. com.oraclecloud.dataflow.deleteapplication
Aplicativo - Atualizar Emitido quando um aplicativo do serviço Data Flow é atualizado. com.oraclecloud.dataflow.updateapplication
Exemplo de Criação de Evento de Aplicativo

Este é um arquivo de evento de referência para um evento de criação do Aplicativo Data Flow concluído com sucesso.

{
  "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"
}
Exemplo de Exclusão de Evento do Aplicativo

Este é um arquivo de evento de referência para um evento de exclusão do Aplicativo Data Flow concluído com sucesso.

{
  "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"
}
Atualizar Exemplo de Evento do Aplicativo

Este é um arquivo de evento de referência para um evento de atualização do Aplicativo Data Flow concluído com sucesso.

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

Tipos de Evento para Criar Jobs de Execução

O serviço Data Flow emite eventos, na forma de um arquivo JSON, quando uma Execução de criação começa ou termina.

Sempre que um aplicativo do serviço Data Flow é executado, uma Execução é criada. A Execução do serviço Data Flow captura a saída, os logs e as estatísticas do Aplicativo que são automaticamente armazenadas de forma segura. A saída é salva para que possa ser exibida por qualquer pessoa com as permissões corretas usando a interface do usuário ou a API REST. As execuções fornecem acesso seguro à Interface de Usuário do Spark para depuração e diagnóstico.
Eventos de Aplicativo
Nome Simples Descrição Tipo de Evento
Executar - Início Emitida quando uma solicitação para acionar uma execução do serviço Data Flow é submetida com sucesso. com.oraclecloud.dataflow.createrun.begin
Executar - Fim Emitido quando o processamento da solicitação de execução enviada é concluído e a execução faz a transição para um estado de terminal SUCCEEDED, CANCELED, FAILED ou STOPPED. com.oraclecloud.dataflow.createrun.end
Exemplo de Criação de Evento Inicial de Execução

Este é um arquivo de evento de referência para um evento inicial de Execução do Serviço Data Flow concluído com sucesso.

{
  "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"
}
Exemplo de Criação de Evento de Fim de Execução

Este é um arquivo de evento de referência para um evento final de Execução do Serviço Data Flow concluído com sucesso.

{
  "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"
  }
O evento Run-End do serviço Data Flow é criado quando a Execução do Serviço Data Flow atinge um estado terminal de SUCCEEDED, CANCELED, FAILED ou STOPPED. O evento Run-End tem os seguintes campos extras nos quais o serviço Events pode criar filtros de regra:
  • lifecycleState é os estados do ciclo de vida de execução do serviço Data Flow.
  • type é o tipo de execução do serviço Data Flow.
  • language é a linguagem de código do Spark correspondente.
  • sparkVersion é a versão do Spark de execução do serviço Data Flow usada.
  • applicationId é o OCID do aplicativo Data Flow correspondente para a execução do serviço Data Flow.
  • tenantId é o OCID do tenant que enviou a execução.
Os valores possíveis para esses campos são os seguintes:
"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"
}

Métricas do Data Flow

Saiba mais sobre as métricas relacionadas ao Spark disponíveis no namespace de métricas oci_data_flow.

Visão Geral das Métricas

As métricas do serviço Data Flow ajudam a monitorar o número de tarefas concluídas ou com falha e a quantidade de dados envolvidos. Elas são métricas de serviço gratuitas e estão disponíveis em Métricas do Serviço ou no Metrics Explorer. Consulte Exibindo as Métricas para obter mais informações.

Terminologia

Esses termos ajudam a compreender o que está disponível nas métricas do serviço Data Flow.

Namespace:
Um namespace é um contêiner de métricas do serviço Data Flow. O namespace identifica o serviço que está enviando as métricas. O namespace do serviço Data Flow é oci_dataflow.
Métricas:
Métricas são o conceito fundamental em telemetria e monitoramento. As métricas definem um conjunto de séries temporais de pontos de dados. Cada métrica é definida exclusivamente por:
  • namespace
  • nome da métrica
  • identificador de compartimento
  • um conjunto de uma ou mais dimensões
  • uma unidade de medida
Cada ponto de dados tem um timestamp, um valor e uma contagem associada a ele.
Dimensões:
Uma dimensão é um par chave-valor que define as características associadas à métrica. O serviço Data Flow tem cinco dimensões:
  • resourceId: O OCID de uma instância de Execução do serviço Data Flow.
  • resourceName: O nome que você atribuiu ao recurso Executar. Não há garantia de ele ser único.
  • applicationId: O OCID de uma instância do Aplicativo do serviço Data Flow.
  • applicationName: O nome que você forneceu ao recurso do Aplicativo. Não há garantia de ele ser único ou final.
  • executorId: Um cluster do Spark consiste em um driver e um ou mais executores. O driver tem executorId = driver, o executor tem executorId = 1.2.3...n.
Estatísticas:
As estatísticas são agregações de dados de métrica em períodos especificados. As agregações são feitas usando o namespace, o nome da métrica, as dimensões e a unidade de medida do ponto de dados dentro de um período especificado.
Alarmes:
Os alarmes são usados para automatizar o monitoramento e o desempenho das operações. Um alarme rastreia as alterações que ocorrem em um período específico e executa uma ou mais ações definidas, com base nas regras definidas para a métrica.

Pré-requisitos

Para monitorar recursos no serviço Data Flow, você deve ter o tipo necessário de acesso em uma política criada por um administrador.

A política deve fornecer acesso aos serviços de monitoramento e aos recursos que estão sendo monitorados. Esse requisito se aplica se você estiver usando a Console ou a API REST com um SDK, uma CLI ou outra ferramenta. Se você tentar executar uma ação e receber uma mensagem de que não tem permissão ou que não está autorizado, confirme com o administrador o tipo de acesso concedido e em qual compartimento trabalhar. Para obter mais informações sobre autorizações de usuário para monitoramento, consulte a seção Autenticação e Autorização do serviço relacionado: Monitoring ou Notifications.

Métricas Disponíveis

Aqui estão as métricas disponíveis para o serviço Data Flow. As métricas do plano de controle são listadas primeiro e depois as métricas do plano de dados.

Métricas do Plano de Controle
Nome da Métrica Nome para Exibição Dimensões Estatística Descrição
RunTotalStartUpTime Tempo de Inicialização da Execução
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Médio O tempo geral de inicialização de uma execução contém cronogramas para a designação de recursos e a inicialização do job do Spark, e o tempo que ela espera em várias filas internas ao serviço.
RunExecutionTime Tempo de Execução do Processo
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Médio O tempo que leva para concluir uma execução, do início à conclusão.
RunTotalTime Total de Runtime
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Médio A soma do tempo de inicialização da Execução e do Tempo de Execução do Processo.
RunSucceeded Execução Bem-sucedida
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Contagem Se a execução foi concluída com êxito.
RunFailed Falha na Execução
  • resourceId
  • resourceName
  • applicationId
  • applicationName
Contagem Se a execução falhou ou não.
Métricas do Plano de Dados
Nome da Métrica Nome para Exibição Dimensões Estatística Descrição
CpuUtilization Utilização da CPU
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Porcentagem A utilização da CPU pelo contêiner alocado para o driver ou o executor como uma porcentagem.
DiskReadBytes Bytes de Leitura de Disco
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum O número de bytes lidos de todos os dispositivos de bloco pelo contêiner alocado para o driver ou o executor em um determinado intervalo de tempo.
DiskWriteBytes Bytes de Gravação em Disco
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum O número de bytes gravados de todos os dispositivos de bloco pelo contêiner alocado para o driver ou o executor em um determinado intervalo de tempo.
FileSystemUtilization Utilização do Sistema de Arquivos
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Porcentagem O uso do sistema de arquivos pelo contêiner alocado para o driver ou o executor como uma porcentagem.
GcCpuUtilization Utilização da CPU do GC
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Porcentagem O uso da memória pelo Coletor de lixo Java do driver ou do executor como uma porcentagem.
MemoryUtilization Utilização da Memória
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Porcentagem O uso da memória pelo contêiner alocado para o driver ou o executor como uma porcentagem.
NetworkReceiveBytes Bytes Recebidos na Rede
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum O número de bytes recebidos da interface de rede pelo contêiner alocado para o driver ou o executor em um determinado intervalo de tempo.
NetworkTransmitBytes Bytes Transmitidos na Rede
  • resourceId
  • resourceName
  • applicationId
  • applicationName
  • executorId
Sum O número de bytes transmitidos da interface de rede pelo contêiner alocado para o driver ou o executor em um determinado intervalo de tempo.

Exibindo as Métricas

Você pode exibir métricas do serviço Data Flow de várias maneiras.

  • Na Console, selecione o menu de navegação, selecione Observabilidade e Gerenciamento e, em Monitoramento, selecione Métricas do Serviço. Consulte Visão Geral do Serviço Monitoring para saber como usar essas métricas.
  • Na Console, selecione o menu de navegação, selecione Observabilidade e Gerenciamento e, em Monitoramento, selecione Explorador de Métricas. Consulte Visão Geral do Serviço Monitoring para saber como usar essas métricas.
  • Na Console, selecione o menu de navegação, selecione Data Flow e Execuções. Em Recursos, selecione Métricas e veja as métricas específicas desta Execução. Defina o Hora inicial e o Hora final conforme apropriado, ou um período de Seleções Rápidas. Para cada gráfico, você pode especificar um Intervalo e as Opções sobre como exibir cada métrica.
  • Na Console, selecione o menu de navegação, selecione Data Flow e Aplicativos. Você vê as métricas específicas para as Execuções deste Aplicativo. Defina o Hora inicial e o Hora final conforme apropriado, ou um período de Seleções Rápidas. Para cada gráfico, você pode especificar um Intervalo e uma Estatística, e as Opções sobre como exibir cada métrica.