Вводящий
Оляр пессоал! 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”