Curso de Apache: Servidores Linux (Titulación Universitaria + 8 Créditos ECTS)
Índice
Apache Airflow es una herramienta de código abierto para orquestar flujos de trabajo complejos y pipes de procesamiento de datos. Es una plataforma para programar y supervisar flujos de trabajos para tareas programadas.
Apache Airflow hace que tu flujo de trabajo sea simple, bien organizado y más sistemático
Airflow divide los trabajos en subtareas para automatizarlos programáticamente y permite una planificación y monitorización centralizadas. La automatización de integración de datos, tareas de mantenimiento y tareas administrativas son los casos de uso más comunes. Para ello, permite planificar y ejecutar trabajos como un cronograma.
Airflow también incluye una interfaz de usuario básica y una herramienta CLI para controlar el estado de ejecución de todo el sistema. Su propia API también está en desarrollo.
Un flujo de trabajo o Workflow, puede ser un simple calculo, hacer algunas consultas a la base de datos, aln scripts, etc.
Los workflows se dividen en una o varias tareas que están relacionadas entre sí y forman un grafo llamado DAG (Directed Acyclic Graph), Además, estas tareas que hay en un Workflow se les llama nodos
Los DAGs, son un conjunto de tareaso o nodos relacionadas con el objetivo de completar una tarea más grande.
Los grafos DAG, deben cumplir dos condiciones:
Solo realizan las tareas especificadas en una rama, dependiendo de una condición evaluada previamente, en cada división del flujo. Al no ser posible definir una rama sin ninguna tarea, se utilizan tareas vacías, también conocidas como tareas vacías, para representar ramas sin acciones.
Las DAGS se trabajan a través de un código Python.
Ejemplo con la pipeline anterior:
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.mysql_operator import MySqlOperator
from airflow.operators.python_operator import PythonOperator
from airflow.contrib.operators.spark_submit_operator import SparkSubmitOperator
from airflow.contrib.operators.kafka_producer_operator import KafkaProducerOperator
# Definir la configuración del DAG
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2024, 2, 7),
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'etl_workflow',
default_args=default_args,
description='Descargar datos de MySQL, enviar a Kafka, transformar con Spark y generar mensaje de terminación',
schedule_interval='@daily',
)
# Tarea para descargar datos de MySQL
download_mysql_data = MySqlOperator(
task_id='download_mysql_data',
sql='SELECT * FROM tu_tabla',
mysql_conn_id='tu_mysql_conn_id',
dag=dag,
)
# Tarea para enviar datos a Kafka
send_to_kafka = KafkaProducerOperator(
task_id='send_to_kafka',
topic='tu_topic',
bootstrap_servers='tus_brokers_kafka',
message='Puedes personalizar el mensaje aquí si es necesario',
dag=dag,
)
# Tarea para realizar transformaciones con Spark
def transform_with_spark():
# Código para transformar datos con Spark
pass
transform_data = PythonOperator(
task_id='transform_data',
python_callable=transform_with_spark,
dag=dag,
)
# Tarea para generar mensaje de terminación
def generate_completion_message():
# Código para generar el mensaje de terminación
pass
completion_message = PythonOperator(
task_id='generate_completion_message',
python_callable=generate_completion_message,
dag=dag,
)
# Definir dependencias entre tareas
download_mysql_data >> send_to_kafka >> transform_data >> completion_message
Con una interfaz gráfica se pueden observar mejor las tareas pero para modificarlas es necesario un código Python
Apache Airflow tiene varias ventajas que lo convierten en una herramienta mejor en comparación con otras herramientas en el mercado. Primero, discutiremos sus ventajas y luego algunos beneficios de usar Airflow en lugar de otras herramientas similares.
Apache Airflow es una herramienta robusta y versátil para la gestión de flujos de trabajo.
¿Quieres conocer más sobre Apache Airflow y otros sistemas de código abierto? ¡En Euroinnova tenemos todo lo que necesitas!
Nuestra Formación
Nuestro porfolio se compone de cursos online, cursos homologados, baremables en oposiciones y formación superior de posgrado y máster.
Ver oferta formativa¡Muchas gracias!
Hemos recibido correctamente tus datos. En breve nos pondremos en contacto contigo.