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. En LUCA contamos con profesionales expertos con años de experiencia en la definición y desarrollo de metodologías de ingestas de datos, adaptadas a la situación y a las necesidades de cada cliente en particular usando las últimas tecnologías disponibles. Escrito por Ramón Casado. Otros 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 Para mantenerte al día con LUCA visita nuestra página web, suscríbete a LUCA Data Speaks o síguenos en Twitter, LinkedIn y YouTube. Internet de las Cosas…arqueológicasTrustID , liberada como open source en Hyperledger Labs
Marina Salmerón Uribes AI of Things en el deporte Hace unas semanas, Carolina Marín, la joven deportista española se convirtió, por sexta vez consecutiva en campeona europea de bádminton. Título que suma a su grandísimo palmarés tras ser...
Víctor Vallejo Carballo AI of Things (V): Recomendación y optimización de contenido publicitario en pantallas inteligentes Conoce los beneficios que tecnologías como las pantallas inteligentes y el Big Data ofrecen al sector de la publicidad exterior
Santiago Morante La Inteligencia Artificial en las películas de ciencia ficción: un patrón recurrente de fascinación y terror Así retrata Hollywood los avances en Inteligencia Artificial: descubre qué es el "patrón R.U.R" y por qué lo aplican muchas películas de ciencia ficción
Paloma Recuero de los Santos Cómo interpretar la matriz de confusión: ejemplo práctico La matriz de confusión es una herramienta muy útil para valorar cómo de bueno es un modelo clasificación basado en aprendizaje automático. En particular, sirve para mostrar de forma...
Paloma Recuero de los Santos Tipos de aprendizaje en Machine Learning: supervisado y no supervisado El machine Learning o aprendizaje automático consiste básicamente en automatizar, mediante distintos algoritmos, la identificación de patrones o tendencias que se “esconden” en los datos. Por ello, resulta muy...
AI of Things GOOD TECH TIMES: Reinventando el turismo. Claves para acelerar la recuperación. FORMATO: Charla de 30 minutos + Q&A de 10 minutosCUÁNDO: 16 de junio, 16:00 h (CET)CÓMO: Inscripción gratuita en eventbrite SOBRE QUÉ: La digitalización es una pieza clave en el plan...