snowflake-web-2025

Apuntes del curso básico de administración y gestión de Snowflake

Introducción a Snowflake. Apuntes del curso básico de administración y gestión de Snowflake por Marcelo Horacio Fortino. Versión 2.0.3. Setiembre 2025.

Esta obra está sujeta a la licencia Reconocimiento-CompartirIgual 4.0 Internacional de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/. Puede hallar permisos más allá de los concedidos con esta licencia en https://fortinux.com. Sugerencias y comentarios a info@fortinux.com

Snowflake Inc. Todos los derechos reservados. Snowflake, su logotipo y todos los demás nombres de productos, funciones y servicios de Snowflake mencionados aquí son marcas registradas o marcas comerciales de Snowflake Inc. en Estados Unidos y otros países. Todas las marcas son propiedad de sus respectivos dueños. Apache Hadoop, Hadoop, Apache, the Apache feather logo, y el Apache Hadoop project logo son marcas registradas o marcas de la Apache Software Foundation en los Estados Unidos y otros países. Copyright © 2006-2025 The Apache Software Foundation.

Versión Autor Fecha Observaciones
1.0 Marcelo Horacio Fortino 2020/Nov Fundamentals of Big Data
1.1 Marcelo Horacio Fortino 2022/Feb Traducido al castellano, actualizado y convertido a markdown – ipynb
2.0 Marcelo Horacio Fortino 2023/Oct Actualizados contenidos

Esta obra se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. El autor no asume ninguna responsabilidad si el lector hace un mal uso de la misma.

  • Estos apuntes se basan en:
    • La bibliografía presentada al final de este documento, y
    • Documentación propia recogida a lo largo de los años de diversas fuentes.

Objetivos del curso

  • Introducir el uso y gestión básica de Snowflake como plataforma de almacenamiento de datos en la nube.
  • Comprender los principios fundamentales de la arquitectura de Snowflake.
  • Aprender las operaciones básicas como carga de datos, consultas y administración de usuarios.

Temario

  • Big Data: Definición y características: Big Data y el análisis de datos, Definición, Mercado, Big Data en España, Tendencias, 2021 Machine Learning, AI and Data (MAD) Landscape, MAD 2024, Gobierno de datos/Data governance, Apache Atlas, Serie de normas ISO/IEC 20547, NIST Big Data Interoperability Framework, Gestión de la calidad de los datos, Beneficios, Paradigma, Características: Las V de Big Data, Tipos de datos, Historia, Data warehouses / Data lakes / Lakehouses, Apache Hadoop y Apache Spark, Casos de uso y Buenas prácticas en Big Data, Tipos de análisis de datos en Big Data: descriptivo, predictivo y prescriptivo, Big Data analytics y Business Intelligence, Fuentes libres de datos, ASF: Herramientas para Big Data, Apache Hadoop, Módulos de Apache Hadoop.

  • Introducción a Snowflake, ¿Qué es Snowflake y para qué se utiliza?, Snowflake AI Data Cloud, Arquitectura de Snowflake, Ventajas de usar Snowflake, Navegación y entorno de Snowflake, Introducción a SnowSQL, Carga y gestión de datos, Métodos básicos de carga de datos (archivos CSV, JSON), Creación de tablas y esquemas, Consultas básicas en SQL, Gestión de usuarios y roles, Control de acceso basado en permisos, Gestión de almacenamiento y costes, Configuración de virtual warehouses, Continuidad de negocios y recuperación de datos, Snowpark, Streamlit, Consejos para optimizar los costes y el rendimiento.

Introducción a Snowflake

