Cloud Composer 1 | Cloud Composer 2
Nesta página, explicamos como ativar o suporte para operadores adiáveis no seu ambiente e usar operadores adiáveis do Google Cloud nos seus DAGs.
Sobre os operadores adiáveis no Cloud Composer
Se você tiver pelo menos uma instância de engatilhador (ou pelo menos duas em ambientes altamente resilientes), é possível usar operadores e gatilhos adiáveis nos DAGs.
Para operadores adiáveis, o Airflow divide a execução de tarefas nos seguintes estágios:
Inicie a operação. Nesse estágio, a tarefa ocupa um slot de worker do Airflow. A tarefa executa uma operação que delega o job a um serviço diferente.
Por exemplo, a execução de um job do BigQuery pode levar de alguns segundos a várias horas. Depois de criar o job, a operação transmite o identificador de trabalho (ID do job do BigQuery) para um acionador do Airflow.
O gatilho monitora o job até que ele seja concluído. Nessa etapa, um slot de worker não está ocupado. O acionador do Airflow tem arquitetura assíncrona e é capaz de processar centenas de jobs. Quando o acionador detecta que o job foi concluído, ele envia um evento que aciona a última fase.
No último estágio, um worker do Airflow executa um callback. Esse callback, por exemplo, pode marcar a tarefa como bem-sucedida ou executar outra operação e definir o job a ser monitorado pelo acionador novamente.
O acionador não tem estado e, portanto, é resiliente a interrupções ou reinicializações. Por isso, jobs de longa duração são resilientes a reinicializações de pods, a menos que a reinicialização aconteça durante o último estágio, que costuma ser curto.
Antes de começar
- Os operadores e sensores adiáveis estão disponíveis nos ambientes do Cloud Composer 2
e exigem o seguinte:
- Cloud Composer 2.0.31 e versões posteriores
- Airflow 2.2.5, 2.3.3 e versões posteriores
Ativar suporte para operadores adiáveis
Um componente de ambiente chamado Acionador do Airflow monitora de maneira assíncrona todas as tarefas adiadas no ambiente. Depois que uma operação adiada de uma tarefa é concluída, o gatilho a transmite para um worker do Airflow.
Você precisa de pelo menos uma instância de engatilhador no ambiente (ou pelo menos duas em ambientes altamente resilientes) para usar o modo adiável nos DAGs. É possível configurar os engatilhadores ao criar um ambiente ou ajustar o número de acionadores e parâmetros de desempenho para um ambiente atual.
Operadores do Google Cloud compatíveis com o modo adiável
Apenas alguns operadores do Airflow foram estendidos para oferecer suporte ao modelo adiável.
A lista a seguir é uma referência para os operadores no
pacote airflow.providers.google.operators.cloud
que oferecem suporte ao modo adiável.
A coluna com a versão mínima necessária do pacote airflow.providers.google.operators.cloud
representa a versão mais antiga em que esse operador oferece suporte ao modo adiável.
Operadores do Cloud Composer
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
CloudComposerCreateEnvironmentOperator | 6.4.0 |
CloudComposerDeleteEnvironmentOperator | 6.4.0 |
CloudComposerUpdateEnvironmentOperator | 6.4.0 |
Operadores do BigQuery
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
BigQueryCheckOperator | 8.4.0 |
BigQueryValueCheckOperator | 8.4.0 |
BigQueryIntervalCheckOperator | 8.4.0 |
BigQueryGetDataOperator | 8.4.0 |
BigQueryInsertJobOperator | 8.4.0 |
Operadores do serviço de transferência de dados do BigQuery
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
BigQueryDataTransferServiceStartTransferRunsOperator | 8.9.0 |
Operadores do Cloud Build
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
CloudBuildCreateBuildOperator | 8.7.0 |
Operadores do Cloud SQL
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
CloudSQLExportInstanceOperator | 10.3.0 |
Operadores do Dataflow
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
DataflowTemplatedJobStartOperator | 8.9.0 |
DataflowStartFlexTemplateOperator | 8.9.0 |
Operadores do Cloud Data Fusion
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
CloudDataFusionStartPipelineOperator | 8.9.0 |
Operadores do Dataproc
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
DataprocCreateClusterOperator | 8.9.0 |
DataprocDeleteClusterOperator | 8.9.0 |
DataprocJobBaseOperator | 8.4.0 |
DataprocInstantiateWorkflowTemplateOperator | 9.0.0 |
DataprocInstantiateInlineWorkflowTemplateOperator | 10.1.0 |
DataprocSubmitJobOperator | 8.4.0 |
DataprocUpdateClusterOperator | 8.9.0 |
DataprocCreateBatchOperator | 8.9.0 |
Operadores do Google Kubernetes Engine
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
GKEDeleteClusterOperator | 9.0.0 |
GKECreateClusterOperator | 9.0.0 |
Operadores do AI Platform
Nome do operador | Versão necessária do apache-airflow-providers-google |
---|---|
MLEngineStartTrainingJobOperator | 8.9.0 |
Usar operadores adiáveis nos DAGs
Uma convenção comum para todos os operadores do Google Cloud é ativar o modo adiável com o parâmetro booleano deferrable
. Se um operador do Google Cloud não tiver esse parâmetro, ele não poderá ser executado no modo adiável. Outros operadores podem ter uma convenção diferente. Por exemplo, alguns
operadores da comunidade têm uma classe separada com o sufixo Async
no
nome.
O DAG de exemplo a seguir usa o operador DataprocSubmitJobOperator
no modo adiável:
PYSPARK_JOB = {
"reference": { "project_id": "PROJECT_ID" },
"placement": { "cluster_name": "PYSPARK_CLUSTER_NAME" },
"pyspark_job": {
"main_python_file_uri": "gs://dataproc-examples/pyspark/hello-world/hello-world.py"
},
}
DataprocSubmitJobOperator(
task_id="dataproc-deferrable-example",
job=PYSPARK_JOB,
deferrable=True,
)
Acessar registros do engatilhador
O acionador gera registros que estão disponíveis com os registros de outros componentes do ambiente. Para mais informações sobre como visualizar os registros do ambiente, consulte Ver registros.
Monitorar acionador
Para mais informações sobre como monitorar o componente do acionador, consulte Métricas do Airflow.
Além de monitorar o acionador, é possível verificar o número de tarefas adiadas nas métricas Tarefa inacabada no painel "Monitoramento" do ambiente.
A seguir
- Como solucionar problemas do acionador do Airflow
- Métricas do acionador do Airflow
- Registros do acionador do Airflow