Рубрики
Без рубрики

Sameiros Passos Com o Apache Airflow

Вводясь Оляр Пессоал! APORTUNIDADE DE CONHECER O APACHE AIRFLOW E COMO ACHEI … Tagged с воздушным потоком, ETL, рабочим процессом, Python.

Вводящий

Оляр пессоал! 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”