Snowflake: Introducción y Comparativa

Última actualización: 26/08/2021

Exploramos las diferencias más notables entre Snowflake, Hadoop (HDFS) y la base de datos Oracle para ayudarte a elegir entre estas tecnologías de almacenamiento Big Data.

qué es Snowflake: Introducción

¿Qué es Snowflake?

Snowflake es una completa plataforma de data warehouse en la nube de tipo SaaS. Es compatible con los proveedores de servicios cloud AWS, Azure y GCP.

Permite conectar fuentes de datos como bases de datos OLTP, aplicaciones empresariales o aplicaciones IoT con los consumidores finales de datos. Estos consumidores podrán llevar a cabo reportes operacionales y analítica en tiempo real.

En la plataforma de Snowflake podremos encontrar componentes que nos faciliten su uso para ingeniería y ciencia de datos, data warehouse y data lake.

Funcionamiento

Snowflake usa un sistema de microparticiones para gestionar los datos. Así, los datos se cifran, comprimen y particionan automáticamente de forma uniforme para reducir las operaciones de tipo shuffle.

Los metadatos que maneja se almacenan de forma separada de los datos y el disco SSD y memoria se pueden usar como caché adaptativa.

Además, la plataforma consigue ofrecer las siguientes funcionalidades esenciales:

  • Cargas de trabajo batch y streaming: Arquitectura Lambda entre las fuentes de datos y el Data Lake.
  • Compatibilidad con lenguaje SQL, funciones y operadores
  • Autoescalado automático de recursos: Optimización de costes
  • Base de datos relacional y soporte para datos semiestructurados
  • Alta disponibilidad: Tiene sistemas de replicación de datos, backups, time travel y actualizaciones online (sin parada de servicio)
  • Herramientas de Gobierno de datos y ofuscación de datos.

Para entender cómo funciona Snowflake vamos a compararla con tecnologías con las que tenemos más conocimento, como el ecosistema Hadoop (HDFS) o una base de datos relacional como puede ser Oracle.

Snowflake vs Hadoop (HDFS)

Hadoop-HDFS vs Snowflake

Algunas diferencias de Hadoop (HDFS) con las bases de datos MPP (Massively Parallel Processing) como puede ser Snowflake:

  • No cumple las propiedades ACID.
  • Orientado a grandes conjuntos de datos.
  • No es elásticamente escalable.
  • Tiene un coste y complejidad asociada a HDFS.

En Snowflake, el almacenamiento de datos se mantiene separado del cómputo, esto hace que sea posible aumentar o reducir dinámicamente el tamaño del clúster.

Diferencias Clave entre Snowflake y Hadoop

Hadoop puede ejecutarse en servidores de coste reducido con almacenamiento conectado directamente mientras que Snowflake es una plataforma de software como servicio que no requiere compra de hardware adicional.

Por otro lado, Hadoop tiene el coste tradicional. Requiere gastos de capital importantes en las instalaciones o en la implementación y la administración de este software en la nube. El coste de Snowflake es distinto, ya que usa un sistema de pago por uso con facturación por segundo.

En cuanto a la escalabilidad, Hadoop soporta miles de nodos. La mayoría de instalaciones comprenden cientos de ellos que pueden manejar fácilmente cientos de terabytes escalando a decenas de petabytes. En el caso de Snowflake soporta 1028 nodos por almacén virtual para disponer de tantos almacenes virtuales como sea necesario. Las tablas individuales pueden exceder un petabyte.

Una de las limitaciones de Hadoop es que las tablas pequeñas (menos de 1GB) deben evitarse siempre que sea posible puesto que este sistema de ficheros distribuido no funciona bien con archivos pequeños. Esta problemática no existe en Snowflake, que soporta consultas sobre datos desde kilobytes hasta petabytes.

Otra de las limitaciones que no existe en Snowflake es la sobrecarga de Hadoop al inicio de las consultas, que lo convierten en una solución pobre para consultas de baja latencia que debemos solventar con tecnologías adicionales

Por último, la complejidad de implementación en Hadoop es alta. Necesita soporte y gestión de sistemas. Snowflake, al ser un servicio gestionado tiene un despliegue muy simple con una gestión de gastos reducidos (sin índices o estadísticas para gestionar).

