La computación en la nube está ganando terreno a pasos agigantados; sin embargo, los silos de datos son todavía una de las circunstancias que mayores retos plantean a las empresas y a los desarrolladores de aplicaciones Cloud. Vamos a ver qué es Snowflake y cómo funciona y, principalmente, cómo contribuye a resolver este problema.
¿Qué es Snowflake?
Snowflake es una aplicación SaaS (Software as a Service) basada en el concepto Data Cloud (nube de datos); desarrollada por exingenieros de Oracle, proporciona una arquitectura de datos compartidos multiclúster con altos índices de rendimiento, escalabilidad y simultaneidad.
Como dijimos en la introducción, Snowflake resuelve el problema de los silos de datos: es una plataforma que impulsa y proporciona el acceso a una repositorio común de datos en la nube, incluyendo niveles de almacenamiento, procesamiento y servicios globales integrados lógicamente, aunque separados en el espacio físico.
Los ámbitos de aplicación donde Snowflake despliega todas sus virtudes son Data Warehouse (con su propio motor SQL), Data Lake, ingeniería de datos, ciencia de datos, intercambio de datos y desarrollo de aplicaciones de datos.
Para ubicar mejor en qué consiste Snowflake, podemos decir que es análogo a Synapse (Microsoft Azure), Redshift (Amazon Web Services) o BigQuery (Google Cloud), con la ventaja de que permite elegir el proveedor de servicios Cloud que queramos de entre estos tres, así como la región (zona de disponibilidad) de cada uno.
Snowflake se puede contratar en tres versiones distintas: Standard, Enterprise y Business Critical, en función de las necesidades del usuario en cuanto a potencia de computación y garantía de disponibilidad.
¿Cómo funciona Snowflake?
Proveedores de servicios
Snowflake soporta los tres principales proveedores de servicios Cloud del mercado: Google Cloud, AWS y Azure. Snowflake permite elegir al usuario en qué región desea trabajar. El coste del servicio fluctuará en función del proveedor y de la región que se haya elegido.
Arquitectura
La idea principal es construir un repositorio de datos centralizado y accesible desde todos los nodos del Data Warehouse; bajo un principio de redundancia, cada clúster almacena en local una parte de las consultas para procesarlas en paralelo.
La arquitectura de Snowflake se divide en tres capas de software:
- Database Storage.
- Query Processing.
- Cloud Services.
La primera capa es donde residen los datos: Snowflake da formato a los datos cuando son subidos a la nube, de modo que su organización queda optimizada en términos de tamaño, metadatos o compresión. Solo pueden ser consultados mediante instrucciones SQL.
La segunda capa consiste en almacenes virtuales de consultas. En cada uno de ellos residen varios nodos para trabajar en paralelo en los servicios de la capa siguiente.
La tercera capa contiene los servicios encargados de coordinar las actividades. Snowflake las gestiona y se ejecutan sobre las instancias del proveedor de servicios que se haya elegido.
Accesibilidad
El usuario puede acceder a Snowflake desde un navegador web o un cliente CLI; admite conexiones de orígenes de datos ODBC y JDBC, y soporta conectores nativos y de terceros.
Ecosistema
El número de aplicaciones que pueden correr en el ecosistema de Snowflake es muy significativo, y va creciendo paulatinamente. Podremos encontrar aplicaciones de Business Intelligence, de integración de datos, de Machine Learning y de seguridad y gobernanza del dato.
Algunos ejemplos de aplicaciones y desarrolladores compatibles con Snowflake son SAP, Qlik, Tableau, Power BI, ThoughtSpot, MicroStrategy, Oracle, Pyramid, IBM, Domino, SAS, Pentaho…
Carga de datos
Existen dos métodos de carga: por lotes o de forma continua (Snowpipe), de modo que es posible volcar datos a Snowflake de tres procedencias distintas:
- Fuentes internas.
- Fuentes externas.
- Otras cuentas de Snowflake.
La carga por lotes requiere que los datos estén previamente en la nube, y que el usuario aprovisione previamente el Data Warehouse. Las capacidades de transformación de datos son bastante simples usando este método.
La carga por Snowpipe permite volcar de forma incremental pequeños volúmenes de datos; el Data Warehouse está totalmente gestionado por Snowflake, y las capacidades de transformación de datos son algo más avanzadas.
Descarga de datos
La descarga de datos consiste en realizar consultas en las tablas de Snowflake y guardarlas con el comando COPY INTO, especificando uno o varios ficheros del servicio de almacenamiento del proveedor en el parámetro location.
Mediante el comando SELECT, se pueden realizar otras consultas específicas no necesariamente incluidas en los almacenes virtuales de la segunda capa.
Peculiaridades de uso
- Snowflake soporta formatos comunes como CSV o TSV, los únicos capaces de usar una codificación distinta a UTF-8, aunque el usuario deberá especificarlos de forma explícita.
- Si no se trata de ficheros comprimidos, Snowflake puede comprimirlos automáticamente en un fichero GZIP. Es capaz de alcanzar cotas de compresión de entre un 60 % y un 80 %: la eficiencia de este algoritmo permite ahorrar espacio y, por lo tanto, pagar menos por ello.
- También soporta cifrado de archivos: si no están cifrados, el servicio los cifra al subirlos, y si ya están cifrados, pide la clave.
- A modo de curiosidad, cuando se vuelcan datos desde la interfaz gráfica, el cifrado previo a la subida se ve interrumpido si el usuario cambia de pestaña o de ventana en el navegador.
¿Qué ventajas tiene el servicio de Snowflake?
- Protege al usuario de una posible situación de vendor locking (el cliente queda «encerrado» en el ecosistema de un único proveedor Cloud).
- Simplifica las tareas de gestión de datos, gracias a su sistema de accionamiento de Data Warehouse virtuales según las necesidades de quienes accedan.
- Permite la democratización del acceso a los datos, al permitir el uso de un lenguaje tan estandarizado como SQL para realizar las consultas.
- Dispone de una ingente cantidad de herramientas y conectores.
Estamos seguros de que a muchos usuarios les va a encantar saber qué es Snowflake y cómo funciona: te animamos a que compartas este contenido si te ha parecido interesante, ya que consideramos que este aplicativo SaaS va a revolucionar el modo de tratar los datos en la nube. Además, si deseas conocer detalladamente la interfaz de Snowflake, contamos con una serie de tutoriales en nuestro canal de YouTube que te ayudarán a descubrir todo acerca de la plataforma cloud más innovadora del momento. ¡No te los pierdas!