Categories
54cuatro

Comparando plataformas de datos en la nube: Databricks vs Snowflake

La adopción de soluciones de datos en la nube ha estado en aumento en los últimos años y dos de las principales opciones son Databricks y Snowflake. Ambas ofrecen servicios en la nube, de hecho pueden ser instaladas tanto en AWS como en Azure. Pero cada una tiene sus propias fortalezas y debilidades. En este artículo, se comparan ambas plataformas en términos de su arquitectura, capacidad de procesamiento y herramientas de análisis.

Snowflake vs Databricks — Datagrom | Data Science Consulting

Ambas plataformas son muy eficientes en el procesamiento y análisis de datos a gran escala, pero tienen diferencias significativas en cuanto a su funcionalidad y enfoque. #Databricks se enfoca en el procesamiento de datos y el análisis de datos en tiempo real, mientras que #Snowflake se centra en la gestión de datos y el almacenamiento de datos en la nube. Ambas plataformas son muy utilizadas en la industria y son una buena opción para cualquier empresa que busque procesar y analizar grandes cantidades de datos.

In Snowflake vs. Databricks Feud, the Only Conclusion Is: DataOps Needs All  the Help It Can Get

Veamos algunos puntos particulares. Empecemos con:

Arquitectura

Databricks se basa en Apache Spark y tiene una arquitectura abierta y flexible que permite a los usuarios integrar diversas fuentes de datos y herramientas de análisis. También tiene integración nativa con Microsoft Azure y Amazon Web Services (AWS).

Snowflake utiliza un enfoque basado en la nube y se centra en el almacenamiento de datos. Tiene una arquitectura de tres capas y utiliza una base de datos columnar.

Capacidad de procesamiento

Databricks tiene la capacidad de procesar grandes volúmenes de datos y realizar tareas de procesamiento en paralelo en múltiples nodos. Además, su capacidad de procesamiento se puede escalar según sea necesario para manejar grandes cargas de trabajo.

Snowflake también puede procesar grandes cantidades de datos, pero se enfoca en la velocidad y la eficiencia. Además, su arquitectura basada en la nube permite a los usuarios escalar fácilmente el procesamiento según sea necesario.

Herramientas de análisis

Databricks tiene una variedad de herramientas de análisis, incluyendo librerías de ciencia de datos y herramientas de visualización. También tiene integración con herramientas de terceros, como Tableau y Power BI.

Snowflake se centra en el almacenamiento de datos y la consulta de datos. Tiene una interfaz de usuario sencilla que permite a los usuarios consultar los datos y crear informes.

Finalizando, nos llama mucho la atención que Snowflake y Databricks, dos empresas que inicialmente tenían objetivos muy diferentes, han estado compitiendo en un mercado cada vez más convergente. Snowflake se enfocó en equipos de BI mientras que Databricks se enfocó en equipos de ciencia de datos, pero ahora ambos están expandiéndose a los dominios del otro, creando una verdadera batalla por la “Plataforma de Datos en la Nube”. La propiedad de los datos es esencial en esta competencia, y ambas empresas comenzaron con sistemas de almacenamiento cerrados. Pero, para sorpresa de muchos, Databricks sorprendió a Snowflake al abrir partes de Delta Lake, lo que provocó que Snowflake siguiera el ejemplo adoptando Apache Iceberg. En respuesta, Databricks tomó medidas drásticas y donó todo Delta Lake a la Fundación Linux con el lanzamiento de Delta Lake 2.0, dejando en claro su compromiso con un estándar abierto para el almacenamiento de datos.

Ambas plataformas ofrecen soluciones de datos en la nube y tienen sus propias fortalezas y debilidades. Databricks es ideal para usuarios que requieren una plataforma de análisis de datos altamente personalizable, mientras que Snowflake es ideal para usuarios que necesitan una plataforma de almacenamiento de datos rápida y eficiente.

Alternativas a estas plataformas

Existen varias alternativas a Snowflake y Databricks en el mercado, dependiendo de las necesidades y requisitos de la empresa. Algunas de estas alternativas incluyen:

  • Almacenes de datos en la nube: otras opciones populares incluyen Amazon #Redshift, Google #BigQuery, Microsoft Azure #Synapse Analytics y #Oracle Autonomous Data Warehouse.
  • Plataformas de análisis unificado: hay varias opciones, como Google Cloud Dataproc, Apache Flink, Apache Beam y Apache Storm.
  • Plataformas de ciencia de datos: algunas opciones incluyen Google Cloud AI Platform, Microsoft Azure Machine Learning, IBM Watson Studio y Amazon SageMaker.

