Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página apresenta uma breve introdução ao Airflow e aos DAGs, e descreve as funcionalidades e as capacidades do Cloud Composer.
Para mais informações sobre as novas funcionalidades nos lançamentos do Cloud Composer, consulte as notas de lançamento.
Acerca do Cloud Composer
O Cloud Composer é um serviço de orquestração de fluxos de trabalho totalmente gerido que lhe permite criar, agendar, monitorizar e gerir pipelines de fluxos de trabalho que abrangem nuvens e centros de dados no local.
O Cloud Composer é baseado no popular projeto de código aberto Apache Airflow e funciona com a linguagem de programação Python.
Ao usar o Cloud Composer em vez de uma instância local do Apache Airflow, pode beneficiar do melhor do Airflow sem custos de instalação nem de gestão. O Cloud Composer ajuda a criar rapidamente ambientes Airflow geridos e a usar ferramentas nativas do Airflow, como a poderosa interface Web do Airflow e as ferramentas de linha de comandos, para que se possa concentrar nos fluxos de trabalho e não na infraestrutura.
Diferenças entre as versões do Cloud Composer
Para mais informações sobre as diferenças entre as versões principais do Cloud Composer, consulte a vista geral da gestão de versões do Cloud Composer.
Airflow e DAGs (fluxos de trabalho) do Airflow
Na análise de dados, um fluxo de trabalho representa uma série de tarefas para carregar, transformar, analisar ou utilizar dados. No Airflow, os fluxos de trabalho são criados usando DAGs ou "grafos acíclicos direcionados".
Um DAG é uma coleção de tarefas que quer agendar e executar, organizada de uma forma que reflete as respetivas relações e dependências. Os DAGs são criados em ficheiros Python, que definem a estrutura do DAG através de código. O objetivo do DAG é garantir que cada tarefa é executada no momento certo e na ordem certa.
Cada tarefa num DAG pode representar quase tudo. Por exemplo, uma tarefa pode realizar qualquer uma das seguintes funções:
- Preparar dados para carregamento
- Monitorizar uma API
- Enviar um email
- Executar um pipeline
Além de executar um DAG de acordo com um agendamento, pode acionar DAGs manualmente ou em resposta a eventos, como alterações num contentor do Cloud Storage. Para mais informações, consulte o artigo Agende e acione DAGs.
Para mais informações sobre DAGs e tarefas, consulte a documentação do Apache Airflow.
Ambientes do Cloud Composer
Os ambientes do Cloud Composer são implementações autónomas do Airflow baseadas no Google Kubernetes Engine. Funcionam com outros Google Cloud serviços através de conetores incorporados no Airflow. Pode criar um ou mais ambientes num único projeto Google Cloud em qualquer região suportada.
O Cloud Composer aprovisiona Google Cloud serviços que executam os seus fluxos de trabalho e todos os componentes do Airflow. Os principais componentes de um ambiente são:
Cluster do GKE: os componentes do Airflow, como os programadores, os acionadores e os trabalhadores do Airflow, são executados como cargas de trabalho do GKE num único cluster criado para o seu ambiente e são responsáveis pelo processamento e pela execução de DAGs.
O cluster também aloja outros componentes do Cloud Composer, como o agente do Composer e a monitorização do Airflow, que ajudam a gerir o ambiente do Cloud Composer, recolher registos para armazenar no Cloud Logging e recolher métricas para carregar para o Cloud Monitoring.
Servidor Web do Airflow: o servidor Web executa a IU do Apache Airflow.
Base de dados do Airflow: a base de dados contém os metadados do Apache Airflow.
Contentor do Cloud Storage: o Cloud Composer associa um contentor do Cloud Storage ao seu ambiente. Este contentor, também denominado contentor do ambiente, armazena os DAGs, os registos, os plug-ins personalizados e os dados do ambiente. Para mais informações sobre o contentor do ambiente, consulte o artigo Dados armazenados no Cloud Storage.
Para uma análise detalhada dos componentes de um ambiente, consulte o artigo Arquitetura do ambiente.
Interfaces do Cloud Composer
O Cloud Composer oferece interfaces para gerir ambientes, instâncias do Airflow que são executadas em ambientes e DAGs individuais.
Por exemplo, pode criar e configurar ambientes do Cloud Composer na Google Cloud consola, na CLI do Google Cloud, na API Cloud Composer ou no Terraform.
Como outro exemplo, pode gerir DAGs a partir da Google Cloud consola, da IU nativa do Airflow ou executando comandos da CLI Google Cloud e da CLI Airflow.
Funcionalidades do Airflow no Cloud Composer
Quando usa o Cloud Composer, pode gerir e usar funcionalidades do Airflow, como:
DAGs do Airflow: pode adicionar, atualizar, remover ou acionar DAGs do Airflow na Google Cloud consola ou através da IU nativa do Airflow.
Opções de configuração do Airflow: pode alterar as opções de configuração do Airflow dos valores predefinidos usados pelo Cloud Composer para valores personalizados. No Cloud Composer, algumas das opções de configuração estão bloqueadas e não pode alterar os respetivos valores.
Plugins personalizados: pode instalar plugins do Airflow personalizados, como operadores, hooks, sensores ou interfaces do Apache Airflow personalizados e internos, no seu ambiente do Cloud Composer.
Dependências do Python: pode instalar dependências do Python a partir do Python Package Index no seu ambiente ou a partir de um repositório de pacotes privado, incluindo repositórios do Artifact Registry. Se as dependências não estiverem no índice de pacotes, também pode usar plug-ins.
Registo e monitorização de DAGs, componentes do Airflow e ambientes do Cloud Composer:
Pode ver os registos do Airflow associados a tarefas DAG individuais na interface Web do Airflow e na pasta
logs
no contentor do ambiente.Registos do Cloud Monitoring e métricas de ambiente para ambientes do Cloud Composer.
Controlo de acesso no Cloud Composer
A gestão da segurança é feita ao Google Cloud nível do projeto e pode atribuir funções do IAM que permitem que utilizadores individuais modifiquem ou criem ambientes. Se alguém não tiver acesso ao seu projeto ou não tiver uma função do IAM do Cloud Composer adequada, essa pessoa não pode aceder a nenhum dos seus ambientes.
Além do IAM, pode usar o controlo de acesso da IU do Airflow, que se baseia no modelo de controlo de acesso do Apache Airflow.
Para mais informações acerca das funcionalidades de segurança no Cloud Composer, consulte o artigo Vista geral da segurança do Cloud Composer.
Redes de ambiente
O Cloud Composer suporta várias configurações de rede para ambientes, com muitas opções de configuração. Por exemplo, num ambiente de IP privado, os DAGs e os componentes do Airflow estão totalmente isolados da Internet pública.
Para mais informações sobre as redes no Cloud Composer, consulte as páginas para funcionalidades de rede individuais:
- Ambientes de IP público e IP privado
- Associar um ambiente à sua rede de VPC
- Ambientes de VPC partilhada
- Configurar os VPC Service Controls
Outras funcionalidades do Cloud Composer
Outras funcionalidades do Cloud Composer incluem:
- Ambientes de escalabilidade automática
- Desenvolvimento com ambientes Airflow locais
- Ambientes altamente resilientes
- Resumos do ambiente
- Encriptação com chaves de encriptação geridas pelo cliente (CMEK)
- Integração da linhagem de dados com o catálogo universal do Dataplex
Perguntas frequentes
Que versão do Apache Airflow usa o Cloud Composer?
Os ambientes do Cloud Composer baseiam-se em imagens do Cloud Composer. Quando cria um ambiente, pode selecionar uma imagem com uma versão específica do Airflow:
- O Cloud Composer 3 suporta o Airflow 2.
- O Cloud Composer 2 suporta o Airflow 2.
- O Cloud Composer 1 suporta o Airflow 1 e o Airflow 2.
Tem controlo sobre a versão do Apache Airflow do seu ambiente. Pode decidir atualizar o seu ambiente para uma versão posterior da imagem do Cloud Composer. Cada lançamento do Cloud Composer suporta várias versões do Apache Airflow.
Posso usar a IU e a CLI do Airflow nativas?
Pode aceder à interface Web do Apache Airflow do seu ambiente. Cada um dos seus ambientes tem a sua própria IU do Airflow. Para mais informações sobre o acesso à IU do Airflow, consulte o artigo Interface Web do Airflow.
Para executar comandos da CLI do Airflow nos seus ambientes, use os comandos gcloud
.
Para mais informações sobre a execução de comandos da CLI do Airflow em ambientes do Cloud Composer, consulte o artigo Interface de linhas de comando do Airflow.
Posso usar a minha própria base de dados como base de dados do Airflow?
O Cloud Composer usa um serviço de base de dados gerido para a base de dados do Airflow. Não é possível usar uma base de dados fornecida pelos utilizadores como a base de dados do Airflow.
Posso usar o meu próprio cluster como um cluster do Cloud Composer?
O Cloud Composer usa o serviço Google Kubernetes Engine para criar, gerir e eliminar clusters de ambiente onde os componentes do Airflow são executados. Estes clusters são totalmente geridos pelo Cloud Composer.
Não é possível criar um ambiente do Cloud Composer com base num cluster do Google Kubernetes Engine autogerido.
Posso usar o meu próprio registo de contentores?
O Cloud Composer usa o serviço Artifact Registry para gerir repositórios de imagens de contentores usados pelos ambientes do Cloud Composer. Não é possível substituí-lo por um registo de contentores fornecido pelo utilizador.
Os ambientes do Cloud Composer são zonais ou regionais?
Quando cria um ambiente, especifica uma região para o mesmo:
Os ambientes padrão do Cloud Composer têm uma base de dados do Airflow zonal e uma camada de execução do Airflow de várias zonas. A base de dados do Airflow está localizada numa das zonas na região especificada, e os componentes do Airflow estão distribuídos por várias zonas.
Altamente resiliente (altamente disponível) Os ambientes do Cloud Composer têm uma base de dados do Airflow multizonal e uma camada de execução do Airflow multizonal. Um ambiente altamente resiliente é executado em, pelo menos, duas zonas da região selecionada. O Cloud Composer distribui automaticamente os componentes do seu ambiente entre zonas. O componente do Cloud SQL que armazena a base de dados do Airflow tem uma instância principal e uma instância de reserva distribuídas entre zonas na região selecionada.