Cómo transformar una compañía (IV): Desarrollar una metodología de ingesta de datosAI of Things 30 junio, 2020 En la entrada anterior profundizamos en la estructura de la arquitectura de referencia y qué aspectos técnicos se deben tener en cuenta en su definición. Siguiendo con esta serie de artículos, vamos a hablar sobre las metodologías de ingesta de datos. Los datos de una empresa son la pieza clave para el éxito futuro de una compañía. Como sabemos, estos pueden servir para predecir las ventas futuras o analizar las ventas pasadas, construir recomendadores de productos o para captación de nuevos clientes, entre otras muchas. Toda empresa debería de contar con una robusta planificación para sacarle valor a todos sus datos. Procesos ETL Para que una empresa pueda basarse en sus datos para la toma de decisiones, es importante tener los datos disponibles cuando son requeridos. Para tener buena calidad de datos y una buena base para poder explotarlos, hay que tener procesos que extraigan los datos de una o varias fuentes, los transformen y los carguen en el almacenamiento adecuado. De esto se encargan los procesos ETL (Extract, Transform, Load). En el pasado muchos de estos procesos se hacían manualmente. Sin embargo, en estos últimos años han surgido herramientas que ayudan a la automatización de estas tareas y a realizarlas de una manera más rápida y sencilla. Las principales compañías de servicios cloud disponen de estas herramientas: Amazon Glue (Amazon Web Services)Azure DataBricks (Microsoft Azure)Cloud Dataflow (Google Cloud Platform). Además, existen herramientas open source para realizar ETLs como Apache Flume, Apache NiFi y Apache Kafka entre otras. Pero esto no es todo, ya que para mantener un buen proceso ETL se debe contar con la infraestructura adecuada y necesaria en la empresa. Debido a la complejidad que conlleva la completa construcción de estos procesos, cada vez más empresas requieren la presencia de los ingenieros de datos (data engineers). ¿Qué es un Data Engineer? Muchas personas solo conocen el trabajo del científico de datos (data scientist) y el trabajo de un data engineer resulta un tanto desconocido. Pero, gracias a él, las empresas pueden tener estrategias data-driven, descubrir fallos en sus suposiciones y basar la estrategia en sus propios datos. ¿Y cuál es la tarea específica de un data engineer en este ámbito? Crear, automatizar y poner en producción la ingesta de datos, por medio de procesos ETL, donde se mueven datos de una o más fuentes de entrada a una de destino, para almacenarlos. Este proceso incluye también la transformación de los datos en el formato específico que se necesite antes de ser cargados. Estas transformaciones pueden ser múltiples y variadas: unificar varias fuentes de datos en una solagenerar nuevos campos, calculados a partir de los campos originalescodificar valores, facilitando los cruces de información entre diferentes fuentestransformar fechasanonimizar datos, muy importante para cumplir con las regulaciones de protección de datos El almacenamiento se puede realizar sobre bases de datos SQL (Structured Query Language) o NoSQL (not only SQL). Cuál de ellos elegir, dependerá de las necesidades concretas de cada compañía. SQL vs NoSQL Pero, ¿qué queremos decir cuando hablamos de SQL o NoSQL? Una base de datos SQL, o base de datos relacional, es un conjunto de tablas que almacena datos estructurados. Los datos estructurados son presentados como tablas con filas y columnas donde están perfectamente definidas la longitud, el tamaño y el formato de los datos. Estos sistemas son los más extendidos en las empresas y llevan muchos años de madurez, lo que hace que encontrar profesionales expertos sea relativamente fácil. Por el contrario, el término base de datos NoSQL o no relacional hace referencia a bases de datos en las cuales los datos que se almacenan son semiestructurados. Los datos semiestructurados son aquellos que siguen una estructura pero no tan definida como la de las bases de datos relacionales. Algunos ejemplos son los formatos XML (Extensible Markup Language) y JSON (JavaScript Object Notation). Estos sistemas son muy útiles en problemas Big Data porque pueden manejar grandes cantidades de información, pero llevan relativamente poco tiempo en el mercado y es por ello por lo que la búsqueda de profesionales expertos en este campo es más difícil y costosa. ETL vs ELT Además, los procesos ETLs son los encargados del control de calidad de los datos y de rechazar la ingesta si no se cumplen los requisitos de calidad. A menudo, los datos rechazados son cargados en una zona de almacenamiento diferente para su posterior diagnóstico y reintento de carga. Las ingestas en estos procesos se pueden realizar de dos formas: batch y streaming. batch: conocido como procesamiento por lotes (procesamiento batch), ya que divide los datos en lotes y los procesa por separado. Es habitual que este tipo de ingestas se realicen periódicamente una o varias veces al día o a la semana. Este tipo de procesamiento puede ser útil cuando una empresa quiere analizar las ventas en el último mes o año, puesto que no necesita la información al instante de su generaciónstreaming: conocido como procesamiento en tiempo real (procesamiento streaming). Esta técnica procesa los datos al momento de ser generados. La latencia (tiempo que tarda en transmitir un paquete de datos) es de unos segundos o incluso milisegundos. Este tipo de procesamiento es muy útil para empresas que deben de procesar datos al instante para tomar una acción inmediata frente al usuario. Algunos ejemplos son Netflix o Uber, así como la misma Google Hemos hablado de los procesos ETL, pero existe otro paradigma más reciente denominado ELT (Extract, Load, Transform). En un proceso ELT no hay ningún requisito de transformación de los datos antes de cargarlos: los datos se ingestan en un data lake sin ninguna transformación y, una vez que los datos están cargados, se transforman solamente aquellos que se van a necesitar para un determinado análisis. ¿En qué se diferencian? Estos procesos tienen varias diferencias con respecto a ETL, las principales son: En ELT tenemos más flexibilidad a la hora de almacenar datos nuevos no estructurados, ya que son insertados sin pasar el proceso de modificaciónLos procesos ETL ayudan a tratar con datos sensibles, puesto que podemos anonimizar estos datos antes de cargarlos, al contrario que en ELTEn un proceso ETL los datos son cargados en una base de datos o en un Data Warehouse y en un proceso ELT son cargados en un data lakeLos costes de la construcción de un proceso ETL son mayores que los de un proceso ELT Conclusión Como hemos visto, existen varias formas de que una compañía tenga sus datos preparados para extraer información. La elección de usar una base de datos SQL o NoSQL en un proceso ETL, o de construir procesos ELT en lugar de ETL dependerá de las propias necesidades de la empresa, del consumidor y del problema en particular. Escrito por Ramón Casado. Todos los post de esta serie: Cómo transformar una compañía (I): Priorizar casos de usoCómo transformar una compañía (II): conectar la tecnología con el negocioCómo transformar una compañía (III): Profundizando en la arquitectura de referenciaCómo transformar una compañía (IV): Desarrollar una metodología de ingesta de datosCómo transformar una compañía (V): Complementar las fuentes internas con datos externosCómo transformar una compañía(VI): Las POC o como un proyecto pequeño puede salvar uno grande Internet de las Cosas…arqueológicasTrustID , liberada como open source en Hyperledger Labs
Nacho Palou Qué es el invierno-IA y cómo evitarlo ¿Estamos al borde de un nuevo invierno-IA? ¿Qué factores podrían propiciarlo? Cómo una legislación restrictiva, la falta de formación y de avances tecnológicos y otras preocupaciones podrían impactar el...
Telefónica Tech El poder de la digitalización sostenible en la lucha contra el cambio climático El cambio climático es considerado el mayor desafío de nuestro tiempo. Sus efectos abarcan desde la desertización y sequías hasta inundaciones y aumento del nivel del mar. Algunas de...
Roberto García Esteban ChatGPT y Cloud Computing: un matrimonio bien avenido ChatGPT (quizá no sepas que son las siglas de Chat Generative Pre-Trained Transformer) está en boca de todos por su impresionante habilidad para generar textos que parecen escritos por...
Olivia Brookhouse ¿Puede la Inteligencia Artificial entender las emociones? Cuando John McCarthy y Marvin Minsky iniciaron la Inteligencia Artificial en 1956, se sorprendieron de cómo una máquina podía resolver rompecabezas increíblemente difíciles en menos tiempo que los humanos. Sin...
Javier Martínez Borreguero Automatización, Conectividad e Inteligencia Aumentada al servicio de una reindustrialización competitiva, disruptiva y sostenible Por segundo año consecutivo vuelvo a participar en el Advanced Factories (AF 2023), la mayor exposición y congreso profesional dedicado a la Industria 4.0 del sur de Europa. Un...
Nacho Palou Medidas para reducir la brecha digital de género sin esperar 32 años El informe Sociedad Digital en España 2023, de Fundación Telefónica, dedica un apartado específico para analizar la brecha de género en el ámbito del talento digital. Destaca que, si bien...