Вводящий
Оляр пессоал! Aportunidade De Conhecer o Apache Airflow E Como Achei Muito Bacana Resolvi Aprofundar UM Pouca Nos Conceitos Dessa Ferramenta. Este artigo vai serllgo bem inventório Вау Эйгор Акхи Альгунс Conceitos Básicos Sobre Seu Funcionamento, Instalação E A Criação dum Fluco de Trabalho.
Воздушный поток É UMA Plataforma Criada Pelo Airbnb, Escrita EM Python, Que Se Tornou Open-Source EM 2015 E logo Depois Cedida Para o Apache Foundation.
O airflow é rum orquestrador de flucosos de trabalho. COM ELE PodeMos Programagear, Agendar E Monitorar Consultas Diventas Fontes de Dados, Fazer Tratamentos de Forma Smples. Veja alguns exemplos de Casos de Uso:
- График Кррема Бм, Де Форма Периодика Оу Não, De Migração de Dados de Uma Tabela Para Outra;
- Importar Dados Partir de Várias Fontes E Unifical EMMA Base Centralizada.
Instalando
Primeiramente Vovê deve Ter Um Ambiente Funcally Com Python 3 Antes de Prosseguir Ou Preferiar Rodar Através do Docker Compose Disponivel Нет сайта Do Apache Airflow.
Optei Pela Instalação Местный пункт FiCar Mais Didático. IREMOS Fazer A Instalação Do Airflow EM Sua Versão Estável (V2.0.2). Conforme Sugreida EM SUA Documentaçããofial Devemos Fazer Sua Instalação Usando O Comando Пип , Вы Суджа, Поэзия е Pip-Tools NãO SãO RECOMENDADOS.
Crie Um Diretório, Onde Ficará o Projeto.
$ mkdir apache-airflow $ cd apache-airflow $ python3 -m venv .venv $ source .venv/bin/activate
Agora Vamos Instalar o Airflow, Выполните o Comando Abaixo:
$ pip install apache-airflow
Após instalação, iremos diremos uma variável de Ambiente que inde inde onde o Airflow Está Instalado.
$ export AIRFLOW_HOME=$PWD
Agora Vamos Inaclyzar O Ambiente.
$ airflow db init
Após Executar Esse Passo, Notamos Que Ele Cria o Arquivo de Configuração, UM Banco de Dados SQLite Onde Será Armazenados OS Metadados DOS Рабочие процессы, O Arquivo de Configuração Way Weblow WebServer E A Em Diretório de logs.
AIRFLOW_HOME ├── airflow.cfg ├── airflow.db ├── logs └── webserver_config.cfg
Antes de Subir O Servidor Do Airflow, Primiramente Vamos Criar Usuário Via Cli Do Airflow, Conforme O Exemplo Abaixo E Diffir Sua Senha.
$ airflow users create \
--username admin \
--firstname Jean \
--lastname Cabral \
--role Admin \
--email seumelhor@email.com
Определение Ocesso, Vamos Agora Subir O Nosso Servidor E Acessar O Dashboard, Executando O Comando Abaixo.
$ airflow webserver -p 8084
Нет Comando Acima ESTOU Executando O Servidor Na Porta 8084, Caso O Parametro Port Nao Seja Passado Ele Será Executado Na Porta Padrão 8080. Para Ver Mais Parametros Execute поток воздуха WebServer --help Отказ
DEPOIS de efetuar o Войти, Podemos ver a lista todos os workflows que vem por ‘default’ na instalação da ferramenta como exemplos, que Servem de Base Para Construirmos Nossas Points. Esshivel ocultar esses exemplos alterando A a Propriedade load_examples. Нет Arquivo airflow.cfg Отказ
O Dashboard do Airflow É BEM Intuitivo, Através Dele PodeMos Ter Consolole Das Execuções e o Histórico de Cada Um Deles, log de execução, gráficos e и т. Д.
Antes de Criarmos o Nosso Primeiro Workflow, ванные ванные важности Vamos Ver Concceitos:
ETL : (Экстракт, преобразование, нагрузка): Processimento Geral Para Copiar de Uma OU MAIS FONES DE DADOS PARA UM DESTINADO DESTINO;
Даг : (Направленный ациклический график): Coleção de Todas As Tarefas a Serme Executadas, Organianastas de Forma que отражает relação e eneedêias entre elas. EM Termos Smarple, Dag é Uma Coleção de Todas, как Pequenas Tarefas Que Se Unem Para Realizar UMA Grande Tarefa.
Оператор : Enquanto DAG определяет COMO O Fluco Vai Ser Executado, O Оператор O Определяет o Que Será Feito;
- Башоператор : Executa Comandos No Bash
- Pythonoperator : Usado Para Chamar Python Функция на DAG
- Emailoperator : Envio de Email.
- SimpleHttpoperator : Fazer Requisições http
Задача : Instância de umm оператор Em Execução;
Рабочий : Unidade de Trabalho (Processo, Container OU Serviço) Que Realiza O Processame de Uma Tarefa de Cada Vez;
Планировщик : Unidade de agendamento Reberido Para Orquestrar A a Execução de Trabalhos Agendados;
Рабочий процесс Criando Nosso
O Fluco de Trabalho Pode Serm Cálculo Smples, UMA Consulta Нет Banco de Dados, Comando Bash, Script Python, Consultas Postgres, Consultas BigQuery и т. Д. O Fluco de Trabalho é Delivido Em Uma ou mais tarefas que se relacionam entre si e formamm dag.
Вамос Клюр Диреторио Чамадо Dags E Doctro Dele Iremos Кррак Хуспт Python Chamado print_date_file.py Que Fará o Seguinte: КРИРС ИМКОВАЯ ТЕКЛО ТЕЛЕЙМ DADO DADO DADORIOI E ASCREVER A Ancual.
Vamos Ao. Código.
import airflow from airflow import DAG from airflow.operators.bash_operator import BashOperator from datetime import timedelta
Essas São как Libs que Iremos Utilizar Em Nossa dag. COMO IREMOS USAR O Bashoperator Precisamos Importar Ela Da Biblioteca Do Airflow.
default_args = {
'owner': 'airflow',
'start_date': airflow.utils.dates.days_ago(2)
}
Эм Default_args Podemos Defire UM Dicionário de Parametros Padrão que Serão Passados Para o Construster de Cada Tarefa.
dag = DAG(
dag_id='save_date_in_file_txt',
default_args=default_args,
schedule_interval=timedelta(days=1),
dagrun_timeout=timedelta(minutes=60),
tags=['print_date_file']
)
# Imprime a data na saída padrão.
t1 = BashOperator(
task_id='print_date',
bash_command='date',
dag=dag
)
# Cria a pasta tmp caso ela não exista.
t2 = BashOperator(
task_id="make_directory",
bash_command="mkdir -p /home/jean/Code/PlayGround/apache-airflow/tmp",
dag=dag
)
# Faz uma sleep de 5 segundos.
t3 = BashOperator(
task_id='sleep',
bash_command='sleep 5',
retries=3,
dag=dag
)
# Salve a data em um arquivo texto.
t4 = BashOperator(
task_id='save_date',
bash_command='date > /home/jean/Code/PlayGround/apache-airflow/tmp/date_output.txt',
retries=3,
dag=dag
)
Veja Que NAS задачи (T1, T2, T3 E T4) SãO Valores Que Estão Chamando Classe Башоператор E Получение ОС Argentos Burnios Para Execução.
CADA TAREFA TEM SEU task_id que define de forma única uma tarefa e Arguagos Burnios Com Base No Operador Que Estamos Utilizando.
EM NOSSO DAG, ESTAMOS EXECUTANDO QUATRO TADES Differentes, Primeira Está Imprime Data Na Stdoout, Segunda Cria O Diretório TMP; Т3 FAZ Ум Pausa де 5 segundos е а Última CRIA мкм Arquivo Texto, escreve массив данных, электронная é armazenado не diretório Que criamos па t2.
t1 >> t2 >> t3 >> t4 #Fluxo de execução das tasks
Portanto, SEU T1 Obvio Dever Ser Executado Andes de T2, Portanto, DoStimos UM Fluxo de Execução Das Tarefas.
POM FIM, Precisamos Colocar Nosso Arquivo Print_date_file.py Na Pasta Dag E, EM Seguida, ELE Será Carregado Нет сервидоров.
EM Graph View Podemos Visualização do Gráfico de tarefas:
Veja que a ‘Seta’ INDICA A Relação de Ededência. На задачу make_directory зависимость де print_date Отказ
BEM, ESTE FOI UM EMEMPLO MUITO STRPERS DE COMO CRIAMOS TAREFAS E EXPUTAMOS O FLUXO DE TRABALHO. O Intuíto Foi Trazer UMA Visão Geral Do Airflow, E O Pastencial Que Ele Tem Para Auxiliar A Criação de Flucosos de Trabalho EM Geral.
Até Mais!
Оригинал: “https://dev.to/jeancabral/primeiros-passos-com-o-apache-airflow-53oj”