Save 37% off PRO during our Black Friday Sale! »

PYBR 2021 - Usando Airflow para orquestrar sua ETL.

PYBR 2021 - Usando Airflow para orquestrar sua ETL.

9ec7d4840c5ed24f993c6786c1509178?s=128

Mayara Machado

October 10, 2021
Tweet

Transcript

  1. Usando Airflow para orquestrar sua ETL. Python Brasil 12 de

    Outubro 2021 www.2021.pythonbrasil.org.br
  2. Sobre mim Olá, sou Mayara! Data Engineer no Mercado Livre.

    Formada em Sistemas de Informação pela UFS, participante da PyLadies Sergipe, pythonista e entusiasta da área de Dados. /mayaramachado /in/mayaramachado
  3. Agenda O que abordaremos: Introdução Mas afinal, o que é

    o ETL? Airflow? Nunca ouvi falar. Definindo pipelines com Airflow. Próximos passos
  4. Introdução Automatizar processos de dados que realizam movimentação dado uma

    origem. Ex.: ingestão e processamento de base de dados, consumo de APIs, geração de reportes, migração de dados. Pipeline de dados também são software com especificação para os diversos cenários de dados. Por isso, também podemos utilizar os conhecimentos da Engenharia de Software para desempenhar pipelines.
  5. 1 2 3 Definir o processo de carga dos dados

    transformados no Postgres. O que faremos hoje Iremos explorar formas de orquestrar pipelines de ETL utilizando o Airflow. Definir a task de ingestão para consumir a API de Rick and Morty. Definir task para transformação usando PySpark.
  6. Parte I Mas afinal, o que é ETL?

  7. Extract - Transform - Load Processo que realiza a movimentação

    de dados a partir da extração em uma origem, realiza transformação desse dado e por fim carrega os valores em uma base de dados,
  8. Pipelines de dados Processo ponta-a-ponta de movimentação de dados. Esses

    processos incluem a copia de dados, transferência de dados armazenados na nuvem e combinação com outras fontes de dados. É uma terminologia mais geral que engloba ETL e outros tipos de processos de movimentação de dados. Data Pipeline Fonte Destino
  9. Parte II Airflow? Nunca ouvi falar

  10. "Configuration as code" Airflow é uma ferramenta open-source para criação,

    agendamento e monitoração de workflows. Criada no AirBnb, o Airflow é uma ferramenta escrita em Python, que permite a criação de workflows a partir de Python scripts. Em 2016 se tornou um projeto da Apache Foundation.
  11. Dags São grafos acíclicos onde todas as tarefas a serem

    executadas são estruturadas refletindo suas dependências e relacionamentos.
  12. Conceitos Representam uma task no Airflow, definem uma forma de

    integrar com outras ferramentas a partir do Airflow. Operadores É um tipo especial de Operador que aguarda algum trigger (interno ou externo) para iniciar a execução da task. Sensores Provém a interface com a qual os operadores utilizaram para se comunicar com serviços externos ao Airflow. Hooks
  13. BashOperator ExternalTaskSensor S3KeySensor PythonOperator SlackHook TelegramHook Alguns recursos Exemplos de

    Operadores, Sensores e Hooks.
  14. O que é Orquestrador de execução de tarefas em uma

    pipeline. O que não é Uma ferramenta para processar dados.
  15. Definindo uma DAG

  16. Outros conceitos 1 2 3 4 Xcom : 'cross-communications', são

    uma forma de passar valores entre tasks. Podem receber qualquer valor, mas atenção, não utilizar para grande quantidade de dados. Upstream e Downstream: define os relacionamentos entre as tasks. Podem ser definidos com set_upstream() e set_downstream() ou operadores << e >>. Variáveis: uma forma genérica de armazenar e obter valores e configurações no formato chave- valor. Connections: uma forma de armazenar credenciais utilizados na comunicação com serviços externos ao Airflow. Use Airflow + crypto para maior segurança no armazenamento de credenciais.
  17. Definindo uma pipeline com Airflow Part III

  18. Definir as credenciais que iremos usar: As informações HTTP para

    a API, as credenciais do Postgres e informação de conexão com o cluster Spark. Passos Definiremos o Operator que irá fazer as requisições HTTP, consumir a nossa Fonte. Definiremos o Operators para processar um job PySpark para transformação e carga. 1 2 3
  19. Definindo Connections Extraindo os valores Connections Através das Conexões podemos

    definir credenciais para os serviços externos que iremos integrar.
  20. None
  21. XCom

  22. Operators customizados

  23. Logging O Airflow utiliza a biblioteca Logging provida pelo python.

  24. Spark Jobs Exemplos de jobs Sparks para transformação e escrita

    no Postgres.
  25. None
  26. Plus Próximos passos

  27. Crypto Templates com Jinja Adicionar testes unitários e de validação

    das DAGs Padrões de projetos: DAG Factory.
  28. Obrigada!

  29. /mayaramachado /in/mayaramachado may.mchdo@gmail.com Temos vagas!