Llegamos a ustedes gracias a:



Columnas de opinión

Plataformas de integración de datos que todo desarrollador debe entender

Por: Isaac Sacolick, presidente de StarCIO

[21/11/2019] Trabajar con grandes volúmenes de datos es muy parecido a desarrollar software. Ambos requieren una buena comprensión de lo que necesitan los usuarios finales, además de conocimiento respecto a cómo implementar soluciones y prácticas ágiles para iterar y mejorar los resultados. Tanto el desarrollo de software como las prácticas de datos requieren plataformas tecnológicas, prácticas de codificación, metodologías de desarrollo e infraestructura ágil para ser instituidas y estar listas para satisfacer las necesidades del negocio.

Los científicos de datos, los ingenieros de dataops y los ingenieros de datos tienen muchas tecnologías y prácticas similares en comparación con los desarrolladores de software y, sin embargo, existen muchas diferencias. Mientras asistía a la 2019 Strata Data Conference en Nueva York, examiné las metodologías, plataformas y soluciones presentadas allí a través de las lentes duales de un desarrollador de software y un ingeniero de datos. 

Preparando datos para el consumo

Los desarrolladores de aplicaciones que trabajan con cantidades modestas de datos a menudo implementan la integración de datos, el formateo y el almacenamiento por adelantado a través de scripts, procedimientos almacenados en la base de datos y otras opciones de codificación. Es un enfoque directo para atravesar los pipelines necesarios, y tener los datos listos para ser soportados por un microservicio, compartidos a través de APIs o consumidos por una aplicación de usuario final.

Sin embargo, dado que el principal objetivo de negocio es la producción de aplicaciones y, en consecuencia, el enfoque principal de los desarrolladores de stack completo, los esfuerzos de ingeniería aplicados para ingestar, procesar y almacenar los datos se minimizan con frecuencia.

Por otro lado, los científicos de datos y los ingenieros de dataops ven el mundo de la carga de datos de manera muy diferente. Primero, entienden muy bien los principios de 'si entra basura, sale basura'. También saben que la analítica, las visualizaciones de datos, los modelos de aprendizaje automático y otros productos de datos se ven comprometidos, y potencialmente inutilizados, si los datos cargados no se limpian y procesan adecuadamente.

Además, si los datos no se almacenan de manera óptima, hace que la analítica funcione con menor eficiencia y pueden afectar el rendimiento de las consultas. Si consulta una base de datos relacional a través de demasiadas combinaciones, o si procesa una extensa base de datos de series de tiempo que no esté particionada, la productividad y el rendimiento podrían convertirse en un problema.

A la hora de considerar la mejor forma de ingestar datos, los equipos de datos siempre tendrán en cuenta la fuente de datos, el tipo de datos y los requisitos para soportar el volumen, el rendimiento, la confiabilidad y la seguridad. También considerarán los tipos de limpieza y enriquecimiento de datos que se necesitan antes de que los datos estén listos para el consumo.

En resumen, invierten esfuerzos significativos para asegurarse de que la carga de datos cumpla con los requisitos actuales, sea extensible para admitir formatos de datos cambiantes, y pueda crecer en escala para soportar volúmenes crecientes de datos.

Las plataformas de integración de datos no son de talla única

Al igual que las plataformas de desarrollo de software, existen muchos tipos diferentes de plataformas de ingestión de datos. Los desarrolladores de software deben estar familiarizados con los siguientes tipos básicos de integración de datos:

  • Las plataformas de extracción, transformación y carga (ETL, por sus siglas en inglés) han existido por un tiempo y se usan tradicionalmente para procesar los movimientos de datos, por lotes, entre diferentes sistemas empresariales. Informatica, Talend, IBM, Oracle y Microsoft ofrecen tecnologías ETL.
  • Cuando la ingestión de datos debe realizarse en tiempo real o casi en tiempo real para IoT y otras aplicaciones, las plataformas como Kafka y Spark, o las arquitecturas controladas por eventos como Vantiq, son las mejores opciones.
  • Las organizaciones con muchos analistas de negocios que trabajan con datos pueden usar tecnologías de preparación de datos para cargar hojas de cálculo y otras fuentes de datos más pequeñas. Las herramientas de Tableau, Alteryx y Trifacta proporcionan capacidades de procesamiento y de ingestión de datos de autoservicio que pueden ser utilizadas por usuarios comerciales con poca o ninguna codificación requerida.
  • Cuando las empresas reconocen la necesidad de dar pasos proactivos para limpiar los datos o establecer los registros de los datos maestros, existen plataformas de código abierto como HoloClean, y plataformas de calidad y masterización de datos como Reltio, Tamr y Ataccama. ETL, preparación de datos y otras plataformas de integración de datos también tienen capacidades de calidad de datos.
  • Las grandes empresas y aquellas con muchas fuentes de datos distribuidas en múltiples nubes y centros de datos pueden considerar a Cloudera Data Platform, SAP Data Intelligence o InfoWorks Data Operations and Orchestration System. Estas plataformas funcionan en numerosas bases de datos y plataformas de big data y ayudan a virtualizar múltiples fuentes de datos, facilitar los procesos de integración de datos e implementar el linaje de los datos requerido y la gobernanza de los datos.

