Saltar al contenido principal

Tutorial de copos de nieve para principiantes: De la arquitectura a la ejecución de bases de datos

Aprende los fundamentos de la gestión de almacenes de datos en la nube utilizando Snowflake. Snowflake es una plataforma basada en la nube que ofrece importantes ventajas a las empresas que desean extraer el máximo conocimiento de sus datos de la forma más rápida y eficaz posible.
Actualizado 16 ene 2025  · 12 min de lectura

¿Qué es Copo de Nieve?

Si alguien me pidiera que describiera a Copo de Nieve con el menor número de palabras posible, elegiría éstas:

  • Almacenes de datos
  • Datos a gran escala
  • Nube múltiple
  • Separación
  • Escalable
  • Flexible
  • Simple

Si querían que me explayara, encadenaba las palabras así:

Snowflake es una plataforma de gestión de almacenes de datos basada en la nube muy popular. Destaca entre sus competidores por su capacidad para manejar datos y cargas de trabajo a gran escala con mayor rapidez y eficacia. Su rendimiento superior procede de su arquitectura única, que utiliza capas separadas de almacenamiento y cálculo, lo que le permite ser increíblemente flexible y escalable. Además, se integra de forma nativa con múltiples proveedores de la nube. A pesar de estas funciones avanzadas, sigue siendo sencillo de aprender y aplicar.

Si piden aún más detalles, bueno, entonces escribiría este tutorial. Si eres totalmente nuevo en el tema, el curso Introducción a Snowflake de DataCamp es un excelente punto de partida.

¿Por qué utilizar Snowflake?

Snowflake da servicio a más de 8900 clientes en todo el mundo y procesa 3.900 millones de consultas cada día. Ese tipo de estadísticas de uso no es una coincidencia ni mucho menos.

A continuación te indicamos las mejores ventajas de Copo de Nieve que tienen tanto atractivo:

1. Arquitectura basada en la nube

Snowflake opera en las nubes, lo que permite a las empresas ampliar y reducir recursos en función de la demanda sin preocuparse de la infraestructura física (hardware). La plataforma también se encarga de las tareas rutinarias de mantenimiento, como las actualizaciones de software, la gestión del hardware y el ajuste del rendimiento. Esto alivia la carga de los gastos generales de mantenimiento, permitiendo a las organizaciones centrarse en lo que importa: obtener valor de los datos.

2. Elasticidad y escalabilidad

Snowflake separa las capas de almacenamiento y computación, permitiendo a los usuarios escalar sus recursos informáticos independientemente de sus necesidades de almacenamiento. Esta elasticidad permite gestionar eficazmente diversas cargas de trabajo con un rendimiento óptimo y sin costes innecesarios.

3. Concurrencia y rendimiento

Snowflake maneja fácilmente la alta concurrencia: varios usuarios pueden acceder a los datos y consultarlos sin pérdida de rendimiento.

4. Compartir datos

Las garantías de seguridad de Snowflake permiten compartir datos con otras organizaciones, departamentos internos, socios externos, clientes u otras partes interesadas. No necesitas complejas transferencias de datos.

5. Viaje en el tiempo

Snowflake utiliza un término elegante "Viaje en el tiempo" para el versionado de datos. Cada vez que se realiza un cambio en la base de datos, Snowflake toma una instantánea. Esto permite a los usuarios acceder a datos históricos en distintos momentos.

6. Rentabilidad

Snowflake ofrece un modelo de pago por uso gracias a su capacidad para escalar los recursos dinámicamente. Sólo pagarás por lo que utilices.

Todas estas ventajas combinadas hacen de Snowflake una herramienta de gestión de almacenes de datos muy deseable.

Ahora, echemos un vistazo a la arquitectura subyacente de Snowflake que desbloquea estas funciones.

Conviértete en Ingeniero de Datos

Conviértete en un ingeniero de datos mediante el aprendizaje avanzado de Python
Empieza a aprender gratis

¿Qué es un almacén de datos?

Antes de sumergirnos en la arquitectura de Snowflake, revisemos los almacenes de datos para asegurarnos de que todos estamos en la misma página.

Un almacén de datos es un depósito centralizado que almacena grandes cantidades de datos estructurados y organizados procedentes de diversas fuentes para una empresa. Diferentes personas (empleados) de las organizaciones utilizan los datos que contienen para obtener diferentes perspectivas.

