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
-
Actualmente (setiembre 2025) las funcionalidades del Snowflake AI Data Cloud más destacadas son:
-
Snowpark: Crea canalizaciones de datos con python, java, y scala.
-
streamlit: Construye aplicaciones interactivas y paneles de datos.
-
https://www.snowflake.com/en/product/features/streamlit-in-snowflake/.
-
Cortex AI: Analiza datos y construye aplicaciones de IA con modelos de LLMs y servicios de text-to-SQL.
-
Copilot: Asistente de IA para consultas SQL.
-
Document AI: Extrae información de documentos tipo PDF e imágenes. Transforma datos no estructurados en estructurados.
-
https://docs.snowflake.com/en/user-guide/snowflake-cortex/document-ai/overview.
-
Cortex Analyst: Interactúa con los datos mediante el lenguaje común.
-
https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst.
-
Cortex Search: Encuentra información relevante en datos no estructuradod mediante consultas en lenguaje natural.
-
https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-search/cortex-search-overview.
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/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;
- Para subir datos de ejemplo, se descargan de https://docs.snowflake.com/en/_downloads/34f4a66f56d00340f8f7a92acaccd977/getting-started.zip, y se descomprimen en el directorio /temp en SO Linux, o en c:temp en SO Windows. Una vez descomprimidos se envian mediante la siguiente orden:
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
- Fuentes:
- https://quickstarts.snowflake.com/guide/getting_started_with_snowsql/index.html.
- Tutorial https://docs.snowflake.com/user-guide/tutorials/snowflake-in-20minutes#introduction.
- Getting Started – Introduction to Snowflake Data Loading
- .
- How To Install, Configure & Use SnowSQL | Snowflake 101
- .
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
-
Snowflake combina aspectos de los siguientes modelos de control de acceso:
- Discretionary Access Control (DAC): Cada objeto tiene un propietario, que puede a su vez facilitar acceso al mismo.
- Role-based Access Control (RBAC): Privilegios de acceso son asignados a roles, que se asignan a usuarios.
- User-based Access Control (UBAC): Privilegios de acceso son asignados a usuarios pero solo cuando USE SECONDARY ROLE está definido como ALL. https://docs.snowflake.com/sql-reference/sql/use-secondary-roles.
-
Algunos conceptos claves para entender como funciona el control de acceso en Snowflake son:
- Objeto protegible: Entidad a la que se puede conceder acceso. Salvo autorización, el acceso se deniega.
- Rol: Entidad a la que se pueden conceder privilegios.
- Privilegio: Nivel definido de acceso a un objeto. Se pueden usar múltiples privilegios distintos para controlar la granularidad del acceso concedido.
- Usuario: Identidad de usuario reconocida por Snowflake, ya sea asociada a una persona o a un servicio. Un usuario también es una entidad a la que se pueden conceder privilegios.
-
Cada objeto protegible reside en un contenedor lógico dentro de una jerarquía de contenedores.
-
El contenedor superior es la organización del cliente.
-
Los objetos protegibles, como tablas, vistas, funciones y etapas, se encuentran en un objeto de esquema, que a su vez se encuentra en una base de datos.
-
Todas las bases de datos de su cuenta de Snowflake se encuentran en el objeto de cuenta.
-
Los privilegios asignados a roles o usuarios permiten el acceso a objetos protegibles.
-
Los roles pueden ser asignados a usuarios o a otros roles.
-
Asignar un rol a otro rol crea una jerarquía de roles https://docs.snowflake.com/user-guide/security-access-control-overview#label-role-hierarchy-and-privilege-inheritance.
-
Generalmente se utiliza RBAC para gestionar el acceso a los objetos protegibles en Snowflake.
-
Fuente: https://docs.snowflake.com/user-guide/security-access-control-overview.
-
Las políticas de autenticación finalmente brindan control sobre cómo se autentica un cliente o usuario.
-
https://docs.snowflake.com/en/user-guide/authentication-policies.
-
Recursos:
-
https://airbyte.com/blog/best-practices-snowflake-users-roles-and-permissions/.
-
Open-source project for managing Snowflake permissions and roles through YAML configuration https://gitlab.com/gitlab-data/permifrost/.
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.
-
Fuente: Data Warehouse Architecture and Design: Best Practices.
-
Recursos:
-
The Essential Guide to Cloud AI and Data Platforms https://www.snowflake.com/resource/the-essential-guide-to-cloud-ai-and-data-platforms/.
-
Videos sobre optimización de costes en Snowflake
-
.
Práctica 4 – Creación de un Warehouse
Consejos para optimizar los costes y el rendimiento
-
Es importante gestionar proactivamente los costes de consumo para garantizar que se obtiene el máximo valor de la inversión en Snowflake.
-
Se debería considerar la implementación de un marco de Operaciones Financieras (FinOps) para gestionar de forma colaborativa los costes de Snowflake entre las distintas funciones del negocio, como los equipos de finanzas, tecnología, operaciones y compras.
-
Este marco debe tener en cuenta la estrategia, el personal, los procesos y la tecnología para optimizar los costes, mejorar la previsibilidad y alinear mejor los costes con el valor del negocio.
-
La lista de buenas prácticas sugerida es:
-
Habilitar la suspensión y reanudación automáticas.
-
Configurar monitores de recursos.
-
Configurar un presupuesto a nivel de cuenta.
-
Comenzar con un almacén de datos pequeño.
-
Controlar el uso.
-
Utilizar la exploración de costes basada en la interfaz de usuario.
-
Elegir el tipo y tamaño de almacén de datos adecuado.
-
Considerar el uso de almacenes de datos optimizados para Snowpark para cargas de trabajo con uso intensivo de memoria.
-
Fuente:
-
The Definitive Guide to Managing Spend in Snowflake https://www.snowflake.com/en/resources/white-paper/definitive-guide-to-managing-spend-in-snowflake/.
-
Recursos:
-
https://www.startdataengineering.com/post/optimize-snowflake-cost/.
-
https://select.dev/posts/snowflake-query-optimization#snowflake-query-optimization-techniques.
-
Snowflake Optimisation Methods: Best Practices to Maximise ROI
–. -
https://seemoredata.io/blog/performance-tuning-in-snowflake/.
-
Essential Strategies for Optimizing Snowflake Performance and Reducing Costs.
-
https://www.montecarlodata.com/blog-snowflake-cost-optimization/.
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
-
Snowpark es un conjunto de bibliotecas y ambientes de ejecución de código que ejecutan Apache Spark™, Python y otros lenguajes de programación con el motor vectorizado de Snowflake.
-
Permite crea canalizaciones de datos con python, java, y scala.
-
Entre sus funcionalidades se destacan:
-
Snowpark DataFrames: Programación estilo DataFrame para desarrolladores.
-
https://docs.snowflake.com/en/developer-guide/snowpark/python/working-with-dataframes.
-
Biblioteca pandas: pandas API para transformaciones de datos y analíticas.
-
https://docs.snowflake.com/en/developer-guide/snowpark/python/pandas-on-snowflake.
-
UDFs (User-defined functions) y procedimientos almacenados: Código personalizado.
-
https://docs.snowflake.com/en/developer-guide/stored-procedure/stored-procedures-overview.
-
Conexión de Snowpark para Apache Spark: Ejecuta Apache Spark DataFrames, SQL y UDFs.
-
https://docs.snowflake.com/en/developer-guide/snowpark-connect/snowpark-connect-overview.
-
Fuente: https://www.snowflake.com/en/product/features/snowpark/.
-
según Metha(2024)[11] los seis beneficios de construir aplicaciones con Snowpark son:
-
Una plataforma para todos los lenguajes de programación.
-
Lleva el cálculo y procesamiento a los datos.
-
Gobernanza y seguridad integradas.
-
Aumento en el desempeño y reducción de costes.
-
Uso de Streamlit para construir apps interactivas.
-
Distribución y monetización con Snowflake Native Apps.
Práctica 6 – Empezando con tablas en Apache Iceberg
streamlit
-
Streamlit en un framework de python open source que habilita a los cientistas de datos a crear aplicaciones de datos en minutos sin conocimientos de desarrollo de front-end.
-
Se pueden construir aplicaciones en una pocas líneas de código con la API y visualizar las actualizaciones cada vez que se guarda un cambio.
-
Finalmente se pueden desplegar las aplicaciones y compartirlas, gestionándolas directamente desde Streamlit.
-
Fuente: Data applications in python https://www.snowflake.com/resource/data-applications-in-python/.
-
Baum (2024)[12] sostiene que para crear una aplicación que haga uso de LLM se debe tener en cuenta el ciclo de vida del proyecto:
-
Desarrollo: Seleccionar y adoptar el modelo que mejor se adapta a la tarea.
-
Despliegue: Asegurar una canalización con los datos correctos y la infraestructura adecuada.
-
Consumo: Exponer el modelo a los usuarios mediante una aplicación.
-
Recursos:
-
https://docs.snowflake.com/en/developer-guide/streamlit/getting-started.
-
https://www.snowflake.com/en/product/features/streamlit-in-snowflake/.
-
https://www.youtube.com/playlist?list=PLavJpcg8cl1FA5cmCfdzdHyOBVT6VLhQX.
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!!!