Cada una de estas opciones tiene sus propias ventajas y desventajas, y la elección dependerá de los requisitos específicos de la empresa. Es importante hacer una investigación exhaustiva y evaluar las diferentes opciones antes de tomar una decisión.

Si estás buscando alternativas a Snowflake y Databricks para la gestión de tus datos en la nube, te recomendamos considerar Redshift de #AWS y Synapse de #Azure. Ambas plataformas ofrecen soluciones de almacenamiento y procesamiento de datos escalables y seguras.

AWS se destaca por su proceso constante de innovación y la incorporación de nuevas funciones y aplicaciones a su ecosistema de datos. Con Redshift, los usuarios pueden almacenar y analizar grandes cantidades de datos utilizando herramientas de análisis de datos de código abierto, como #SQL y #Python. Además, Redshift es altamente escalable y puede manejar desde pequeñas cargas de trabajo hasta grandes conjuntos de datos.

Por otro lado, Synapse de Azure se distingue por su simplicidad y robustez. La plataforma ofrece una amplia gama de herramientas integradas para el procesamiento de datos, desde la ingestión hasta el análisis. Además, la adopción de tecnología de Azure es fácil y rápida, lo que permite a los usuarios obtener resultados inmediatos.

#BigQuery es una solución de almacenamiento y análisis de datos en la nube altamente escalable y eficiente que se ha vuelto muy popular entre los usuarios de #GCP. Ofrece una variedad de características avanzadas, como la capacidad de analizar datos en tiempo real y la integración con otras herramientas de Google, como #DataStudio y #TensorFlow.

Sin embargo, a nosotros no nos resulta efectiva la calidad de su soporte técnico. En comparación con AWS y Microsoft, el soporte proporcionado por Google aún tiene mucho por mejorar.

En resumen, tanto Redshift de AWS como Synapse de Azure son excelentes alternativas a considerar si estás buscando una plataforma de gestión de datos en la nube segura, escalable y eficiente.

Categories
54cuatro

¿El ETL va camino a desaparecer?

Tremendo título marketinero, ¿no?

Por lo general, cuando los gurús pronostican este tipo de cambios tan drásticos suelen equivocarse feo, quedó demostrado durante la pandemia y el término “nueva realidad”.

Los cambios pueden ser graduales, pero rara vez un cambio viene dado por la desaparición completa de algo.

La realidad, es que el #ETL viene presentando varios cambios. Quizás el más significativo es el concepto de #ELT que viene empujado por las arquitecturas de #DataLake.

Escribimos varias notas de ETL y ELT. Pero ahora vamos a hablar del “ETLess” o Zero ETL.

#ZeroETL es un enfoque que busca reducir o eliminar la necesidad de realizar una extracción, transformación y carga (ETL) de datos en un proceso de análisis de datos. O al menos la necesidad de hacerlo de forma manual.

Por ejemplo, #Databricks y #Snowflake vienen trabajando en simplificar los procesos de Extracción, Transformación y Carga. Tanto Snowflake como Databricks tienen soluciones que se enfocan en reducir la complejidad y la necesidad de ETL tradicional.

Snowflake tiene una arquitectura de nube nativa que permite cargar y consultar datos en tiempo real, lo que reduce la necesidad de procesos de transformación y limpieza de datos complejos. También tiene funciones de preparación de datos incorporadas que permiten transformaciones en el momento de la consulta, lo que a menudo elimina la necesidad de ETL previo.

Por otro lado, Databricks cuenta con herramientas como Delta Lake y la funcionalidad de transformación de datos en tiempo real de Spark Streaming, lo que permite trabajar con datos en su estado natural, sin tener que extraerlos, transformarlos y cargarlos en un almacén de datos.

AWS es otro de los grandes impulsores del concepto de Zero ETL. El avance de la #IA hace que muchos expertos pongan las actividades manuales en la mira de la automatización. Pero la realidad es que estamos lejos de tal simplificación. cognitive data

Lo cierto es que los pipelines de datos están confluyendo hacia una mejorar canalización y transporte de la información, haciendo que las necesidades de ETL disminuyan. La práctica de la extracción, que solía ser muy costosa, se está simplificando por medio de conectores prefabricados que permiten integrar miles de plataformas con muy poca configuración de por medio. La transformación es la que sigue siendo un verdadero problema. La transformación implica la limpieza, validación, normalización, agregación y enriquecimiento de los datos para asegurarse de que sean precisos, coherentes y relevantes para su uso previsto. Pero aún la calidad de los datos sigue siendo un verdadero dolor de cabeza.

