Saltar al contenido
Molinare

Cree una arquitectura de canalización de big data universal


La forma más rápida y, a menudo, más eficiente de mover grandes cantidades de cualquier cosa desde el punto A al punto B es a través de una tubería. Ya sea que estén conectados a carriles en una autopista o arterias principales en el cuerpo humano, las tuberías pueden hacer avanzar los objetos rápidamente y permitirles separar y realizar tareas fácilmente a lo largo de la ruta. El mismo principio se aplica a una canalización de big data.

Para poner el término Big data En contexto, cuando los datos y la frecuencia con la que se crean son bajos, un correo electrónico con un documento adjunto es suficiente para transmitir y un disco duro es suficiente para almacenarlos, dijo David Schaub, ingeniero de Big Data en Shell. Cuando los datos son pequeños y la frecuencia es alta, tiene sentido automatizar el envío o el guardado de documentos con una sencilla herramienta lista para usar. Cuando se exceden los límites de las herramientas listas para usar para la transmisión o el almacenamiento, los datos se consideran «grandes».

«Esto requiere una herramienta que requiere más configuración de lo normal», explicó Schaub. «Una canalización de big data es una herramienta diseñada para controlar el flujo de dichos datos, generalmente de un extremo a otro, desde el momento de la generación hasta el almacenamiento».

¿Qué es una canalización de big data?

Una de las razones más comunes para mover datos es que a menudo se generan o capturan en una base de datos transaccional, lo que no es ideal para ejecutar análisis, dijo Vinay Narayana, jefe de ingeniería de big data en Wayfair. A menudo, para que sean más útiles, estos datos deben trasladarse a un almacén de datos, lago de datos o sistema de archivos Hadoop (HDFS), o de un almacén de datos a otro en un lote o en tiempo real.

«La canalización de big data permite el flujo de datos desde el origen al destino mientras que los cálculos y las transformaciones se realizan sobre la marcha», dijo Serge Vilvovsky, fundador y director ejecutivo del proveedor de seguridad del lago de datos en la nube AltaStata y miembro del Consorcio de Ciberseguridad Sloan del MIT. «Con la ayuda de los pipelines, las empresas pueden convertir los datos en una ventaja competitiva para decisiones inmediatas o futuras».

La arquitectura y la ingeniería de big data pueden ser complejas. Por lo tanto, los desarrolladores de software con cierta experiencia en el manejo de grandes cantidades de datos generalmente participan en la construcción de una canalización de datos. Para algunas fechas, p. Ej. B. Es posible que se requiera texto libre, científicos de datos.

Gráfico de un sistema de canalización de big data específico del cliente.

Por qué es importante una arquitectura de canalización de big data

Una canalización de big data permite a una empresa mover y consolidar datos de múltiples fuentes para obtener una perspectiva única sobre las tendencias que pueden revelar los datos, dijo Eugene Bernstein, desarrollador de big data de Granite Telecommunications.

Schaub agregó que lograr una arquitectura de canalización de big data correcta es importante, ya que los datos casi siempre deben reconfigurarse para pasar por otros procesos comerciales, como la ciencia de datos, el análisis básico o las funciones básicas de una aplicación o programa para el que fueron registrados. procesada.

Mover datos de un almacén de datos a otro se vuelve más difícil cuando hay varios almacenes de datos involucrados y están distribuidos en centros de datos de nube pública y local. Este entorno, dice Narayana, es común hoy en día, ya que las grandes empresas continúan migrando procesos a la nube.

Fases y componentes clave en una canalización de datos

Los pasos clásicos de una canalización de datos son extraer, transformar y cargar (ETL). «Una vez que se han extraído los datos», explicó Vilvovsky, «se debe seguir un proceso de limpieza en el que solo se dejan los campos de datos requeridos y se convierten en formatos adecuados para el cálculo. Se pueden vincular múltiples fuentes de datos mediante procedimientos de combinación y agregación».

Los datos son generados primero por un usuario o proceso y necesitan ser movidos a una base de datos. Estos pasos se conocen como recopilación e ingestión. Según Narayana, los datos sin procesar se recopilan primero y se envían a un sistema de mensajería global como Kafka, desde donde se distribuyen a varios almacenes de datos a través de un procesador de flujo como Apache Flink, Storm y Spark.

En este punto, se considera que los datos se han limpiado parcialmente. Sin embargo, necesita un procesamiento adicional antes de que otros ingenieros, científicos de datos y analistas puedan utilizarlo de manera productiva. Cada uno de estos grupos puede procesar más los datos y almacenarlos en un lago de datos o almacén, donde se puede utilizar para recomendaciones, precios y otros modelos, así como para generar informes.

«Los datos no estructurados, como el texto libre, se pueden convertir en datos estructurados y las partes de interés se pueden extraer de imágenes y archivos PDF para análisis futuros», explicó Schaub. «A veces, se pueden utilizar fuentes de datos de terceros, como los resultados de búsqueda web, para enriquecer los datos. El propósito de este proceso es mejorar la usabilidad de los datos. Algunos datos confidenciales se pueden eliminar u ocultar. Los datos deben estar listos para cargarse en el destino. «»

