Anda di halaman 1dari 27

Fernando Gandia

Fernando Gandia
Conceptos generales

La plataforma
Sus componentes principales
Interfaces de comunicacin

DAGs
Como se especifican?
Como se importan en la plataforma?
Como se ejecutan y se prueban?

Operadores
Por defecto
Propios

Interfaz de usuario

Ejemplos
Fernando Gandia

Qu es Airflow?

Plataforma que permite Describir , Temporizar y Monitorizar flujos de trabajo.

Por qu surge Airflow?


CRON
Seleccionar datos Predecir Decidir

22:00 00:00 02:00 Especifica el inicio de cada tarea

Seleccionar datos Predecir Decidir Cada tarea se dispara al llegar un


instante. No por dependencia
22:00 23:30 01:00 con otra tarea

Seleccionar datos Predecir Decidir Manejo de errores es complejo

22:00 23:30 01:00


Fernando Gandia

La esencia de Airflow?

DAG (Directed Acyclic Graphs):


Coleccin de tareas, organizadas de tal manera, que queden
reflejadas sus relaciones y dependencias.
Grafo acclico dirigido:
Las aristas tienen un sentido definido.
No tiene ciclos.
Se especifican en ficheros Python
Fernando Gandia
Conceptos generales

La plataforma
Sus componentes principales
Interfaces de comunicacin

DAGs
Como se especifican?
Como se importan en la plataforma?
Como se ejecutan y se prueban?

Operadores
Por defecto
Propios

Interfaz de usuario

Ejemplos
Fernando Gandia

Web Server Scheduler DataBase


Comando Comando Comando
airflow webserver p <puerto> airflow scheduler airflow initdb
Fernando Gandia

Command Line Interface Web User Interface


Fernando Gandia
Conceptos generales

La plataforma
Sus componentes principales
Interfaces de comunicacin

DAGs
Como se especifican?
Como se importan en la plataforma?
Como se ejecutan y se prueban?

Operadores
Por defecto
Propios

Interfaz de usuario

Ejemplos
Fernando Gandia

1 Importar mdulos. 3 Instanciar el DAG

4 Crear cada tarea, asignndole un tipo de operador y sus


correspondientes parmetros.
2 Diccionario de argumentos
5 Especificar relaciones y
dependencias.
Fernando Gandia

1 Copiar fichero .py en la carpeta dags

Dag Folder

2 Comando airflow list_dags

Scheduler
3 Si el Scheduler est en marcha el Dag se compila y se
importa automticamente en la UI
Fernando Gandia

Por defecto, al
importar un DAG,
inicialmente la
temporizacin del
mismo est
encendida.

A menos que, en
las opciones de
configuracin
hayamos
desactivado dicha
caracterstica.
Fernando Gandia

Si hemos
especificado una
fecha de inicio, se
llevan a cabo
ejecuciones de
relleno hasta la
fecha actual
Fernando Gandia

Compilar python dag_file.py

Ejecutar una
tarea especfica
airflow test dag_id task_id execution_date

Ejecutar DAG airflow backfill dag_id s start_date e end_date


Fernando Gandia
Conceptos generales

La plataforma
Sus componentes principales
Interfaces de comunicacin

DAGs
Como se especifican?
Como se importan en la plataforma?
Como se ejecutan y se prueban?

Operadores
Por defecto
Propios

Interfaz de usuario

Ejemplos
Fernando Gandia

3 tipos de operadores

Tipo 1 Tipo 2 Tipo 3

Llevan a cabo una Sensores que se


accin o le Transfieren mantienen en
indican a otro datos de un ejecucin hasta que
sistema que la sistema a otro se lleva a cabo
realice. cierta condicin
Fernando Gandia

BaseOperator

BashOperator BranchPythonOperator SubDagOperator

PythonOperator DummyOperator SubDagOperator

SimpleHttpOperator ShortCircuitOperator TriggerDagRunOperator

HttpSensor DummySkipOperator
Fernando Gandia
Qu necesidad deba cubrir?
Trata con datos de Hive o Impala a travs de scripts de Python / PySpark desde un entorno de Airflow remoto.