Desde tiempo atrás a hoy, se han desarrollado técnicas y creado herramientas más avanzadas para mejorar la calidad de los datos. La aparición de herramientas de integración de datos permitió la automatización de muchas tareas de limpieza y transformación de datos, lo que redujo el riesgo de errores humanos y mejoró la eficiencia.

Además, se han creado estándares de calidad de datos y se han establecido mejores prácticas para asegurar la integridad y la precisión de los datos.

Las necesidades de mayor información y el camino de las organizaciones hacia el #DataDriven, hace que la implementación de procesos de calidad de datos sea una tarea crítica para muchas organizaciones que dependen de los datos para tomar decisiones importantes.

Lo bueno es que la inteligencia artificial y el aprendizaje automático están permitiendo nuevas técnicas para mejorar la calidad de los datos, como la identificación de patrones de datos inconsistentes o la corrección automática de errores comunes; pero nace un nuevo problema de calidad relacionado con los sesgos cognitivos.

Los sesgos de datos son errores sistemáticos en la recopilación, el análisis o la interpretación de los datos que pueden generar conclusiones inexactas o incompletas. Los sesgos de datos pueden ser el resultado de diferentes factores, como la falta de representatividad de la muestra, la mala calidad de los datos, la falta de diversidad en los datos, la selección sesgada de las variables o la falta de contexto.

Los sesgos de datos pueden tener consecuencias negativas, como la toma de decisiones incorrectas o injustas, la discriminación y la creación de estereotipos. Para evitar los sesgos de datos, es importante tener en cuenta la calidad de los datos, la diversidad de la muestra, la objetividad en la selección de las variables, la transparencia en la metodología y el contexto en el que se recopilaron los datos.

Los sesgos en la data pueden ser un problema serio en cualquier etapa del proceso ETL, ya que pueden llevar a conclusiones incorrectas o discriminación en la toma de decisiones. Para abordar los sesgos de la data, es importante comprender las fuentes de sesgo, incluyendo la selección de datos, la recopilación de datos, el preprocesamiento y la interpretación de los resultados.

Es importante tener en cuenta la necesidad de tener datos no sesgados en todo el proceso ETL para garantizar que los resultados sean precisos y justos. Esto puede implicar la selección cuidadosa de datos de fuentes diversas, la revisión rigurosa de los datos para identificar y abordar cualquier sesgo, y la aplicación de técnicas estadísticas para garantizar la calidad y la integridad de los datos. Además, es esencial que se realice una revisión constante y periódica de la calidad de datos para asegurarse de que los datos sigan siendo precisos y no sesgados a lo largo del tiempo.

De manera que… ¿El ETL va camino a desaparecer?working in power bi

De nuestra parte creemos que no, ni los procesos ETL, ni los ELT, ni ETL inverso, ni nada. Ni cerca están de desaparecer. Nacerán nuevas y mejores técnicas, pero hay que seguir invirtiendo, esforzándonos y mejorando todos los procesos de Extracción, Transformación y Carga; porque para ser Data Driven se necesitan datos limpios.

Van 5 consejos para mejorar tus procesos ETL:

  1. Antes de comenzar cualquier proceso ETL, es importante analizar la fuente de datos y su calidad para determinar si se necesita limpieza o transformación previa. Si la fuente de datos es limpia y consistente, el proceso de ETL será más rápido y eficiente.
  2. Al limitar la cantidad de datos que se procesan durante el proceso ETL, se puede mejorar significativamente el tiempo de ejecución. Esto se puede lograr a través de filtros, consultas selectivas y otras técnicas que permiten seleccionar solo los datos necesarios para el análisis.
  3. El uso de herramientas y tecnologías modernas puede mejorar significativamente la eficiencia de un proceso ETL. Por ejemplo, el uso de plataformas en la nube como AWS o Azure, o herramientas de automatización como Airflow, puede reducir el tiempo y los recursos necesarios para realizar un proceso ETL.
  4. La automatización del proceso ETL puede reducir significativamente el tiempo y los recursos necesarios para completar un proceso de carga. La automatización también puede reducir la posibilidad de errores humanos y mejorar la calidad de los datos.
  5. Es importante monitorear y ajustar el proceso ETL continuamente para mejorar su eficiencia. Esto puede incluir el ajuste de parámetros de configuración, la optimización de consultas y la adición de nuevos filtros para reducir la cantidad de datos procesados.
Categories
54cuatro

El enfoque de la arquitectura Medallion

El enfoque Medallion, que es promovido principalmente por #Databricks, también es adecuado para todas las demás plataformas.