Por ejemplo, los analistas de datos, en colaboración con el equipo de marketing, pueden realizar una prueba A/B para una nueva campaña de marketing utilizando la tabla de ventas. Los especialistas en RRHH pueden consultar la información del empleado para hacer un seguimiento de su rendimiento.

Estos son algunos de los ejemplos de cómo las empresas de todo el mundo utilizan los almacenes de datos para impulsar el crecimiento. Pero sin una implantación y gestión adecuadas mediante herramientas como Snowflake, los almacenes de datos siguen siendo conceptos elaborados.

Puedes aprender más sobre el tema con nuestro curso de Almacenamiento de Datos .

Arquitectura en copo de nieve

La arquitectura única de Snowflake, diseñada para consultas analíticas más rápidas, proviene de su separación de las capas de almacenamiento y computación. Esta distinción contribuye a los beneficios que hemos mencionado antes.

Capa de almacenamiento

En Snowflake, la capa de almacenamiento es un componente crítico, que almacena los datos de forma eficiente y escalable. He aquí algunas características clave de esta capa:

  1. En la nube: Snowflake se integra perfectamente con los principales proveedores de la nube, como AWS, GCP y Microsoft Azure.
  2. Formato columnar: Snowflake almacena los datos en un formato columnar, optimizado para las consultas analíticas. A diferencia de los formatos tradicionales basados en filas que utilizan herramientas como Postgres, el formato columnar es muy adecuado para la agregación de datos. En el almacenamiento columnar, las consultas sólo acceden a las columnas concretas que necesitan, por lo que es más eficiente. Por otra parte, los formatos basados en filas requieren acceder a todas las filas de la memoria para operaciones sencillas como calcular promedios.
  3. Micropartición: Snowflake utiliza una técnica llamada micropartición que almacena las tablas en memoria en pequeños trozos. Cada trozo suele ser inmutable y de sólo unos megabytes de tamaño, lo que hace que la optimización y ejecución de las consultas sea mucho más rápida.
  4. Clonación de copia cero: Snowflake tiene una característica única que le permite crear clones virtuales de datos. La clonación es instantánea y no consume memoria adicional hasta que se realizan cambios en la nueva copia.
  5. Escala y elasticidad: La capa de almacenamiento escala horizontalmente, lo que significa que puede manejar volúmenes de datos crecientes añadiendo más servidores para distribuir la carga. Además, este escalado se produce independientemente de los recursos informáticos, lo que es ideal cuando deseas almacenar grandes volúmenes de datos pero analizar sólo una pequeña fracción.

Veamos ahora la capa de cálculo.

Capa de cálculo

Como su nombre indica, la capa de cálculo es el motor que ejecuta tus consultas. Trabaja conjuntamente con la capa de almacenamiento para procesar los datos y realizar diversas tareas computacionales. A continuación encontrarás más detalles sobre el funcionamiento de esta capa:

  1. Almacenes virtuales: Puedes pensar en los Almacenes Virtuales como equipos de ordenadores (nodos de cálculo) diseñados para gestionar el procesamiento de consultas. Cada miembro del equipo se encarga de una parte diferente de la consulta, lo que hace que la ejecución sea impresionantemente rápida y paralela. Snowflake ofrece Almacenes Virtuales de distintos tamaños y, por consiguiente, a distintos precios (los tamaños incluyen XS, S, M, L, XL).
  2. Arquitectura multiclúster y multinodo: La capa de cálculo utiliza varios clusters con múltiples nodos para una alta concurrencia, permitiendo que varios usuarios accedan a los datos y los consulten simultáneamente.
  3. Optimización automática de consultas: El sistema Snowflake analiza todas las consultas e identifica patrones para optimizar utilizando datos históricos. Las optimizaciones habituales incluyen la poda de datos innecesarios, el uso de metadatos y la elección de la ruta de ejecución más eficiente.
  4. Caché de resultados: La capa de cálculo incluye una caché que almacena los resultados de las consultas ejecutadas con frecuencia. Cuando se vuelve a ejecutar la misma consulta, los resultados se devuelven casi instantáneamente.

Todos estos principios de diseño de la capa de cálculo contribuyen a la capacidad de Snowflake para gestionar cargas de trabajo diferentes y exigentes en la nube.

Capa de servicios en la nube

