Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gerenciando workflows de dados com o Apache-Air...

Avatar for Grupy-SP Grupy-SP
December 02, 2017

Gerenciando workflows de dados com o Apache-Airflow

Apresentado no Grupy-SP especial de 10 anos Novembro 2017

Avatar for Grupy-SP

Grupy-SP

December 02, 2017

More Decks by Grupy-SP

Other Decks in Technology

Transcript

  1. Sobre o que eu quero falar... • uma rápida comparação

    com outras ferramentas similares • Explicação de conceitos básicos da framework • ideias para o pessoal que trabalha em área de dados de como utilizar a framework
  2. “Airflow is a platform to programmatically author, schedule and monitor

    workflows.” - From the docs O que é o Airflow?
  3. Vantagens - Backfill de workflows - UI para inspeção e

    gerenciamento dos workflows - Boa integração com containers (tanto para dev quanto para execução “alienada”) - Flexibilidade para execução de ferramentas (inclusive customizadas) arbitrárias - Geração dinâmica de tarefas - Comunidade ativa
  4. Conceitos do Airflow Básicos: • DAGs • Operadores • Tarefas

    (Tasks) • Instância de uma tarefa “Avançados”: • Hooks • Pools • Connections • Queues • XComs • Variables • Branching • SubDAGs • Jinja Templating • Documentation & Notes
  5. DAGs Um Directed Acyclic Graph é um conjunto de tarefas

    que devem ser executadas, organizadas de uma maneira que refletem seus relacionamentos e dependências. Ou seja, um DAG é um “workflow”.
  6. Operadores Operadores são “templates”, “Base Classes” para tarefas parametrizadas. Tem

    muitos operadores já criados pela comunidade, ou pela própria equipe do Airflow. E é bem fácil criar seus próprios operadores. Eles têm 3 utilidades distintas: - Sensores: ficam realizando um check até um critério ser atendido (buscar por um arquivo específico em um S3 por exemplo) - Transferência: transferem dados de um sistema para o outro (i.e. S3 to MySql) - Ação: dizem para outro sistema realizar uma ação (i.e. executar um comando)
  7. Alguns operadores que já vem com o Airflow... • BashOperator

    • PythonOperator • EmailOperator • SqlOperator • HTTPOperator • DockerOperator • S3FileTransferOperator • PrestoToMysqlOperator • SlackOperator • HdfsSensor • HivePartitionSensor • S3KeySensor • BigQueryToCloudStorageOperator • MySqlToGoogleCloudStorageOperator • JiraOperator • PigOperator • HiveToDynamoDBTransferOperator • SparkSqlOperator • Hive2SambaOperator • RedisKeySensor • ...
  8. Tarefas Tarefas são uma instância parametrizada de um operador. Exemplo

    bobo: dag = DAG('tutorial', default_args =default_args) T1 = BashOperator( task_id='sleep', depends_on_past =False, bash_command ='sleep 5', dag=dag)
  9. Instâncias de tarefas É uma execução de uma tarefa contextualizada

    com • um DAG • uma tarefa • um ponto no tempo • Status da execução
  10. Referências para aprendizado… • Understanding Airflow concepts • Airflow Tips,

    Tricks and pitfalls • Why Robinhood uses Airflow • ETL best practices with Airflow • Building a data pipeline with Airflow • Get started developing workflows with Apache Airflow • Integrating Apache Airflow and Databricks: Building ETL pipelines with Apache Spark • Luigi vs Airflow vs Pinball • Airflow at Wepay