¿Qué es Snowflake y para qué se utiliza?

  • Según Metha(2024)[1(pág.9)]:

    Una plataforma de datos en la nube proporciona un entorno de nube unificado, seguro y totalmente gobernado para el almacenamiento de datos, el análisis de integración y otras tareas informáticas. Es la mejor opción para la arquitectura de aplicaciones, ya que simplifica el desarrollo y las operaciones (DevOps) y permite comercializar aplicaciones innovadoras de forma más rápida y eficiente.

  • El mismo autor visualiza la plataforma de datos en la nube ideal con las siguientes características:

    • Capacidad de recursos casi ilimitada.
    • Gobernanza y colaboración segura.
    • Solución completamente gestionada.
    • Capacidades de distribución integradas.
    • Flexibilidad de modelos de desarrollo.
  • La plataforma de IA y datos en la nube unificada (AI Data Cloud) de Snowflake conecta ecosistemas de organizaciones que crean, usan y comparten datos, aplicaciones y IA.

  • La AI Data Cloud permite eliminar silos dentro de las organizaciones y colaborar con socios de negocios y proveedores, integrando además datos externos y aplicaciones para obtener información actualizada.

  • Puede conectar empresas de cualquier tamaño y junto con Snowflake Marketplace simplifica el intercambio, la colaboración y la monetización de miles de conjuntos de datos, servicios y aplicaciones de datos completas.

  • Fuente: https://www.snowflake.com/en/why-snowflake/what-is-data-cloud/.

  • En este vídeo los creadores de Snowflake cuentan la historia de como surgió la empresa:

  • .

Snowflake AI Data Cloud

Arquitectura de Snowflake

  • La arquitectura en la nube de Snowflake permite flexibilidad, velocidad y escalabilidad.

  • Está diseñada para gestionar y analizar grandes volúmenes de datos sin disminuir su desempeño.

  • La separación de sus tres principales funciones: almacenamiento, cómputo, y servicios; permite ajustar recursos independientemente de los flujos de trabajo y del aumento de datos.

  • Snowflake se encarga de todo el mantenimiento del sistema, como actualizaciones de software, administración del servidor y seguridad.

  • La arquitectura de Snowflake consta de cinco capas:

  • Almacenamiento: Donde todos los datos son almacenados en formato columnar y comprimidos, optimizados para la nube.

  • Almacenamiento interoperable:

    • Acceso a datos estructurados, semiestructurados y no estructurados para su fácil procesado, sin silos ni retrasos.
    • Las automatizaciones y optimizaciones cuentan por defecto con cifrado, compresión de almacenamiento integrada y proporcionan acceso rápido a los datos, incluso de petabytes.
    • Se pueden implementar varios patrones arquitectónicos, como data lakes, almacenes de datos, data lakehouses o data meshes.
    • Compatibilidad con los datos on-premise y los formatos de tabla abiertos, como Apache Iceberg.
  • Cómputo (Virtual Warehouses): Clústeres de recursos computacionales que realizan las tareas de procesamiento. Se pueden cambiar de tamaño em base a las necesidades.

  • Cómputo elástico:

    • El rendimiento escalable y flexible de varios workloads permite separar el cómputo del almacenamiento, ampliarlo o reducirlo de manera instantánea y pagar solo por los recursos que se utilizan.
    • El motor es compatible con diferentes lenguajes de programación, entre los que se incluyen Python, SQL, Java y Scala, y favorece el aislamiento de workloads y altos niveles de simultaneidad.
    • Su diseño promueve la velocidad y ofrece rendimiento, seguridad y flexibilidad para trabajar con las bibliotecas e interfaces de desarrollo favoritas.
  • Cortex AI: Provee acceso instantáneo a herramientas de IA avanzada, incluyendo LLMs, directamente dentro de la Snowflake AI Data Cloud.

  • Cortex AI:

    • Aprovecha los modelos completamente gestionados, como Snowflake Arctic y Mistral, para tareas de procesamiento de textos, análisis de sentimientos o resúmenes personalizados, entre otras.
    • Accede a varias interfaces de desarrollo con código, también a las que usan SQL y Python, y a Snowflake Studio para desarrollar sin código.
    • Cortex AI también ha permitido crear un conjunto de productos de IA generativa que incluye Snowflake Copilot —un asistente basado en IA que ayuda a completar tareas en Snowflake— y Document AI, una familia de servicios que utiliza el aprendizaje automático (machine learning, ML) para comprender los datos y extraerlos de distintos tipos de documentos.
  • Servicios: Gestión de metadatos, optimización de consultas, seguridad, colecta y mantenimientpo de estadísticas, y otros servicios operativos.

  • Servicios en la nube:

    • Mantenimiento casi nulo: sin actualizaciones ni tiempos de inactividad.
    • Gobernanza integrada mediante el catálogo de Snowflake Horizon aporta capacidades de conformidad, seguridad, privacidad, detección y colaboración sin necesidad de configuraciones ni protocolos adicionales.
    • Se pueden aprovechar las mejoras de rendimiento transparentes que se suelen aplicar de forma automática con cada nueva versión.
    • Modelo de precios basados en el consumo con una interfaz de gestión de costes integrada, que proporciona datos de uso neto y funciones de etiquetado con el objetivo de mejorar la visibilidad y el control de gastos.
  • Snowgrid: Un sistema que conecta regiones y platformas cloud (AWS, Azure, GCP) para colaboración, governanza, y replicación de datos global.

  • Snowgrid:

    • Una capa tecnológica que interconecta los ecosistemas empresariales entre regiones y nubes.
    • Facilita la colaboración entre nubes para poder detectar y compartir contenido rápidamente, además de acceder a él, entre nubes y regiones, sin depender de procesos de extracción, transformación y carga (extract, transform, load; ETL).
    • También favorece la gobernanza entre nubes con el fin de asociar las políticas, las etiquetas y el linaje flexibles a los datos y, así, disfrutar de una aplicación coherente para todos los usuarios, workloads, nubes y regiones.
    • Por otra parte, permite la continuidad del negocio entre nubes para disfrutar de una resiliencia inigualable que evita interrupciones, cumple las normativas aunque cambien o realiza migraciones entre nubes.
  • Fuentes:

  • https://www.snowflake.com/es/resources.

  • https://www.snowflake.com/es/resources/solution-brief/snowflakes-data-cloud/.