Sirve como un modelo de cómo puede construir una estructura unificada para Data Lakehouses en tres capas.

 

#Medallion, es un modelo de arquitectura en el cual su patrón de diseño se basa en la organización de un #datalake en 3 capas, una capa de Datos Sin Procesar (#Raw), una capa de Datos Filtrados, Limpios, Enriquecidos y una capa de Datos de Negocios.

Esta arquitectura garantiza la coherencia, el aislamiento y la permanencia a medida que los datos pasan por múltiples niveles de validación y transformación antes de almacenarse en un diseño optimizado para un análisis eficiente.

La división de las 3 capas nos permite asegurar que los datos brutos de los sistemas de origen se almacenan en la capa de bronce dentro de un almacenamiento que puede ser on-premise o en la nube.

En la capa de plata, estos datos se agregan y limpian técnicamente y de esa manera los datos quedan en un esquema optimizado.

En el tercer nivel, los datos se preparan y agregan para el negocio, no tanto para la optimización técnica sino para la lógica empresarial.

Categories
54cuatro

Reseña de Azure Data Factory

Cómo conectar Azure Data Factory con un servidor SFTP, guardando las  credenciales en Azure Key Vault? | IfgeekthenEveris

Somos partners gold de Microsoft y quizás podría parecer que esta entrada es tendenciosa, pero la realidad es que siendo imparciales, #Azure Data Factory es una herramienta increíble, quizás, de lo mejor que hay un Azure junto con #DataBricks y #Synapse para la parte de datos.

¿Que es Data Factory?

Comencemos mencionando que es una herramienta totalmente administrada, basada en proveer servicios de integración de datos y #ETL que permite orquestar el transito de datos y las transformaciones.

Como característica adicional podemos mencionar que se adapta al pequeño cambio de #ETL a #ELT para modelos de #datalakes. Recordemos que ETL significa Extraer, Transformar y Cargar, mientras que ELT significa Extraer, Cargar y Transformar. En ETL, los datos fluyen desde la fuente de datos hasta la preparación y el destino de los datos. ELT permite que el destino de los datos realice la transformación, eliminando la necesidad de almacenar los datos. En esta nota hay mas informacion al respecto.

Por otro lado, y super importante de remarcar. ADF es la herramienta que “absorbe” los paquetes de SSIS cuando se lleva una base #MSSQL de on-premise a la nube.

Veamos a detalle. ¿Que puede hacer #ADF por nosotros?

Inteligencia empresarial automatizada - Azure Architecture Center |  Microsoft Docs

Estas son algunas características necesarias para correr ADF:

Pipelines:  un pipeline es una agrupación de actividades que es realizada como un proceso integrado. En un solo pipeline se pueden ejecutar todas las acciones referidas a la manipulación de datos necesaria por un proceso.

Activities: son justamente las actividades que se corren como parte de un pipeline. Son una acción explicita, como copiar datos a una tabla de almacenamiento o transformar datos.

Dataset: los conjuntos de datos son estructuras de datos dentro de los almacenes de datos, que apuntan a los datos que las actividades necesitan utilizar como entradas o salidas.

Triggers: estos triggers o en español desencadenantes son una forma de correr una ejecución de pipeline. Los desencadenadores determinan cuándo debe comenzar la ejecución de un pipeline, de acuerdo a 3 tipos de activadores:

  • Programado : este activador invoca una canalización a una hora programada.
  • Tumbling windows trigger : este desencadenador opera en un intervalo periódico.
  • Basado en evento: un activador que invoca una ejecución de pipeline cuando hay un determinado evento.

Tiempo de ejecución de integración: El tiempo de ejecución de integración (IR) es la infraestructura informática que se utiliza para proporcionar capacidades de integración de datos como flujo de datos, movimiento de datos, envío de actividades y ejecución de paquetes SSIS. Hay tres tipos de tiempos de ejecución de integración disponibles, que son:

  • Azure, para Flujo de datos, movimiento de datos, envío de actividades
  • Self hosted, para Movimiento de datos, envío de actividades
  • SSIS, para la ejecución de paquetes #SSIS (integration services de SQL)

¿Que alternativas existen a Data Factory?

Si vamos a un esquema cloud, AWS Glue y Data Pipelines, son productos de Amazon para competir con ADF. En el aspecto #OpenSource, Apache #Kafka junto a #NiFi podrían ser un competir muy digno.

Respecto a la parte de transformación, quizás pierde un poco respecto a sus competidores, por ejemplo contra #Pentaho.