La última capa son los servicios en la nube. Como esta capa se integra en todos los componentes de la arquitectura de Snowflake, hay muchos detalles sobre su funcionamiento. Además de las funciones relacionadas con otras capas, tiene las siguientes responsabilidades adicionales:

  1. Seguridad y control de acceso: Esta capa aplica medidas de seguridad, como la autenticación, la autorización y la encriptación. Los administradores utilizan el Control de Acceso Basado en Funciones (RBAC) para definir y gestionar las funciones y permisos de los usuarios.
  2. Compartir datos: Esta capa implementa protocolos seguros de intercambio de datos entre diferentes cuentas e incluso organizaciones de terceros. Los consumidores de datos pueden acceder a ellos sin necesidad de moverlos, lo que fomenta la colaboración y la monetización de los datos.
  3. Soporte de datos semiestructurados: Otra ventaja exclusiva de Snowflake es su capacidad para manejar datos semiestructurados, como JSON y Parquet, a pesar de ser una plataforma de gestión de almacenes de datos. Puede consultar fácilmente datos semiestructurados e integrar los resultados con las tablas existentes. Esta flexibilidad no se ve en otras herramientas RDBMS.

Ahora que tenemos una imagen de alto nivel de la arquitectura de Snowflake, vamos a escribir algo de SQL en la plataforma.

Configurar SnowflakeSQL

Snowflake tiene su propia versión de SQL llamada SnowflakeSQL. La diferencia entre éste y otros dialectos de SQL es similar a la diferencia entre los acentos del inglés.

Muchas de las consultas analíticas que realizas en dialectos como PostgreSQL no cambian, pero hay algunas discrepancias en los comandos DDL (Lenguaje de Definición de Datos).

Snowflake proporciona dos interfaces para ejecutar SnowSQL:

  • Snowsight: Una interfaz web para interactuar con la plataforma.
  • SnowSQL: Un cliente CLI (Interfaz de Línea de Comandos) para gestionar y consultar bases de datos.

Veremos cómo configurar ambos y realizar algunas consultas.

Snowsight: Interfaz web

image3.png

Para empezar con Snowsight, ve a la página principal de Snowflake y selecciona "Empezar gratis". Introduce tus datos personales y selecciona cualquier proveedor de la nube de la lista. La elección no importa realmente, ya que la prueba gratuita incluye créditos por valor de 400 $ para cualquiera de las opciones (no se te pedirá que configures tú mismo las credenciales en la nube).

Tras verificar tu correo electrónico, serás redirigido a la página Hojas de trabajo. Las hojas de trabajo son entornos interactivos de codificación en vivo en los que puedes escribir, ejecutar y ver los resultados de tus consultas SQL.

image8.png

Para realizar algunas consultas, necesitamos una base de datos y una tabla (no utilizaremos los datos de ejemplo de Snowsight). El siguiente GIF muestra cómo puedes crear una nueva base de datos llamada "prueba_db" y una tabla llamada "diamantes" utilizando un archivo CSV local. Puedes descargar el archivo CSV ejecutando el código de este gist de GitHub en tu terminal.

image6.gif

En el GIF, Snowsight nos informa de que hay un problema con uno de los nombres de columna. Como la palabra "tabla" es una palabra clave reservada, la he encerrado entre comillas dobles.

Después, se te dirigirá a una nueva hoja de cálculo donde podrás ejecutar cualquier consulta SQL que desees. Como se muestra en el GIF, la interfaz de la hoja de cálculo es bastante sencilla y muy funcional. Tómate unos minutos para familiarizarte con los paneles, los botones y sus respectivas ubicaciones.

SnowSQL: CLI

Nada iguala la emoción de gestionar y consultar una base de datos completa desde tu terminal. ¡Por eso existe SnowSQL!

Sin embargo, para ponerlo en marcha, hay que seguir algunos pasos, lo que suele ser un proceso más lento que empezar con Snowsight.

Como primer paso, descarga el instalador de SnowSQL de la página de descargas para desarrolladores de Snowflake. Descarga el archivo correspondiente. Como estoy utilizando WSL2, elegiré una versión para Linux:

image1.gif

En el terminal, descargo el archivo utilizando el enlace copiado y lo ejecuto con bash:

$ curl -O https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowsql-1.2.31-linux_x86_64.bash
$ bash snowsql-1.2.31-linux_x86_64.bash

