Uno de los componentes clave de todo sistema analítico es la carga de datos. Durante este proceso, los datos generados en los sistemas origen son cargados en el repositorio de datos analítico para su posterior análisis.

Existen grandes diferencias conceptuales entre como los sistemas de Business Intelligence (BI) y los basados en Big Data cargan los datos en el repositorio analítico. En este artículo veremos estas diferencias para tres tipos de arquitectura:

  • BI tradicional
  • Micro cargas (como componente de un sistema BI basado en una Arquitectura Lambda)
  • Big Data

Factores que afectan a la arquitectura de una solución analítica

La decisión sobre qué arquitectura debe ser utilizada en una solución analítica, depende de las 3 V’s de las que hablamos en este artículo.

Por tanto, el volumen de datos generados en los sistemas origen, la variedad de datos y la latencia máxima para la explotación efectiva por parte de los usuarios, son los factores clave para decidir la arquitectura de una solución analítica y, por tanto, de la carga de datos.

Teniendo en cuenta estas tres variables, obtenemos la siguiente tabla, que nos muestra la arquitectura a utilizar en función de las 3 V’s:

Proceso de los datos: Batch vs. Streaming

La carga de datos puede realizarse, por lo que se refiere a cómo se procesan los datos, de dos maneras diferentes:

  • Batch: Los datos se acumulan en el sistema origen. En el momento de iniciarse la carga, estos datos acumulados se procesan a la vez.
  • Streaming: A medida que los datos son generados por el sistema origen, éstos son enviados para su proceso. El volumen de datos procesados depende de la frecuencia de generación de éstos. Este método de proceso de datos permite detectar patrones en los datos en tiempo real. Un ejemplo es el de la detección de fraude en compras online.

Para las tres arquitecturas anteriores, los tipos de proceso de datos que encontramos son:

ETL vs. ELT

Una carga de datos no es únicamente un movimiento de datos. Ésta suele ir acompañada de una transformación de los datos, ya sea en el modelo de datos (cómo se almacenan), en el valor de éstos (los datos pueden cambiar debido a estandardizaciones de valores, por ejemplo), etc.

Esta transformación requiere del uso de recursos del sistema y de tiempo. El objetivo a la hora de diseñar una carga de datos es que tanto el uso de recursos del sistema como del tiempo no supere el máximo establecido en cada caso.

En el caso de disponer de una ventana de tiempo limitada para la ejecución de una carga de datos, lo lógico es minimizar esas transformaciones, para aligerar el trabajo a realizar durante el proceso de los datos. Esta situación es extensible al escenario en el cual debemos procesar grandes cantidades de datos, ya que podríamos alargar el proceso más allá de la ventana de tiempo disponible.

Existen dos tipos de cargas de datos en función de cuándo se realiza la transformación de los datos:

  • ETL (Extraction – Transformation – Load): La transformación de los datos se realiza antes de la carga en el repositorio de datos. En este caso, al acabar la carga, los datos están disponibles en su estado final, listos para ser explotados por los usuarios finales.
  • ELT (Extraction – Load – Transformation): No existe transformación de datos (o en todo caso es mínima) antes de la carga en el repositorio de datos. Posteriormente, los datos son transformados mediante procesos de refinamiento de éstos. En este caso, los datos precisan de esa transformación posterior para poder ser explotados por los usuarios finales.

Para las tres arquitecturas anteriores, los tipos de carga de datos que encontramos según en qué momento se realiza la transformación de los datos son:

Es decir, en una solución Big Data, la transformación de los datos se realizará una vez cargados los datos en bruto en el repositorio de datos. Esta transformación se llevará a cabo mediante procesos de refinamiento de los datos, que irán añadiendo valor a éstos. Estos procesos pueden ser de calidad de datos, de enriquecimiento, analíticos, etc.

Conclusión

Existen grandes diferencias entre las cargas de datos de los sistemas BI y Big Data.

La carga de datos de un sistema BI (ya sea tradicional o con arquitectura Lambda), procesa los datos en modo batch, mientras que un sistema basado en Big Data puede utilizar cargas batch o basadas en streaming.

Cuando las transformaciones se hacen durante la carga y antes de dejar los datos en las tablas finales del repositorio de datos, se denomina ETL. Este tipo de cargas es el usado en los sistemas BI.

Cuando las transformaciones se realizan posteriormente a la carga de datos en el repositorio, éstas dotan a los datos de calidad, los refinan, los enriquecen y les proporcionan un valor añadido, se denomina ELT. Big Data usa este tipo de cargas.

Elegir el tipo de carga correcto para cada escenario es clave para el éxito de una solución analítica. De ello se deriva poder disponer de los datos para la toma de decisiones de manera efectiva. El hecho de utilizar una carga de datos errónea puede suponer el fracaso del proyecto de creación de una solución analítica.

Deja una respuesta