Muchas de estas plataformas ofrecen capacidades de programación visual para desarrollar, administrar y ampliar pipelines de datos. Por ejemplo, un pipeline podría comenzar con los datos de los sensores IoT recopilados por Kafka, unir los datos con otras fuentes de datos, enviarlos a un lago de datos, y luego ingresar a las plataformas de analítica.

¿Dónde se pueden encontrar estos datos?

A medida que aumenta la cantidad de fuentes de datos, pipelines y plataformas de administración, se hace más difícil para el área de TI administrar los datos, y más complicado para los consumidores de datos encontrarlos. Saber dónde buscar y encontrar fuentes de datos es solo un punto de partida; los consumidores de datos deben conocer descripciones, metadatos descriptivos, estado, derechos de uso y expertos en la materia sobre las fuentes de datos disponibles.

El catálogo de datos es una capacidad que ofrecen muchas plataformas de datos como un recurso centralizado para que los analistas de negocios, científicos de datos, ingenieros de datos y desarrolladores de software encuentren fuentes de datos y registren información sobre ellos. Estas pueden ser herramientas empresariales convincentes para ayudar a compartir y mejorar datos para analítica o para ser utilizados en aplicaciones.

Usar los datos correctamente es responsabilidad de todos

Todas estas herramientas y capacidades representan nuevas responsabilidades y oportunidades para los desarrolladores de software.

La responsabilidad comienza con el uso de herramientas de integración de datos como la manera principal de incorporar nuevas fuentes de datos y usarlas en aplicaciones. Los enfoques simples de desarrollar scripts y codificar operaciones de limpieza de datos, o reglas comerciales en código, tienen inconvenientes significativos en comparación con las capacidades de las plataformas de integración de datos.

Todavía existen muchas oportunidades de codificación, ya que las plataformas de integración de datos requieren extensiones, reglas y configuraciones específicas para las fuentes de datos. Sin embargo, las plataformas ofrecen formas sólidas de administrar este código, manejar excepciones y proporcionar otras capacidades operativas que desafían cualquier enfoque de "hágalo usted mismo.

El catálogo de datos ofrece a los desarrolladores una oportunidad significativa para utilizar más fuentes de datos y analítica, o modelos de aprendizaje automático en aplicaciones de software. De hecho, uno de los objetivos principales de muchas organizaciones es basarse en datos y permitir a los empleados, clientes y socios usar datos y analítica apropiados y autorizados. ¿Qué manera más efectiva hay que hacer que los equipos de desarrollo de software incorporen los datos disponibles, la analítica o los modelos de aprendizaje automático directamente en las aplicaciones?

Pregunte a los científicos de datos, y uno de sus objetivos principales es ver sus modelos de aprendizaje automático integrados en las aplicaciones. Incorporar analítica para el beneficio de los usuarios finales es la manera en que los científicos de datos y los desarrolladores de software colaboran y brindan valor de negocio, y eso es una victoria para todos.

Isaac Sacolick es el autor de Driving Digital: The Leader's Guide to Business Transformation through Technology, que abarca muchas prácticas como la metodología ágil, devops y ciencia de datos, consideradas fundamentales para el éxito de los programas de transformación digital. Sacolick es un CIO social reconocido, un bloguero de vasta experiencia en Social, Agile and Transformation y CIO.com, también es presidente de StarCIO.