Diferentes tipos de arquitecturas de canalización de big data

Las empresas suelen depender de tres tipos de transferencias de canalización de datos.

  • Transmisión por lotes se refiere a compilar bloques de datos en almacenamiento temporal y enviarlos como un grupo en un horario, dijo Schaub. Esto se puede hacer si hay problemas de latencia intermitente o si el acceso a estos datos no es urgente. «El enfoque por lotes», agregó Vilvovsky, «se basa en llamar a la tubería con regularidad, por ejemplo, una vez al día o a la semana. La tubería se inicia, completa la cadena de pedidos y se cierra».
  • Transmisión en tiempo real se refiere a datos que continúan almacenándose y procesándose desde el momento en que se generan, p. ej. B. una fuente de datos en vivo. «La canalización de transmisión computa los datos de los sensores y, por lo general, se ejecuta de forma indefinida», dijo Vilvovsky. «Desde la perspectiva de la implementación, la informática de transmisión utiliza micro-lotes que se ejecutan en un corto período de tiempo».
  • Arquitectura lambda Intente combinar la transmisión por lotes y en tiempo real sincronizándola con el almacenamiento de datos en el mismo archivo agregándolos constantemente. «Es muy difícil hacer todo internamente porque los componentes por lotes y en tiempo real se codifican de forma independiente y deben estar sincronizados cuando se escribe el archivo», advirtió Schaub. «Por lo tanto, esto se hace con mayor frecuencia con un servicio en la nube». Según Vilvovsky, la arquitectura Lambda puede o no ser aplicable para el procesamiento por lotes y de flujo. Las funciones de AWS Lambda tienen algunas limitaciones. Por ejemplo, el límite de tiempo de Lambda es de 15 minutos y el límite de tamaño de la memoria es de 10 GB. Para tareas a corto plazo, no necesita mucha memoria por tarea, este es un enfoque muy adecuado. Lambda se puede escalar a un paralelismo prácticamente ilimitado. «

Ejemplos de tecnologías para canalizaciones de big data

La mayoría de las empresas dependen de varios proveedores para administrar sus activos de datos. Según Bernstein, Granite Telecommunications utiliza MapReduce, Hadoop, Sqoop, Hive e Impala para el procesamiento por lotes. Los datos provienen de archivos planos o bases de datos de Oracle y SQL Server. Para el procesamiento en tiempo real, la empresa utiliza Kafka, PySpark, Hadoop, Hive e Impala.

Según Narayana, una organización típica tiene canalizaciones de datos por lotes y en tiempo real que alimentan un almacén de datos como Snowflake, Redshift o BigQuery.

Tanto las canalizaciones de datos por lotes como en tiempo real entregan datos parcialmente limpiados a un almacén de datos. Los científicos y analistas de datos suelen realizar varias transformaciones además de estos datos antes de usarlos para devolver los datos a sus modelos o informes. Las canalizaciones también pueden ejecutar ETL. Los datos sin procesar se extraen de la fuente y se cargan rápidamente en un almacén de datos donde tiene lugar la transformación.

Prácticas recomendadas para crear canalizaciones de big data

Al escalar un sistema de administración de big data, muchas organizaciones tienen múltiples almacenes de datos debido a la flexibilidad que ofrecen, dijo Narayana. Estos almacenes de datos incluyen bases de datos relacionales para datos transaccionales, bases de datos NoSQL para varios tipos de datos, Hadoop para procesamiento por lotes, almacenes de datos para informes, lagos de datos para análisis avanzados y servicios de almacenamiento de objetos en la nube de bajo costo, así como tecnologías especializadas como Elasticsearch para registros. y busque e InfluxDB para datos de series de tiempo.

“Esta es una buena opción para el almacenamiento de datos”, dijo Narayana, “pero no tan buena para el procesamiento de datos por parte de grupos no técnicos como científicos de datos y analistas de datos. Las empresas deberían poder construir y operar sin problemas canales de datos desde los cuales mover datos . » Un almacén de datos sobre el otro al menor costo en lo que respecta a los sistemas físicos y los costos operativos. «

Según Schaub, las canalizaciones de big data deberían verse así:

  • ampliable poder incluir tantas otras cosas como sea posible;
  • escalablePor lo que se pueden ampliar o reducir según las necesidades del sistema. La reducción de personal a menudo se pasa por alto, pero es importante para administrar los costos de la nube. y
  • idempotentePor lo tanto, puede obtener el mismo resultado sin importar cuántas veces se utilicen las mismas fechas de inicio. El registro debe realizarse al principio y después de que se complete cada paso.

«Comprenda los requisitos para su función, tamaño de datos, almacenamiento, rendimiento y restricciones de costos», aconsejó Vilvovsky. «Elija la arquitectura y los marcos adecuados. Cree un prototipo de uno o dos casos de uso y asegúrese de que funcione. Utilice los métodos de almacenamiento y seguridad adecuados para su tipo de datos. Consulte los nuevos servicios en la nube, que aparecen constantemente en el mundo. La arquitectura que puede desear que ya exista como servicio «.