Snowflake vs Oracle

Oracle es una de las bases de datos más populares y usadas en el mundo, encontrándose en lo más alto de los rankings de bases de datos. Sin embargo tecnologías más recientes están reduciendo las distancias con el paso del tiempo.

snowflake vs oracle

El crecimiento que ha tenido Hadoop en popularidad, las alternativas open source como MySQL y PostgreSQL y las bases de datos NoSQL afectan al mercado de Oracle a medida que las demandas de escalabilidad y rendimiento se han vuelto críticas para muchas organizaciones.

Diferencias entre Snowflake y Oracle – Alternativa como Data Warehouse

Cualquier Data Warehouse moderno debe soportar la ejecución en la nube y así sacar partido de la mayor escalabilidad, elasticidad y seguridad que proporcionan. Snowflake es una de estas alternativas diseñada especialmente para desplegar en la nube.

ORACLESNOWFLAKE
Carga de trabajoTransaccional o Data Warehouse (OLTP o OLAP)Data Warehouse puro (OLAP)
CosteFijo. Determinado por usuarios, cores de CPU y soporteFlexible en función del consumo. Sin costes de hardware
DespliegueOn premiseCloud pública
EscalabilidadFija, opciones de desplegar nuevo hardwareHorizontal y vertical sin pérdida de servicio e inmediata
ActualizaciónParches que deben ser instalados y monitorizadosTransparente y automática
ParticionesDefinidas de forma manualAutomáticas por cada columna
ÍndicesDefinidos por administradores con diferentes tiposNo existen
ProcedimientosPL/SQLJavaScript

Al contrario que Oracle, Snowflake es una solución simple, que gestiona de forma transparente las estadísticas, particiones y actualizaciones. De esta forma, consigue reducir costes de mantenimiento y el conocimiento del sistema necesario para optimizar su uso.

Por otro lado, tenemos que valorar detenidamente las necesidades particulares que existen en la organización para tomar una decisión acertada.

Sigue Aprendiendo con Cursos y Certificaciones

Aquí tienes los cursos de Udemy que te recomiendo para que sigas aprendiendo sobre Snowflake y cómo implementarlo en tus proyectos Big Data como Data Warehouse, ¡no te los pierdas!

Paso 1:

Curso Aprende los conceptos fundamentales teóricos y prácticos de Snowflake

Aprende los conceptos fundamentales teóricos y prácticos de Snowflake

Este primer curso te permitirá familiarizarte rápidamente con los conceptos teóricos fundamentales.

Paso 2:

Domina el Data Warehouse con ejercicios prácticos

Domina el Data Warehouse de Snowflake con ejercicios prácticos

Después, te recomiendo hacer este curso práctico en el que desarrollarás conceptos más avanzados con ejemplos acerca de la arquitectura, cargas de datos y mejores prácticas.

Paso 3:

Curso de Snowflake para desarrolladores

Snowflake para desarrolladores

Por último, este curso está orientado a desarrolladores, en el que usarás el conector de Python para implementar soluciones usando todas las características de la tecnología. Tiene más de 4 horas de vídeo.

Y si quieres ir a por la certificación, no dudes en preparártela con estos dos cursos recomendados, que contienen exámenes de prueba:

Preguntas Frecuentes Snowflake – FAQ

¿Es Snowflake OLAP?

Sí, Snowflake se considera un sistema OLAP (Online Analytical Processing) más que OLTP. Sin embargo, Snowflake es todo un ecosistema que sirve funciones analíticas.

¿Snowflake soporta SQL?

Snowflake es compatible con el lenguaje de consulta SQL completo.

¿Snowflake es una herramienta ETL?

Esta plataforma tiene capacidades de ETL y ELT y ofrece pipelines de transformación de datos y de integración con herramientas externas como Informatica. Aunque dispone de estas capacidades, no es una herramienta enfocada solamente a ETL.


A continuación dos vídeo-resumen con las comparativas de Snowflake con Hadoop y con la base de datos Oracle.


Deja una respuesta