La gran ventaja de los productos 100% cloud se da por la rápida integración hacia otros productos. Por ejemplo, en el caso de una plataforma de #IoT, ADF en pocos clics se integra a Azure Event Hub. O poder trabajar integrado a Azure DevOps para poder trabajar el desarrollo de las integraciones como si fuera un software normal.

Device To Cloud Connectivity with Azure IoT Hub | by Prosenjit Chakraborty  | Medium

Conclusión

Este es una simple entrada para mencionar y que conozcan Azure Data Factory. Es realmente muy poderosa y su capacidad para integrarse a otras herramientas la transforma en lo que solemos llamar ‘una navaja suiza’, donde podemos tomar la informacion, procesarla, limpiarla, darle formato y enviarla a un almacenamiento destino para su uso final, ya sean tableros de BI o modelos de Machine Learning, todo como un proceso end to end.


    Please prove you are human by selecting the plane.

    Categories
    54cuatro

    Usar Bases Relacionales para Analítica

    Desafío planteado

    El cliente nos indica que tiene 2 bases de datos, una Oracle 11g y otra MSSQL2016 donde se guarda informacion de dos sistemas corporativos de tipo BSS, y ademas junto con esa data necesitaban enriquecer la info con algunos archivos que reciben en formato CSV de algunos proveedores, y que para poder analizarlos ejecuta algunos procesos manuales, suben todo a una base de datos intermedia y desde ahí hacían tableros de BI.

    Este proceso corría una vez por dia, involucraba la participación de una persona y no cumplía con los tiempos requeridos por el negocio.

    Nuestro cliente quería evaluar cuidadosamente si nuestra propuesta de inteligencia empresarial hacia sentido para ellos, motivo por el cual propusimos hacer este desarrollo como PoC (prueba de concepto), sin involucrar el armado de un datawarehouse ya que contaban con uno on-premise y tampoco quería instalar servidores ni adquirir nuevas licencias, de manera que teníamos que desarrollar una solución consumiendo de servicios de Nube.

    Solución Propuesta

    Durante la charla propusimos hacer uso de servicios serverless en la nube, Funciones en #AWS o #Azure, donde un script se ejecute para extraer la info, procesarla y dejarla disponible para analizar. Una especie de #ETL #serverless.

    Otra alternativa era armar una infraestructura de eventos con #Kafka o #NiFi. Pero como la solución tenia que ser bajo la premisa de no instalar equipamiento finalmente desistimos de esta opción.

    El boceto cuando armamos la call de Preventa

    Implementación

    Lo primero que hicimos fue eliminar los procesos de ETL que corrían hoy con SSIS, y la base intermedia desde donde conectaban la herramienta de BI.

    Posterior a eso, realizamos el desarrollo de código Python que se ejecuta sobre Azure Functions para tomar los CVS y Parquet de proveedores, extraer la información y llevarla a Data Lake Storage.

    Otra parte corre en Azure Data Factory, un integrador de datos con conectores pre-compilados que nos servían para tomar la info desde las bases relacionales y llevar los datos de manera automatizada, simplificando mucho la extracción de la info y el movimiento hacia Azure Data Lake Storage donde almacenamos lo que llegaba. A eso le sumamos Azure #DataBricks donde corremos la preparación de los datos.

    Databricks es una herramienta de Azure basada en #Apache #Spark que permite configurar de manera simple flujos de trabajo optimizados, dejando la data lista para que DBA, Data Scientist o incluso Analistas de Negocios, dispongan de la información para sus labores.

    Finalmente toda la capa de visualización fue armada en PowerBI, desde donde concentrábamos reportes según el perfil del usuario visualizador.

    Toda la solución lógicamente tiene componentes de seguridad, como Active Directory para la autenticación.

    Entre el assessment, la planificación, y ejecución del proyecto fueron 5 semanas de trabajo donde obtuvimos como resultado un producto de analítica casi en tiempo real, con un costo de menos de 500 USD mensuales pero que generaba insights claros de negocios donde antes no existían.

    Los resultados fueron excelentes porque dieron visibilidad de operaciones comerciales desconocidas. Esta buena recolección de resultados mostraron un ROI muy interesante que motivó avanzar en el proyecto a una Fase 2, que consistió en generar experimentos de Machine Learning organizados desde Databricks y que nos permitieron identificar los modelos con mejor rendimiento respecto al esquema de precios de la compañía.

    La combinación de Azure Databricks y Azure Machine Learning nos permitieron generar un ciclo de vida de ML orientado a predecir compras, comportamientos de clientes, y generar una adaptación del esquema de pricing que significó un aumento en las ventas de la empresa.


    [popup_anything id=”2076″]