Snowflake: Introducción y Comparativa

Última actualización: 28/10/2021

En esta entrada aprenderás qué es Snowflake, su funcionamiento y características principales. Además, 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 principales 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 usando el lenguaje SQL.

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. Para cargar datos en tiempo real, ofrece Snowpipe comeo servicio autogestionado y con capacidad de transformación de datos.
  • 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.

Arquitectura de Snowflake

Snowflake está construido alrededor de un sistema de almacenamiento de datos compartido y accesible por todos los data warehouses virtuales. Los datos se particionan y organizan para mejorar el tiempo de consultas.

Esquema de Arquitectura de Snowflake
Esquema de Arquitectura de Snowflake

Los warehouses son conjuntos de nodos de trabajo que se encargan del procesamiento de consultas, para lo que almacenan parte de los datos localmente optimizando y paralelizando las consultas.

Por último, la capa superior ofrece los servicios de autenticación y de control de acceso para proporcionar la seguridad y la gestión de todo el sistema.

Interfaz Gráfica de Snowflake UI

Para interactuar con el sistema, Snowflake nos proporciona una interfaz web muy completa, desde donde podremos realizar consultas, explorar las bases de datos y esquemas creados. Además, también dispone de una herramienta de comandos con un cliente CLI (SnowSQL) y drivers JDBC y ODBC.

La interfaz gráfica de Snowflake se compone de un menú en la parte superior y de un área de trabajo. Este menú, suponiendo que accedemos al sistema con permisos suficientes (por ejemplo ACCOUNTADMIN) nos mostrará las opciones que vemos en la imagen:

Menu superior Snowflake
Menu superior Snowflake
  • Databases nos mostrará las opciones relativas a las ‘bases de datos, así como sus tablas y esquemas.
  • Shares contiene las capacidades de intercambio de datos de entrada y de salida del sistema, de forma que podemos crear y compartir copias lógicas de datos de una forma segura mediante shares.
  • Data Marketplace permite acceder a datasets de terceros como un consumidor de datos, además también es posible publicar datasets para que los usen otros usuarios.
  • Warehouses nos muestra la interfaz de gestión de los warehouses virtuales, la capa encargada del procesamiento de consultas.
  • Worksheets nos muestra el área de trabajo para escribir y ejecutar consultas SQL sobre nuestras bases de datos.
  • History contiene el histórico de las consultas que se han ejecutado sobre el sistema en los últimos días.
  • Partner Connect nos permite integrar y probar cuentas con partners de Snowflake.
  • Snowsight Interfaz para realizar análisis de datos con consultas SQL y representar los resultados de una forma práctica.

Si accedemos a la opción del menú Worksheets se nos abrirá el área de trabajo donde escribir consultas SQL. Desde aquí, no solo podemos consultar datos sino hacer algunas tareas administrativas como crear usuarios o warehouses en el sistema.

Interfaz gráfica Snowflake UI
Interfaz gráfica Snowflake UI

Además, ofrece un panel de navegación a la izquierda en el que nos aparecerán las bases de datos y tablas a las que tenga acceso el usuario. Debemos recordar seleccionar un rol, un warehouse, una base de datos y un esquema antes de realizar consultas de datos.

Por último, en la parte inferior nos mostrará un área con los resultados de las consultas que realicemos. Cuando ejecuta la consulta SQL muestra también una barra de estado y su duración.

Comparativas

Para entender cómo funciona Snowflake vamos a compararla con tecnologías con las que tenemos más conocimiento, 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.

hadoop hdfs logo

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.

¿Qué alternativas a Snowflake existen?

Las principales alternativas a Snowflake en los proveedores de la nube son Redshift en AWS, Synapse Analytics en Azure y BigQuery en Google Cloud Platform (GCP). La ventaja de Snowflake es su compatibilidad para desplegar en estos tres proveedores.


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


Deja una respuesta