Para otras plataformas, puedes seguir los pasos de instalación de esta página de documentación de Snowflake.

Una vez instalado correctamente, deberías recibir el siguiente mensaje:

image4.png

Nota: En los sistemas tipo Unix, es importante asegurarse de que el comando snowsql está disponible en todas las sesiones de terminal. Para ello, debes añadir el directorio /home/username/bin a tu variable $PATH. Puedes hacerlo añadiendo la siguiente línea a tus archivos .bashrc, .bash_profile o .zshrc: export PATH=/home/yourusername/bin:$PATH. Recuerda sustituir yourusername por tu nombre de usuario real.

El mensaje nos pide que configuremos los ajustes de la cuenta para conectarnos a Snowflake. Hay dos formas de hacerlo:

  1. Pasa los datos de la cuenta interactivamente en el terminal.
  2. Configura las credenciales en un archivo de configuración global de Snowflake.

Como es más permanente y seguro, procederemos con la segunda opción. Para obtener instrucciones específicas de la plataforma, lee la página Conectarse a través de SnowSQL de la documentación. Las siguientes instrucciones son para sistemas tipo Unix.

En primer lugar, ve a tu dirección de correo electrónico y busca el correo de bienvenida de Snowflake. Contiene el nombre de tu cuenta dentro del enlace de inicio de sesión: account-name.snowflakecomputing.com. Cópialo.

image9.png

A continuación, abre el archivo ~/.snowsql/config con un editor de texto como VIM o VSCode. En la sección connections, descomenta los tres campos siguientes:

  • Nombre de la cuenta
  • Nombre de usuario
  • Contraseña

Sustituye los valores por defecto por el nombre de cuenta que copiaste y el nombre de usuario y contraseña que proporcionaste al registrarte. Una vez hecho esto, guarda y cierra el archivo.

Después, vuelve a tu terminal e introduce snowsql. El cliente debería conectarse automáticamente y ofrecerte un editor SQL que incluya funciones como resaltado de código y completado de tabulaciones. Este es el aspecto que debe tener:

image5.png

Conectarse a una base de datos existente en SnowSQL

Ahora mismo, no estamos conectados a ninguna base de datos. Vamos a solucionarlo conectándonos a la base de datos test_db que hemos creado con Snowsight. Primero, comprueba las bases de datos disponibles con SHOW DATABASES:

$ SHOW DATABASES
$ USE DATABASE TEST_DB

A continuación, especifica que a partir de ahora utilizarás la base de datos test_db (sin distinguir mayúsculas de minúsculas). A continuación, puedes ejecutar cualquier consulta SQL en las tablas de la base de datos conectada.

$ SELECT COUNT(*) FROM DIAMONDS

image2.png

Crear una base de datos y una tabla nuevas en SnowSQL

Si formas parte de una gran organización, puede darse el caso de que la responsabilidad de crear una base de datos y poblarla con los datos existentes recaiga sobre tus hombros. Para practicar en ese escenario, vamos a intentar cargar el conjunto de datos Diamonds como una tabla en SnowSQL dentro de una nueva base de datos. Estos son los pasos que puedes seguir:

1. Crea una nueva base de datos:

CREATE DATABASE IF NOT EXISTS new_db;

2. Utiliza la base de datos:

USE DATABASE new_db;

3. Crea un formato de archivo para CSV:

CREATE OR REPLACE FILE FORMAT my_csv_format -- Can be named anything
 TYPE = CSV
 FIELD_DELIMITER = ','
 SKIP_HEADER = 1;  -- Assuming the first row is a header

Debemos definir manualmente un formato de archivo y darle un nombre, porque Snowflake no puede deducir el esquema y la estructura de archivos de datos como CSV, JSON o XML. El formato de archivo que definimos anteriormente es adecuado para el archivo diamonds.csv que tenemos (está separado por comas e incluye una cabecera).

4. Crea un escenario interno:

CREATE OR REPLACE STAGE my_local_files;

Un escenario en Snowflake es un área de almacenamiento donde puedes subir tus archivos locales. Pueden ser ficheros de datos estructurados y semiestructurados. Arriba, estamos creando un escenario llamado my_local_files.

5. Introduce el archivo CSV en el escenario:

PUT file:///home/bexgboost/diamonds.csv @my_local_files;

6. Crea la tabla:

CREATE TABLE diamonds (
 carat FLOAT,
 cut VARCHAR(255),
 color VARCHAR(255),
 clarity VARCHAR(255),
 depth FLOAT,
 table FLOAT,
 price INTEGER,
 x FLOAT,
 y FLOAT,
 z FLOAT
);

7. Carga los datos de la etapa en la tabla:

COPY INTO diamonds
 FROM @my_local_files/diamonds.csv
 FILE_FORMAT = my_csv_format;

8. Verifícalo:

SELECT COUNT(*) FROM diamonds;

Estos pasos crearán una nueva base de datos Snowflake, definirán un formato de archivo CSV, crearán un escenario para almacenar archivos locales, cargarán un archivo CSV en el escenario, crearán una nueva tabla, cargarán los datos CSV en la tabla y, por último, verificarán la operación contando el número de filas de la tabla.

Si el resultado devuelve el recuento de filas, enhorabuena, has creado con éxito una base de datos y has cargado en ella datos locales con SnowSQL. Ahora puedes consultar la tabla como quieras.

Conclusión y aprendizaje posterior

¡Uf! Empezamos con algunos conceptos sencillos, pero hacia el final, nos metimos de lleno en los detalles escabrosos. Bueno, esa es mi idea de un tutorial decente.

Probablemente habrás adivinado que Snowflake es mucho más de lo que hemos cubierto. De hecho, ¡la documentación de Snowflake incluye guías de inicio rápido que en realidad duran 128 minutos! Pero antes de abordarlas, te recomiendo que te mojes las manos con otros recursos. ¿Qué te parecen éstas?

¡Gracias por leer!

Certifícate en el puesto de Ingeniero de Datos de tus sueños

Nuestros programas de certificación te ayudan a destacar y a demostrar que tus aptitudes están preparadas para el trabajo a posibles empleadores.

Consigue tu Certificación
Timeline mobile.png

Bex Tuychiev's photo
Author
Bex Tuychiev
LinkedIn

Soy un creador de contenidos de ciencia de datos con más de 2 años de experiencia y uno de los mayores seguidores en Medium. Me gusta escribir artículos detallados sobre IA y ML con un estilo un poco sarcastıc, porque hay que hacer algo para que sean un poco menos aburridos. He publicado más de 130 artículos y un curso DataCamp, y estoy preparando otro. Mi contenido ha sido visto por más de 5 millones de ojos, 20.000 de los cuales se convirtieron en seguidores tanto en Medium como en LinkedIn. 

Temas

¡Comienza hoy tu viaje a la base de datos!

Curso

Introduction to Snowflake

2 hr
2.2K
Snowflake is a top data warehousing platform. Learn how they use Snowsight, a user-friendly SQL interface for accessing and exploring data.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

Las 32 mejores preguntas y respuestas de la entrevista sobre Snowflake para 2024

¿Estás buscando actualmente un trabajo que utilice Snowflake? Prepárate con estas 32 preguntas de entrevista para conseguir el puesto.
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 min

Tutorial

Base de datos Azure SQL: Configuración y gestión paso a paso

Aprende a crear, conectar, gestionar, consultar y proteger tu base de datos Azure SQL. Esta guía paso a paso cubre todo lo esencial para una configuración óptima de la base de datos.
Anneleen Rummens's photo

Anneleen Rummens

12 min

Tutorial

Tutorial de Power BI para principiantes

Aprende los fundamentos de Power BI y a crear un informe básico con este tutorial paso a paso.
DataCamp Team's photo

DataCamp Team

13 min

Tutorial

Sinapsis Azure: Guía paso a paso para principiantes

Una guía fácil de seguir para que los principiantes aprendan Azure Synapse, que abarca desde la configuración de tu espacio de trabajo hasta la integración de datos y la ejecución de análisis.
Moez Ali's photo

Moez Ali

13 min

Tutorial

Tutorial de GitHub y Git para principiantes

Un tutorial para principiantes que muestra cómo funciona el control de versiones Git y por qué es crucial para los proyectos de ciencia de datos.
Abid Ali Awan's photo

Abid Ali Awan

9 min

Tutorial

Primeros pasos con AWS Athena: Guía práctica para principiantes

Esta guía práctica te ayudará a empezar a utilizar AWS Athena. Explora su arquitectura y características y aprende a consultar datos en Amazon S3 utilizando SQL.
Tim Lu's photo

Tim Lu

15 min

Ver másVer más