Ventajas de usar Snowflake

  • Soporte para todo tipo de datos: JSON, XML, Apache Avro, Apache ORC, Apache Parquet, etc.

  • Encriptado automático: Los datos se cifran automáticamente en reposo y en tránsito.

  • Particionado automático: Arquitectura micro-partition https://docs.snowflake.com/en/user-guide/tables-clustering-micropartitions.html de Snowflake.

  • Agrupamiento automático(Automatic clustering): Gestiona toda la reagrupación de tablas según sea necesario.

  • Compresión automática: Utilizando algoritmos de compresión de última generación.

  • Control de acceso granular: Proporciona control de acceso basado en roles en objetos de tabla, que se traducen automáticamente en privilegios en microparticiones subyacentes.

  • Versiones automáticas, viajes en el tiempo y seguridad (Automatic versioning, Time Travel, and Fail-Safe).

  • Replicación entre nubes: Recuperación ante desastres con capacidades de replicación, conmutación por error y redirección de clientes en todas las regiones y plataformas de nube.

  • Fuente: https://www.snowflake.com/en/blog/snowflake-managed-data-lake-benefits/.

Práctica 1 – Caso de uso

Práctica 1b – Navegación y entorno de Snowflake

Introducción a SnowSQL

  • SnowSQL es la herramienta de línea de comando (CLI) que permite interactuar con Snowflake.

  • Se pueden controlar todos los aspectos de la nube de datos de Snowflake, incluyendo carga, consulta, cambios y eliminación de datos.

  • El cliente Snowflake CLI en cambio foca primeramente en la getión de cargas de trabajo y aplicaciones que conecta a Snowflake.

  • Snowflake CLI permite ejecutar y depurar localmente las aplicaciones de Snowflake con los siguientes beneficios:

  • Se pueden buscar, crear y subir paquetes de python que no están en Anaconda.

  • Soporta UDF, stored procedures, almacenes de datos, y aplicaciones Streamlit en python.

  • Permite definir paquetes en el fichero requirements.txt para ejecutar en el despliegue.

  • Al actualizar aplicaciones existentes, se modifican automáticamente el código y las dependencias necesarias.

  • El despliegue de artefactos es automáticamente gestionado y subido a los Snowflake stages.

  • Para instalarlos:

  • https://docs.snowflake.com/en/user-guide/snowsql-install-config.

  • https://docs.snowflake.com/en/developer-guide/snowflake-cli/installation/installation.

  • Para iniciar sesión:

snowsql -a <nombre-cuenta> -u <nombre-usuario>
  • Para crear una base de datos y su schema:
create or replace database sf_tuts;
  • Para verificar la base de datos utilizada:
select current_database(),
current_schema();
  • Para crear una tabla:
create or replace table emp_basic (
  first_name string ,
  last_name string ,
  email string ,
  streetaddress string ,
  city string ,
  start_date date
  );
  • Para crear un almacén de datos:
create or replace warehouse sf_tuts_wh with
  warehouse_size='X-SMALL'
  auto_suspend = 180
  auto_resume = true
  initially_suspended=true;
put file:///tmp/employees0*.csv @sf_tuts.public.%emp_basic;    # GNU/Linux
put file://c:\temp\employees0*.csv @sf_tuts.public.%emp_basic; # Windows
  • Para listar los datos subidos:
list @sf_tuts.public.%emp_basic;
  • El siguiente paso es copiarlos dentro de la tabla:
copy into emp_basic
  from @%emp_basic
  file_format = (type = csv field_optionally_enclosed_by='"')
  pattern = '.*employees0[1-5].csv.gz'
  on_error = 'skip_file';
  • Como en el lenguaje SQL, para hacer una consulta de todos los datos en una tabla se ejecuta:
select * from emp_basic;
  • Para incluir una condición en la consulta:
select * from emp_basic where first_name = 'Ron';
  • La función LIKE soporta los caracteres especiales % y _.
select email from emp_basic where email like '%.au';
  • La función INSERT actualiza los datos de una tabla agregando nuevos a la misma.
insert into emp_basic values
  ('Clementine','Adamou','cadamou@sf_tuts.com','10510 Sachs Road','Klenak','2017-9-22') ,
  ('Marlowe','De Anesy','madamouc@sf_tuts.co.uk','36768 Northfield Plaza','Fangshan','2017-1-26');
  • Para eliminar la tabla y el almacén de datos se utiliza DROP:
drop database if exists sf_tuts;
drop warehouse if exists sf_tuts_wh;
  • Para salir de la sesión se utilizan !exit o !disconnect:
!exit

Práctica 2 – Uso de SnowSQL

Gestión de usuarios

  • Los administradores/as de Snowflake pueden crear y gestionar usuarios de diversas maneras:

    • Utilizando SQL: todas las tareas incluyendo el cambio de credenciales de acceso (login credentials).
    • Snowsight: La interfaz web tiene soporte a la mayoría de las tareas. https://app.snowflake.com/.
    • Consola clásica: No tiene soporte a todas las tareas pero provee un asistente para crear usuarios y desempeñar las actividades más comunes, tipo resetear una clave de usuario.
  • Algunos objetos de usuario corresponden a usuarios humanos, mientras que otros corresponden a un servicio o aplicación que interactúa con Snowflake.

  • Al crear un objeto de usuario, se especifica el tipo de usuario para diferenciar entre humanos y servicios.

  • Esto es importante porque los usuarios humanos deben registrarse en la autenticación multifactor (MFA), al contrario de los servicios y aplicaciones.

  • La propiedad TYPE de un objeto de usuario es quien determina el tipo de usuario.

  • Los valores pueden ser:

    • person, null, service, snowflake_service, y legacy_service.
  • Fuente: https://docs.snowflake.com/en/user-guide/admin-user-management.

Gestión de roles

  • Snowflake utiliza roles para controlar los objetos (virtual warehouses, databases, tables, etc.) a los que los usuarios pueden acceder:

    • Provee una serie de roles predefinidos, junto con un marco para definir una jerarquía de roles personalizados.
    • Automáticamente asigna a todos los usuarios el rol predefinido PUBLIC que permite el acceso a Snowflake y a objetos básicos.
    • Además del rol PUBLIC, cada usuario peude tener otros roles, siendo uno de esos el predeterminado (default).
  • Snowflake recomienda un control estricto de ACCOUNTADMIN, aunque se debe asigar como mínimo a dos usuarios.

  • Por otro lado, ACCOUNTADMIN nunca debería ser el rol predeterminado de un usuario, en cambio se debe asignar como predeterminado un rol personalizado o con permisos de administración básico.

  • Más información en https://docs.snowflake.com/en/user-guide/security-access-control-considerations.

  • Para crear usuarios se debe poseer el rol de USERADMIN. Por ejemplo utilizando SQL mediante CREATE USER.

  • Si se quiere usar un rol personalizado, asignarle el privilegio CREATE USER.

  • Para modificar usuarios el rol debe poseer el permiso OWNERSHIP. Utilizando SQL: ALTER USER.

# Ejemplo SQL
CREATE USER juanpalomo PASSWORD = 'juan1234' DEFAULT_ROLE = mirol MUST_CHANGE_PASSWORD = TRUE;
GRANT ROLE mirol TO USER juanpalomo;
  • Para obtener información sobre uno o más usuarios utilizar DESCRIBE USER o SHOW USERS:
DESC USER juanpalomo;
  • Cuando se elimina un usuario, las carpetas, worksheets, y paneles del mismo dejan de ser accesibles a menos de que estuviesen compartidos previamente.
  • Para eliminar un usuario:
DROP USER juanpalomo;

Control de acceso basado en permisos

Práctica 3 – Gestión de usuarios

Gestión de almacenamiento y costos

  • La capa de almacenamiento de Snowflake gestiona todas las tareas de almacenado de datos asegurando que los mismos sean organizados, comprimidos, y encriptados de manera eficiente.
  • Esta capa soporta datos estructurados, semi-estructurados, y no estructurados, junto con flexibilidad para varios tipos de formatos de datos.
  • Snowflake utiliza algoritmos avanzados de compresión para reducir los costes de almacenamiento y mejorar el desempeño,
  • Por ello los datos son almacenados utilizando el formato columnar, que optimiza la velocidad de las consultas y eficiencia.
  • Todos los datos en Snowflake son encriptados tanto en el almacenado como en tránsito, asegurando un alto nivel de seguridad.

✅ Una buena práctica es comprimir los datos antes de su almacenamiento: esto reduce costes y aumenta el desempeño.

Configuración de virtual warehouses

  • La capa de procesamiento de Snowflake es donde todos los datos son manipulados.
  • Esta capa contiene los almacenes de datos virtuales (virtual warehouses), clústeres de recursos de cómputo independientes que pueden ser escalados en base a la carga de trabajo.
  • Los almacenes de datos virtuales se pueden redimensionar, suspender o reanudar para optimizar los costos y el rendimiento.
  • Cada almacén de datos virtual opera de forma independiente, asegurando que el desempeño de uno no afecte a otros.

✅ Una buena práctica es monitorar regularmente el uso de cada almacén y ajustar la configuración basada en las necesidades actuales.

Práctica 4 – Creación de un Warehouse

Consejos para optimizar los costes y el rendimiento

Práctica 5 – Empezando con optimización de costes y de desempeño

Continuidad de negocios y recuperación de datos

  • La replicación de bases de datos y recursos compartidos está disponible para todas las cuentas.

  • La replicación de otros objetos de la cuenta y la conmutación por error/recuperación requieren en cambio el plan Business Critical Edition (o superior).

  • Esta función permite replicar objetos de una cuenta de origen a una o más cuentas de destino de la misma organización. Los objetos replicados en cada cuenta de destino se denominan objetos secundarios y son réplicas de los objetos principales de la cuenta de origen.

  • La replicación es compatible con distintas regiones y plataformas en la nube (AWS, Azure, GCP).

  • Fuente: https://docs.snowflake.com/en/user-guide/account-replication-intro.

  • Recursos:

  • How to Configure Failover & Replication Across Clouds

  • .

  • Replication and failover commands https://docs.snowflake.com/en/sql-reference/commands-replication.

Snowpark

Práctica 6 – Empezando con tablas en Apache Iceberg

streamlit

Práctica 7 – Empezando con Snowpark para Python y Streamlit

Bibliografía

  • [11] METHA, M. (2024). Building Applications with Snowpark. Snowflake Special Edition. John Wiley & Sons, Inc.
  • [12] BAUM, D. (2024). Generative AI and LLMs. Snowflake Special Edition. John Wiley & Sons, Inc.

Imagen de portada: Foto de un recorte de la portada del sitio web de Snowflake. (2025/09).

Si buscas un formador para realizar este curso u otra actividad formativa (webinar, workshops, bootcamps, etc.) en tu organización, me puedes ubicar a través de la página de contacto. Muchas gracias.

Si te ha gustado el artículo puedes ayudarme haciendo una donación con criptomonedas. Gracias!!!