GSP283
Visão geral
Imagine que você tem conjuntos de dados em diversos lugares do mundo e que
seus dados estão em buckets do Google Cloud Storage ou em tabelas do BigQuery.
Como eles podem ser organizados para que sejam consolidados e analisados,
oferecendo insights sobre sua empresa?
O Serviço Gerenciado para Apache Airflow ajuda a criar, programar e monitorar
fluxos de trabalho para mover e tratar dados em diferentes regiões e sistemas
de armazenamento usando uma interface gráfica intuitiva. Ele oferece um
framework flexível com operadores e integrações que permitem a transferência
confiável de dados entre serviços como o BigQuery e o Cloud Storage.
Neste laboratório, você vai criar e executar um fluxo de trabalho do
Apache Airflow usando o
Serviço Gerenciado para Apache Airflow
que realiza as seguintes tarefas:
-
Lê um arquivo de configuração que fornece uma lista de tabelas a serem
copiadas
-
Exporta a lista de tabelas de um conjunto de dados do
BigQuery localizado
nos EUA para o
Cloud Storage
-
Copia as tabelas exportadas do bucket do Cloud Storage nos EUA para o bucket
do Cloud Storage na UE
-
Importa a lista de tabelas para o conjunto de dados de destino do BigQuery
na UE

Atividades deste laboratório
Neste laboratório, você vai aprender a:
- Criar um ambiente do Airflow Gerenciado.
- Criar buckets do Cloud Storage.
- Criar conjuntos de dados do BigQuery.
-
Criar e executar fluxos de trabalho do Apache Airflow no Airflow Gerenciado
para transferir dados entre o Cloud Storage e o BigQuery.
Configuração e requisitos
Antes de clicar no botão Começar o Laboratório
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
- Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento.
No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:
- O botão Abrir Console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer Login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Username"}}}
Você também encontra o nome de usuário no painel Detalhes do Laboratório.
-
Clique em Próxima.
-
Copie a Senha abaixo e cole na caixa de diálogo de Olá.
{{{user_0.password | "Password"}}}
Você também encontra a senha no painel Detalhes do Laboratório.
-
Clique em Próxima.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar.
Ativar o Cloud Shell
O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
-
Clique em Ativar o Cloud Shell
na parte de cima do console do Google Cloud.
-
Clique nas seguintes janelas:
- Continue na janela de informações do Cloud Shell.
- Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.
Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
- Clique em Autorizar.
Saída:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project
Saída:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.
Tarefa 1: Criar um ambiente do Airflow Gerenciado
-
Na barra de título do console do Google Cloud, digite
Airflow Gerenciado no campo de pesquisa e clique em
Airflow Gerenciado na seção "Produtos e página" para
criar um ambiente do Airflow Gerenciado.
-
Depois, clique em Criar ambiente.
-
No menu suspenso, selecione
Airflow Gerenciado de terceira geração.
-
Defina os parâmetros a seguir para o ambiente:
-
Nome: airflow-advanced-lab
-
Local:
-
Versão de imagem: composer-3-airflow-2.n.n-build.n
(selecione a imagem com o maior número disponível)
-
Conta de serviço: conta de serviço padrão do Compute
Engine
-
Modo de resiliência: selecione
Resiliência padrão e, em
Zona do banco de dados do Airflow, selecione
-
Em Recursos do ambiente, selecione
Pequeno.
-
Em Controle de acesso à rede do servidor da web,
selecione Permitir acesso de todos os endereços IP.
Não altere as outras configurações.
-
Clique em Criar.
O processo de criação do ambiente será concluído quando uma marca de seleção
verde for exibida à esquerda do nome dele na página "Ambientes" no console do
Cloud.
Observação: a conclusão do processo de configuração do ambiente pode levar até 20 minutos. Passe para a próxima seção Criar buckets do Cloud Storage" e "Conjunto de dados de destino do BigQuery".
Clique em Verificar meu progresso para conferir o objetivo.
Criar um ambiente do Airflow Gerenciado.
Tarefa 2: Criar buckets do Cloud Storage
Nesta tarefa, você vai criar dois buckets multirregionais do Cloud Storage.
Esses buckets serão usados para copiar as tabelas exportadas entre os locais,
neste caso EUA e UE.
Criar um bucket nos EUA
-
Acesse Cloud Storage > Buckets e clique em
Criar.
-
Dê ao bucket um nome exclusivo que inclua o ID do projeto (por exemplo,
-eua).
-
Em Tipo de local, selecione
EUA (várias regiões nos Estados Unidos).
-
Deixe os demais valores como padrão e clique em Criar.
-
Marque a caixa
Aplicar a prevenção do acesso público neste bucket e clique em
Confirmar no pop-up
O acesso público será bloqueado, se necessário.
Criar um bucket na UE
Repita as etapas para criar outro bucket na região da UE. O nome
exclusivo precisa incluir o local como um sufixo do bucket (por exemplo,
-ue).
Clique em Verificar meu progresso para conferir o objetivo.
Criar dois buckets do Cloud Storage.
Tarefa 3: Criar o conjunto de dados de destino do BigQuery
-
Crie o conjunto de dados de destino do BigQuery na UE com a nova interface
da Web do BigQuery.
-
Acesse Menu de navegação > BigQuery.
Você verá a caixa de mensagem
Olá! Este é o BigQuery no Console do Cloud. Ela tem um link
para o guia de início rápido e uma lista com as atualizações da interface.
-
Clique em Concluído.
-
Em seguida, clique nos três pontos ao lado do ID do projeto do Qwiklabs e
selecione Criar conjunto de dados.
-
Em ID do conjunto de dados, digite
nyc_tlc_EU. Em Tipo de local dos dados,
selecione UE no menu suspenso em
Multirregional.
- Clique em Criar conjunto de dados.
Clique em Verificar meu progresso para conferir o objetivo.
Criar um conjunto de dados do BigQuery
Tarefa 4: Breve introdução aos conceitos básicos do Airflow
-
Enquanto espera o ambiente ficar pronto, leia sobre o arquivo de amostra que
você usará neste laboratório.
O Airflow é uma plataforma para
criar, programar e monitorar fluxos de trabalho programaticamente.
Use o Airflow para criar fluxos de trabalho, como gráficos acíclicos dirigidos
(DAGs, na sigla em inglês) de tarefas. O programador do Airflow executa suas
tarefas em uma matriz de workers enquanto segue as dependências especificadas.
Principais conceitos
DAG: um gráfico acíclico dirigido é um conjunto de tarefas organizadas para
refletir as relações e dependências entre elas.
Operador: é a descrição de uma única tarefa. Em geral, os operadores são atômicos.
Por exemplo, o operador BashOperator é usado para executar o comando
"bash".
Tarefa: uma instância parametrizada de um operador. As tarefas são nós no DAG.
Instância de tarefa: a execução específica de uma tarefa. Composta de um DAG, uma tarefa e um
ponto no tempo. Ela tem sempre um estado indicativo, por exemplo:
running, success, failed, skipped etc.
Aprenda os conceitos do Airflow na
Documentação sobre conceitos.
Tarefa 5: Definir o fluxo de trabalho
Os fluxos de trabalho no Apache Airflow são compostos por
DAGs (gráficos acíclicos dirigidos). O código em
bq_copy_across_locations.py
representa o fluxo de trabalho, também conhecido como DAG. Abra o arquivo para
entender como o DAG é construído. A próxima seção apresenta uma análise
detalhada dos principais componentes.
Para orquestrar todas as tarefas do fluxo de trabalho, o DAG importa estes
operadores:
-
DummyOperator: cria tarefas fictícias de início e término para
gerar uma representação visual melhor do DAG.
-
BigQueryToCloudStorageOperator: exporta tabelas do BigQuery
para os buckets do Cloud Storage usando o formato Avro.
-
GoogleCloudStorageToGoogleCloudStorageOperator: copia arquivos
para os buckets do Cloud Storage.
-
GoogleCloudStorageToBigQueryOperator: importa tabelas de
arquivos Avro no bucket do Cloud Storage.
-
Neste exemplo, a função
read_table_list() está definida para
ler o arquivo de configuração e criar a lista das tabelas a serem copiadas.
# --------------------------------------------------------------------------------
# Functions
# --------------------------------------------------------------------------------
def read_table_list(table_list_file):
"""
Reads the master CSV file that will help in creating Airflow tasks in
the DAG dynamically.
:param table_list_file: (String) The file location of the master file,
e.g. '/home/airflow/framework/master.csv'
:return master_record_all: (List) List of Python dictionaries containing
the information for a single row in master CSV file.
"""
master_record_all = []
logger.info('Reading table_list_file from : %s' % str(table_list_file))
try:
with open(table_list_file, 'rb') as csv_file:
csv_reader = csv.reader(csv_file)
next(csv_reader) # skip the headers
for row in csv_reader:
logger.info(row)
master_record = {
'table_source': row[0],
'table_dest': row[1]
}
master_record_all.append(master_record)
return master_record_all
except IOError as e:
logger.error('Error opening table_list_file %s: ' % str(
table_list_file), e)
-
O nome do DAG é
bq_copy_us_to_eu_01. Como o DAG não é
programado por padrão, requer acionamento manual.
default_args = {
'owner': 'airflow',
'start_date': datetime.today(),
'depends_on_past': False,
'email': [''],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
# DAG object.
with models.DAG('bq_copy_us_to_eu_01',
default_args=default_args,
schedule_interval=None) as dag:
-
Para definir o plug-in do Cloud Storage, a classe
Cloud StoragePlugin(AirflowPlugin) é definida mapeando o hook e
o operador baixados da ramificação estável do Airflow 1.10.
# Import operator from plugins
from gcs_plugin.operators import gcs_to_gcs
Tarefa 6: Ver informações do ambiente
-
Volte para o Airflow Gerenciado para verificar o status
do seu ambiente.
-
Depois que seu ambiente for criado, clique no nome dele para ver os
detalhes.
A página Detalhes do ambiente mostra o URL da interface da
web do Airflow, o ID do cluster do Google Kubernetes Engine e o nome do bucket
do Cloud Storage conectado à pasta de DAGs.
Observação : os serviços gerenciados do Apache Airflow usam o Cloud Storage para armazenar DAGs, também conhecidos como fluxos de trabalho. Cada ambiente tem um bucket do Cloud Storage associado, e apenas os DAGs presentes nesse bucket são programados pelo Airflow.
As próximas etapas precisam ser concluídas no Cloud Shell.
Como criar um ambiente virtual
Os ambientes virtuais Python são usados para isolar do sistema a instalação de pacotes.
- Instale o ambiente
virtualenv:
sudo apt-get install -y virtualenv
- Crie o ambiente virtual:
python3 -m venv venv
- Ative o ambiente virtual:
source venv/bin/activate
Tarefa 7: Criar uma variável para o bucket de DAGs no Cloud Storage
-
Para copiar o nome do bucket de DAGs na página "Detalhes do ambiente" e
definir uma variável associada a ele, execute o seguinte no Cloud Shell:
Observação: não esqueça de trocar o nome do bucket de DAGs no comando a seguir. Acesse Menu de navegação > Cloud Storage > Buckets. O nome será algo parecido com -airflow-advance-YOURDAGSBUCKET-bucket.
DAGS_BUCKET=<your DAGs bucket name>
Essa variável vai ser usada algumas vezes durante o laboratório.
Tarefa 8: Definir variáveis do Airflow
As variáveis do Airflow são um conceito específico dessa plataforma e diferem
das
variáveis de ambiente. Nesta seção, você vai definir as três
variáveis do Airflow
usadas pelo DAG que vamos implantar: table_list_file_path,
gcs_source_bucket e gcs_dest_bucket.
| Chave |
Valor |
Detalhes |
table_list_file_path |
/home/airflow/gcs/dags/bq_copy_eu_to_us_sample.csv |
O arquivo CSV que lista as tabelas de origem e de destino, incluindo o
conjunto de dados.
|
gcs_source_bucket |
{UNIQUE ID}-us |
O bucket do Cloud Storage que será usado para exportar as tabelas do
BigQuery da origem
|
gcs_dest_bucket |
{UNIQUE ID}-eu |
O bucket do Cloud Storage que será usado para importar as tabelas do
BigQuery para o destino
|
O comando gcloud composer executa o subcomando
variables
da CLI do Airflow. O subcomando transmite os argumentos para a ferramenta de
linha de comando gcloud.
Para definir as três variáveis, você executará
composer command uma vez para cada linha da tabela acima. Este é
o formato do comando:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION variables -- \
set KEY VALUE
O seguinte erro do gcloud pode ser ignorado:
(ERROR: gcloud crashed (TypeError): 'NoneType' object is not
callable). Esse é um
problema conhecido
relacionado ao uso do comando
gcloud composer environments run na
versão 410.0.0 do gcloud. Suas variáveis ainda vão ser definidas, apesar da
mensagem de erro.
-
ENVIRONMENT_NAME é o nome do ambiente.
-
LOCATION é a região do Compute Engine onde o ambiente está.
Para executar o comando gcloud composer, é necessário incluir a sinalização
--location ou a
configuração do local padrão.
-
KEY e VALUE especificam a variável e o valor
correspondente que você precisa definir. À esquerda do comando
gcloud, adicione dois traços ( -- ) e depois os
argumentos relacionados ao gcloud. Inclua os argumentos referentes ao
subcomando do Airflow do lado direito. Dê um espaço entre os argumentos
KEY e VALUE usando o comando
gcloud composer environments run com o subcomando de variáveis.
Execute os comandos no Cloud Shell, trocando gcs_source_bucket e
gcs_dest_bucket pelos nomes dos buckets criados na Tarefa 2.
gcloud composer environments run airflow-advanced-lab \
--location {{{ project_0.default_region | "REGION" }}} variables -- \
set table_list_file_path /home/airflow/gcs/dags/bq_copy_eu_to_us_sample.csv
gcloud composer environments run airflow-advanced-lab \
--location {{{ project_0.default_region | "REGION" }}} variables -- \
set gcs_source_bucket {UNIQUE ID}-us
gcloud composer environments run airflow-advanced-lab \
--location {{{ project_0.default_region | "REGION" }}} variables -- \
set gcs_dest_bucket {UNIQUE_ID}-eu
Para ver o valor de uma variável, execute as
variáveis
do subcomando da CLI do Airflow com o argumento get ou use a
IU do Airflow.
Por exemplo, execute o seguinte:
gcloud composer environments run airflow-advanced-lab \
--location {{{ project_0.default_region | "REGION" }}} variables -- \
get gcs_source_bucket
Observação: configure as três variáveis do Airflow usadas pelo DAG.
Tarefa 9: Fazer upload do DAG e das dependências para o Cloud Storage
-
Copie no seu Cloud Shell os arquivos de amostra de documentos de Python do
Google Cloud:
cd ~
gcloud storage cp -r gs://spls/gsp283/python-docs-samples .
-
Faça upload de uma cópia do hook e do operador de terceiros na pasta de
plug-ins do seu bucket de DAGs do Airflow armazenado no Cloud Storage:
gcloud storage cp -r python-docs-samples/third_party/apache-airflow/plugins/* gs://$DAGS_BUCKET/plugins
-
Depois faça upload do DAG e do arquivo de configuração no bucket de DAGs no
Cloud Storage do seu ambiente:
gcloud storage cp python-docs-samples/composer/workflows/bq_copy_across_locations.py gs://$DAGS_BUCKET/dags
gcloud storage cp python-docs-samples/composer/workflows/bq_copy_eu_to_us_sample.csv gs://$DAGS_BUCKET/dags
Os serviços gerenciados do Apache Airflow detectam e registram automaticamente
os DAGs no ambiente do Airflow, e as atualizações são refletidas em poucos
minutos. É possível monitorar o status da tarefa na interface da web do
Airflow e verificar se o comportamento de programação do DAG corresponde à
configuração definida.
Tarefa 10: Conhecer a interface do Airflow
Para acessar a interface da web do Airflow pelo console do Cloud, siga estas
etapas:
- Volte para a página Ambientes no Airflow Gerenciado.
-
Na coluna Servidor da web do Airflow para o ambiente,
clique no link Airflow.
- Clique nas suas credenciais do laboratório.
-
A interface da web do Airflow é aberta em uma nova janela do navegador. Os
dados ainda estarão sendo carregados nesta etapa. Você pode continuar com o
laboratório enquanto isso.
Como conferir as variáveis
As variáveis já definidas são mantidas no seu ambiente.
-
Para conferir as variáveis, selecione Admin >
Variables na barra de menus do Airflow.

Como acionar o DAG manualmente
-
Clique na guia DAGs e aguarde os links serem carregados.
-
Para acionar o DAG manualmente, clique no botão de reprodução para
composer_sample_bq_copy_across_locations:
- Clique em Acionar DAG para confirmar a ação.
Clique em Verificar meu progresso para conferir o objetivo.
Como fazer upload do DAG e das dependências para o Cloud Storage
Como o DAG é executado
Quando você faz upload do arquivo DAG para a pasta de DAGs (local de
armazenamento configurado), o Apache Airflow analisa o arquivo. Se nenhum erro
for encontrado, o fluxo de trabalho vai aparecer na lista de DAGs e entrar na
fila para execução com base na configuração de programação. Se a programação
estiver definida como "Nenhuma", o fluxo de trabalho não será executado
automaticamente e precisará ser acionado manualmente.
Quando o botão de reprodução é pressionado, o status das
Execuções fica verde:
-
Clique no nome do DAG para abrir a página de detalhes correspondente. Nela,
você encontra uma representação gráfica das tarefas e das dependências do
fluxo de trabalho.

-
Na barra de ferramentas, clique em Gráfico e passe o
ponteiro do mouse sobre o gráfico das tarefas para conferir o status de cada
uma. A borda das tarefas também indica o status: verde = em execução,
vermelha = falha etc.

Para executar o fluxo de trabalho outra vez na visualização
Graph:
-
Na visualização Graph na IU do Airflow, clique no gráfico
start.
-
Clique em Clear > Clear existing task para redefinir todas
as tarefas e depois em Clear DAG run para confirmar.
Enquanto o processo está em execução, atualize seu navegador e confira as
informações mais recentes.
Tarefa 11: Validar os resultados
Agora verifique o status e os resultados do fluxo de trabalho nas seguintes
páginas do Console do Cloud:
-
As tabelas exportadas foram copiadas do bucket dos EUA para o bucket do
Cloud Storage na UE. Clique em Cloud Storage para ver os
arquivos Avro intermediários nos buckets de origem (EUA) e de destino (UE).
-
As tabelas da lista foram importadas para o conjunto de dados de destino do
BigQuery. Clique em BigQuery e depois no nome do seu
projeto e no conjunto de dados nyc_tlc_EU para confirmar
que as tabelas podem ser acessadas pelo conjunto de dados que você criou.
Excluir o ambiente do Cloud Composer
-
Volte para a página Ambientes no Cloud Composer.
-
Selecione o ambiente do Cloud Composer.
-
Clique em Excluir.
-
Na caixa de diálogo que aparece, selecione Excluir para confirmar a ação.
Parabéns!
Você copiou de forma programática as tabelas localizadas nos EUA para a UE.
Este laboratório é baseado na
postagem do blog
de David Sabater Dinter.
Próximas etapas
Treinamento e certificação do Google Cloud
Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.
Manual atualizado em 20 de abril de 2026
Laboratório testado em 20 de abril de 2026
Copyright 2026 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.