Qu opciones me aportaba Airflow?


Infraestructura de datos y
Entorno Airflow
Si se interrumpe la tarea se procesamiento distribuido
Dag mantiene la ejecucin en la
insfraestructura
Opcin
1 SSHExecuteOperator
Puerto 22 Ssh

Bash

Python / PySpark

Libreras , Scripts

Hive Impala HDFS


Fernando Gandia
Qu necesidad deba cubrir?
Trata con datos de Hive o Impala a travs de scripts de Python / PySpark desde un entorno de Airflow remoto.

Qu opciones me aportaba Airflow?


Infraestructura de datos y
Entorno Airflow
procesamiento distribuido
Dag
Opcin
1 SSHExecuteOperator
Puerto 22 Ssh

Los datos se tratan en el entorno


Opcin BashOperator Bash
2 Airflow y su mbito est dentro del
Python
script Python.
Libreras , Scripts Python / PySpark
Impyla No hay procesamiento distribuido.
ODBC Libreras , Scripts

Hive Impala HDFS

Puerto 1000 HiveServer


Fernando Gandia
Qu necesidad deba cubrir?
Trata con datos de Hive o Impala a travs de scripts de Python / PySpark desde un entorno de Airflow remoto.

Qu opciones me aportaba Airflow?


Infraestructura de datos y
Entorno Airflow
procesamiento distribuido
Dag
Opcin
1 SSHExecuteOperator
Puerto 22 Ssh

Opcin BashOperator Bash


2
Python
Libreras , Scripts Python / PySpark
Impyla
ODBC Libreras , Scripts

Opcin HiveOperator
3 Se necesita tener Hadoop y Hive
Hive HDFS
Hive - Beeline instalados en mismo entorno Impala
Hadoop Airflow Puerto 1000 HiveServer
ODBC
Fernando Gandia
Requisitos para mi operador?
No instalar nada mas en el entorno Airflow
Los datos y los scripts deban mantenerse en la infraestructura Librera pxssh
Sesin SSH interactiva

Cmo encripto los datos de conexin SSH?


Airflow proporciona mdulos de conexin llamados Hooks

1 Crear una conexin SSH con nuestro usuario propio


en la interfaz de Airflow
2 Utilizar estos datos de conexin desde el cdigo

from airflow.contrib.hook import SSHHook

mi_hook = SSHHook ( mi_conexion )


mi_conexion
mi_hook.host
mi_hook.login
mi_hook.password
Fernando Gandia
Cmo hago de mi solucin un operador de Airflow?

from airflow.plugins_manager import AirflowPlugin


1 Creo un fichero
.py
class myOperador (BaseOperator)

def __init__ (argumentos_del_operador)


super (myOperador, self).__init__(*args,**kwargs)

def execute
2 Copiar fichero .py en
la carpeta plugins
def on_kill

Plugins
class myPlugin(AirflowPlugin)
Folder
name = myPlugin
operators = [myOperador]
flask_blueprint = []
hook = []
executors = []

Fernando Gandia
Conceptos generales

La plataforma
Sus componentes principales
Interfaces de comunicacin

DAGs
Como se especifican?
Como se importan en la plataforma?
Como se ejecutan y se prueban?

Operadores
Por defecto
Propios

Interfaz de usuario

Ejemplos
Fernando Gandia

DAGS Resumen del estado de todos los DAGS.


Fernando Gandia

Data Profiling Querys sobre los orgenes de datos definidos.


Fernando Gandia

Browse Comprobar el estado de ejecucin de un elemento en particular


Fernando Gandia

Admin Administracin de la plataforma, orgenes de datos y variables


Fernando Gandia
Conceptos generales

La plataforma
Sus componentes principales
Interfaces de comunicacin

DAGs
Como se especifican?
Como se importan en la plataforma?
Como se ejecutan y se prueban?

Operadores
Por defecto
Propios

Interfaz de usuario

Ejemplos

Anda mungkin juga menyukai