Herramientas ETL: AirByte - Parte II

Herramientas ETL: AirByte - Parte II
Anterior

En este post, como continuación de nuestra serie sobre herramientas ETL, desgranaremos uno de los softwares más modernos y que más fuerza ha adquirido recientemente en el mercado. Por supuesto, nos referimos a Airbyte.

¿Qué es Airbyte?

Se trata de una herramienta de código abierto centrada en la canalización de datos entre distintas fuentes de forma fácil e intuitiva.

Además, permite crear réplicas incrementales, o no, de forma automática en el tiempo. Todo a través de una interfaz web amigable y limpia. Una de sus principales características es que viene "dockerizada" para ser instalada de forma local, a la vez que ofrece un servicio de pago "hosteado" en la nube y basado en créditos.

Requisitos técnicos

Requisitos técnicos de Airbyte

A diferencia de otras herramientas ETL, Airbyte está compuesto por cinco componentes principales: scheduler, server, temporal, webapp y database.

Estos componentes están diseñados para funcionar eficientemente y se encargan de tareas de planificación de bajo costo computacional y espacial. Por ello, reescalar Airbyte es necesario solo en casos muy concretos en los que se ejecutan más de mil conexiones de forma concurrente.

El usuario promedio de Airbyte tiene de cinco a veinte conectores y de diez a cien conexiones, de las cuales suelen estar activas al mismo tiempo, como máximo, cien.

Software

El trabajo pesado es ejecutado por los Workers de Airbyte, por lo que reescalar Airbyte consiste en proveer a dichos procesos de suficientes recursos: contenedores en el caso de despliegue con Docker y pods en el caso de Kubernetes). Los trabajos de sincronización emplean dos workers: uno para leer de la fuente y otro para escribir en destino.

Nota: la forma más fácil de instalar y ejecutar Airbyte es mediante Docker, por lo que es un requisito indispensable.

Memoria

Uno de los puntos a tener en cuenta es que el worker de destino almacena hasta 10.000 registros en memoria, lo que puede ocasionar problemas con registros grandes. Por ejemplo, una tabla con un tamaño promedio por fila de 0.5MB requerirá 0.5 * 10000 / 1000 = 5GBs de RAM.

Además, los conectores de fuente de bases de datos están hechos en Java, y siguen el comportamiento por defecto de utilizar solo ¼ de la memoria disponible en el host. Por ejemplo, en una instancia de docker configurada con 8 Gb de RAM, un conector Java se limitará a sí mismo a 2Gbs y emitirá excepciones del tipo Out-of-memory si requiere más.

No obstante, se puede especificar el tamaño de bloque a procesar en memoria para cada conexión desde las opciones de Airbyte.

Espacio en disco

El espacio de almacenamiento puede suponer un problema en sincronizaciones que se ejecutan durante largo tiempo, debido principalmente a la producción excesiva de logs, tanto de Docker como de Airbyte.

Además, el típico conector de Airbyte tiene un tamaño de aproximadamente 300 MB, por lo que los requerimientos de una instancia de Airbyte con múltiples conectores pueden aumentar hasta 10 GB fácilmente.

Debido a esto, el equipo de desarrollo de Airbyte recomienda reservar al menos 30 GB de almacenamiento.

Véase más en Requisitos técnicos de Airbyte.

Conectores Airbyte

Cuenta con amplio catálogo de conectores, entre ellos: Prestashop (como fuente de datos), MySQL, Microsoft Dynamics NAV, Shopify, Oracle, etc…

Y, dado que es open source, este catálogo está constantemente en crecimiento. La herramienta incluso provee un formulario para que cualquier usuario pueda solicitar un conector específico.

Asimismo, permite reutilizar un mismo conector en diferentes conexiones, por ejemplo: configurar un conector con Prestashop para extraer los datos  permite conectarse con una base de datos MySQL y con Microsoft Dynamics NAV sin tener que configurar la conexión con Prestashop más de una vez.

Conector de Prestashop

Pros

  • Es fácil de configurar
  • Funciona a través de la API de Prestashop
  • Soporta actualizaciones incrementales

Contras

  • Actualmente no está disponible como destino, por lo que solo es útil para extraer datos de Prestashop y no para insertarlos.

Transformaciones en Airbyte

AirByte ofrece la posibilidad de realizar transformaciones básicas y personalizadas sobre los datos.

Básicas: Vienen como una opción dentro de la interfaz gráfica (como por ejemplo normalizaciones), aunque dependiendo de la estructura de los datos pueden funcionar o no.

Personalizadas: Para transformaciones más complejas AirByte emplea DBT, una herramienta que permite especificar las transformaciones a realizar mediante ficheros SQL. De este modo, el proceso consiste en crear un proyecto DBT, subirlo a un repositorio y especificar dicho repositorio dentro de AirByte para que este se encargue de ejecutar las transformaciones.

    • Pros: se pueden reutilizar transformaciones entre distintos proyectos, AirByte se encarga de ejecutar la transformación.
    • Contras: requiere una base de conocimientos sólida de SQL (y Python si se quiere usar Jinja para mejorar el código), implica aprender una nueva tecnología.

Planes y precios Airbyte

En su versión local, Airbyte es totalmente gratuito, mientras que en su versión cloud puede funcionar bajo un modelo de créditos o un modelo personalizado a acordar con la empresa.

Créditos

Este plan está disponible solo en los Estados Unidos. Incluye gestión y alojamiento en la nube, Oauth para conectar fuentes y destinos, gestión de acceso de usuarios con usuarios ilimitados, múltiples espacios de trabajo, soporte de chat en la aplicación con respuesta de soporte de 1 hora, compatibilidad con SLA del 99 % para conectores certificados y túneles SSH.

Los créditos son equivalentes a tiempo de cómputo, y dicho tiempo depende del tipo de la fuente de datos. Cada crédito tiene un costo de 2.50 $. Las relaciones entre los tipos de fuentes y los créditos pueden verse en la siguiente tabla:

Tipo de fuente ¿Qué significa 1 crédito?
Fuentes API 1 hora de cómputo (360k filas en promedio)
Bases de Datos 1/10 hora de cómputo (450k filas en promedio)
Archivos 1/4 hora de cómputo (65k filas en promedio)
Conectores personalizados 1 hora de cómputo (360k filas en promedio)

Pros y contras generales 👍👎

Pros de Airbyte

Sencilla de utilizar, no requiere una formación compleja.

Open source, posibilidad de funcionar en local sin ningún coste económico adicional.

Tiene un modo cloud, con planes de suscripción basados en crédito.

Dockerizada, facilita su instalación y puesta en marcha.

Conector Prestashop (fuente) basado en API

Amplio catálogo de conectores, Microsoft Dynamics Nav, Oracle, AWS, etc…

Soporte para DBT, posibilita la reutilización de transformaciones e incluso la delegación del desarrollo de las mismas.

Contras de Airbyte

No tiene un conector Prestashop de destino, por lo que no permite insertar la información directamente en la página web.

Únicamente soporta DBT para transformaciones complejas, lo que implica conocer a fondo esta herramienta.

Airbyte: Conclusiones

AirByte es una herramienta ETL moderna y fácil de instalar y usar que funciona bastante bien para la parte de extraer y cargar datos entre distintas plataformas sin apenas esfuerzo.

Sin embargo, su capacidad de transformación está casi por completo limitada al conocimiento que posea el usuario sobre SQL, debido a que solo soporta transformaciones mediante DBT.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments