Crear tablas en Snowflake: Tipos, ejemplos y buenas prácticas
Aprende a crear distintos tipos de tablas en Snowflake, incluidas las tablas permanentes, temporales, externas y dinámicas. Incluye ejemplos paso a paso y buenas prácticas.
Snowflake es una potente plataforma de almacenamiento de datos basada en la nube que ayuda a las organizaciones a almacenar, gestionar y analizar sus datos de forma eficaz. A diferencia de los almacenes de datos tradicionales, que requieren complejas configuraciones de hardware, Snowflake se ejecuta totalmente en la nube, lo que facilita a las empresas ampliar sus operaciones de datos según sea necesario.
Crear tablas en Snowflake es una habilidad fundamental que constituye la base de la gestión de datos. Las tablas son el lugar donde almacenas tus datos estructurados, lo que hace posible ejecutar consultas, generar informes y obtener información valiosa de tu información. Tanto si trabajas con datos de clientes, cifras de ventas o resultados analíticos, es esencial comprender cómo crear y gestionar tablas en Snowflake.
En este tutorial, aprenderás todo lo que necesitas saber sobre la creación de tablas en Snowflake. Cubriremos los distintos tipos de tablas, te mostraremos ejemplos paso a paso y compartiremos las mejores prácticas para el diseño de tablas. Al final, tendrás confianza para elegir el tipo de tabla adecuado a tus necesidades y crear tablas que sigan las normas del sector en cuanto a rendimiento y capacidad de mantenimiento.
Entender los tipos de tabla en Snowflake
Antes de sumergirnos en ejemplos de código sobre cómo crear tablas, vamos a explorar los distintos tipos de tablas en Snowflake, ya que cada una de ellas tiene propósitos únicos y características distintas en cuanto a persistencia de datos, accesibilidad y ubicación de almacenamiento.
Mesas permanentes
Las tablas permanentes son el tipo de tabla estándar en Snowflake. Persisten hasta que se abandonan explícitamente y se guardan en el almacenamiento interno de Snowflake. Estas tablas son ideales para almacenar los datos principales de tu empresa que deben conservarse a largo plazo y a los que se debe acceder en varias sesiones. Los datos de las tablas permanentes permanecen intactos entre sesiones y cualquier usuario autorizado puede acceder a ellos.
Tablas temporales
Las tablas temporales son tablas específicas de la sesión que se eliminan automáticamente cuando finaliza la sesión actual. Sirven como tablas de espacio de trabajo para pasos intermedios de procesamiento, ayudando a organizar transformaciones complejas de datos sin saturar tu almacenamiento permanente. Los datos de las tablas temporales sólo son visibles para la sesión que las creó y se limpian automáticamente cuando se cierra la sesión.
Tablas externas
Las tablas externas proporcionan una forma de consultar datos que residen fuera del almacenamiento de Snowflake. Actúan como una capa de metadatos que mapea los datos en ubicaciones de almacenamiento externas como AWS S3 o Azure Blob Storage. En lugar de ingerir los datos, las tablas externas crean una referencia a ellos, lo que te permite consultar directamente los datos externos. Este enfoque es especialmente valioso cuando se trabaja con datos que deben permanecer en su ubicación de origen o que requieren actualizaciones frecuentes desde sistemas externos.
Tablas dinámicas
Las tablas dinámicas son una potente función de Snowflake que mantiene automáticamente actualizados los resultados de una consulta. Actúan como vistas materializadas que se actualizan automáticamente en función de los cambios en las tablas fuente subyacentes. Cuando creas una tabla dinámica, la defines mediante una sentencia SELECT, y Snowflake gestiona automáticamente el proceso de actualización para garantizar que los datos se mantienen actualizados.
Las tablas dinámicas son especialmente útiles para:
Construir cuadros de mando en tiempo real que necesiten datos frescos sin actualizaciones manuales
Mantener versiones agregadas o transformadas de los datos fuente que se actualizan automáticamente
Crear modelos de datos dependientes en los que las tablas descendentes deban reflejar los cambios ascendentes
Optimizar el rendimiento de las consultas precalculando transformaciones complejas
Las principales características de las tablas dinámicas son
Intervalos de actualización configurables (de 1 minuto a 24 horas)
Seguimiento automático de las dependencias de las tablas de origen
Ajustes del tiempo de retardo objetivo para controlar la frescura de los datos
Procesamiento incremental para minimizar los costes de cálculo
Capacidades integradas de supervisión y optimización
Cada tipo de tabla tiene una finalidad distinta en la arquitectura de datos. Las tablas permanentes forman la base de tu almacén de datos, las tablas temporales facilitan los flujos de trabajo de procesamiento de datos, las tablas externas permiten la integración con fuentes de datos externas y las tablas dinámicas proporcionan transformaciones de datos automatizadas y en tiempo real.
Comparar tablas de copos de nieve
En la tabla siguiente, hemos resumido los distintos tipos de tablas Snowflake en una guía concisa de referencia rápida:
Tipo de mesa
Persistencia
Visibilidad
Lo mejor para
Permanente
Hasta que caiga
Cualquier sesión
Datos empresariales básicos
Temporal
Sólo para sesión
Misma sesión
Transformaciones intermedias
Externo
Almacenamiento externo
Cualquier sesión
Consulta de datos externos (por ejemplo, S3)
Dinámico
Auto-refrescante
Cualquier sesión
Análisis en tiempo real
Crear tablas: Configurar Snowflake
Antes de ejecutar los ejemplos de este tutorial, necesitarás acceder a un entorno Snowflake. Aquí tienes varias formas de conectarte y ejecutar comandos Snowflake:
1. Interfaz web Snowflake (Snowsight)
La forma más sencilla de empezar es a través de la interfaz web de Snowflake:
Puedes encontrar las credenciales de tu cuenta Snowflake en los siguientes lugares:
URL de la cuenta: Mira en tu correo electrónico de bienvenida o en la configuración de tu cuenta
Nombre de usuario: Proporcionado durante la configuración de la cuenta
Base de datos: Creado o asignado por tu administrador
Almacén: Creado o asignado por tu administrador
Por seguridad, nunca compartas ni comprometas estas credenciales. Almacénalos de forma segura en variables de entorno o en un archivo de configuración.
3. Conexión Python
Si utilizas Python, puedes utilizar la bibliotecasnowflake-connector-python:
import snowflake.connector
conn = snowflake.connector.connect(
user='your_username',
password='your_password',
account='your_account',
warehouse='your_warehouse',
database='your_database',
schema='your_schema')
cur = conn.cursor()
cur.execute("SELECT current_version()")Con la tecnología de
Nota de seguridad importante:
Nunca almacenes credenciales directamente en tu código
Utiliza variables de entorno o gestión secreta segura
Para la producción, considera el uso de la autenticación por pares de claves
Sigue las políticas de seguridad de tu organización
Ahora que nuestra configuración está lista, ¡vamos a crear tablas!
Crear tablas en Snowflake: Ejemplos paso a paso
Ejemplo 1: Crear una tabla simple de Copo de Nieve
Vamos a crear una tabla para almacenar la información de los clientes. Este ejemplo muestra la creación de tablas básicas con distintos tipos de datos y restricciones.
-- Create a permanent table for customer dataCREATEORREPLACETABLE customers (
customer_id INTEGERPRIMARYKEY,
first_name VARCHAR(50)NOTNULL,
last_name VARCHAR(50)NOTNULL,
email VARCHAR(100)UNIQUE,
date_of_birth DATE,
created_at TIMESTAMP_NTZ DEFAULTCURRENT_TIMESTAMP());Con la tecnología de
Puntos clave de este ejemplo:
CREATE OR REPLACE TABLE - Crea una tabla nueva o la sustituye si ya existe
PRIMARY KEY - Garantiza la identificación única de cada registro
NOT NULL - Evita los valores nulos en los campos obligatorios
UNIQUE - Garantiza que las direcciones de correo electrónico no estén duplicadas
TIMESTAMP_NTZ - Marca de tiempo sin zona horaria
DEFAULT - Establece automáticamente la marca de tiempo de creación
Ejemplo 2: Crear una tabla temporal
Las tablas temporales son perfectas para el tratamiento intermedio de datos. Aquí tienes un ejemplo que crea una tabla temporal para analizar los pedidos de los clientes:
-- Create a temporary table for order analysisCREATEORREPLACETEMPORARYTABLE temp_order_analysis (
order_date DATE,
total_orders INTEGER,
total_revenue DECIMAL(18,2))ASSELECT
DATE_TRUNC('day', order_date)as order_date,COUNT(*)as total_orders,SUM(order_amount)as total_revenue
FROM orders
GROUPBY1;Con la tecnología de
Puntos clave sobre las tablas temporales:
La palabra clave TEMPORARY indica que esta tabla sólo existirá dentro de la sesión actual. Esto significa que otros usuarios no pueden ver ni acceder a esta tabla.
Utilizar CREATE TABLE AS (CTAS) te permite crear y rellenar una tabla en un solo paso, combinando la definición de la tabla con una sentencia SELECT.
La tabla temporal se elimina automáticamente cuando finaliza tu sesión, lo que ayuda a mantener limpia la base de datos sin necesidad de limpieza manual.
Las tablas temporales son útiles para almacenar resultados intermedios durante transformaciones complejas de datos o flujos de trabajo de análisis.
Ejemplo 3: Crear una tabla externa en Snowflake
Este ejemplo muestra cómo crear una tabla externa que lea datos de archivos almacenados en un cubo de almacenamiento en la nube:
La primera sentencia define una especificación de formato de archivo que indica a Snowflake cómo analizar archivos CSV externos, incluyendo el delimitador, el manejo de cabeceras y las representaciones de valores NULL.
La segunda sentencia crea un objeto stage que establece una conexión con el almacenamiento externo en la nube (en este caso, S3) utilizando las credenciales proporcionadas. Esta etapa actúa como punto de referencia para acceder a los archivos de datos externos.
La tercera sentencia crea la tabla externa propiamente dicha, utilizando definiciones de columna con cláusulas AS para convertir explícitamente los datos de cadena sin procesar del CSV en tipos de datos Snowflake adecuados. La cláusula WITH LOCATION apunta a la ruta concreta dentro de la etapa donde residen los archivos.
El parámetro PATTERN filtra los archivos que deben incluirse mediante la concordancia regex, garantizando que sólo se procesen los archivos CSV.
Requisitos previos para ejecutar esta consulta de creación de tablas externas:
1. Acceso a una cuenta Snowflake con permisos para:
Crear formatos de archivo
Crear etapas
Crear tablas externas
2. Credenciales válidas de AWS (AWS_KEY_ID y AWS_SECRET_KEY ) con permisos para:
Leer del cubo S3
Enumera los objetos del cubo
3. Requisitos de los datos de origen:
Archivos CSV almacenados en un bucket S3
Los archivos siguen un formato coherente con cuatro columnas
Los datos de columna coinciden con los tipos especificados:
customer_id como cadena
purchase_date como fecha
product_id como cadena
amount como decimal
4. Conectividad de red:
Acceso de red a AWS S3
Configuración adecuada del grupo de seguridad y del cortafuegos
5. Recursos informáticos:
Almacén activo con capacidad informática adecuada
Créditos/cuota de usuario suficientes
Ejemplo 4: Crear una tabla dinámica
Este ejemplo crea una tabla dinámica que mantiene un resumen actualizado de los datos de ventas:
-- Create a dynamic table for real-time sales analyticsCREATEORREPLACE DYNAMIC TABLE daily_sales_summary
TARGET_LAG ='20 minutes'
WAREHOUSE ='COMPUTE_WH'ASSELECT
DATE_TRUNC('day', sale_timestamp)as sale_date,
product_category,SUM(sale_amount)as total_sales,COUNT(DISTINCT customer_id)as unique_customers
FROM sales_transactions
GROUPBY1,2;Con la tecnología de
El parámetro TARGET_LAG de "20 minutos" define el retraso máximo permitido entre las actualizaciones de la tabla de origen y el momento en que esos cambios se reflejan en la tabla dinámica. Esto garantiza la frescura de los datos dentro de ese intervalo de tiempo.
El parámetro WAREHOUSE especifica qué recursos informáticos (en este caso COMPUTE_WH) se utilizarán para refrescar periódicamente la tabla dinámica. Este almacén debe tener la capacidad adecuada para gestionar las operaciones de actualización.
La tabla dinámica actualiza automáticamente su contenido cuando cambia la tabla sales_transactions subyacente, sin necesidad de intervención manual. Esto proporciona capacidades analíticas casi en tiempo real.
Al mantener resúmenes de ventas diarias pre-agregados y agrupados por categoría de producto, la tabla dinámica permite una consulta más rápida en comparación con el cálculo de estas métricas bajo demanda a partir de los datos brutos de las transacciones. Esto mejora el rendimiento de las consultas para los casos de uso de informes y análisis.
Cada uno de estos ejemplos muestra distintos escenarios de creación de tablas que puedes encontrar en aplicaciones del mundo real. Recuerda ajustar los nombres de las columnas, los tipos de datos y otros parámetros según tus necesidades específicas.
Buenas prácticas para crear tablas en Snowflake
Exploremos algunas de las mejores prácticas que se deben seguir al crear tablas en Snowflake para garantizar la mantenibilidad, el rendimiento y la calidad de los datos.
1. Convenciones de denominación
Utiliza siempre nombres claros y coherentes para tus tablas y columnas:
-- Good naming examplesCREATETABLE customer_orders (
order_id INTEGER,
customer_email VARCHAR,
order_date DATE);-- Bad naming examplesCREATETABLE Orders123 (
ID INTEGER,
email VARCHAR,
dt DATE);Con la tecnología de
Consejos para nombrar:
Utiliza letras minúsculas y guiones bajos (serpiente_case)
Evita espacios y caracteres especiales
Haz que los nombres sean descriptivos pero no demasiado largos
Utiliza la forma singular para los nombres de las tablas (cliente no clientes)
Añade prefijos para diferentes entornos (dev_,test_,prod_ )
2. Tipos de datos de columna
Elige el tipo de datos adecuado para ahorrar almacenamiento y mejorar el rendimiento:
-- Good data type choicesCREATETABLE products (
product_id INTEGER,
price DECIMAL(10,2),-- For money values
name VARCHAR(100),-- Set a reasonable limit
description TEXT,-- For very long text
is_active BOOLEAN-- Instead of VARCHAR or INTEGER);Con la tecnología de
Tipos de datos habituales:
NUMBER/INTEGER: Para números enteros
DECIMAL/NUMERIC: Para números decimales precisos (especialmente dinero)
VARCHAR: Para un texto con una longitud máxima conocida
TEXT: Para texto de longitud ilimitada
TIMESTAMP_NTZ: Para fechas y horas (sin zona horaria)
BOOLEAN: Para valores verdadero/falso
3. Utilizar claves de agrupación
Añade claves de agrupación para mejorar el rendimiento de la consulta:
CREATETABLE sales (
sale_date DATE,
store_id INTEGER,
product_id INTEGER,
amount DECIMAL(10,2))
CLUSTER BY(sale_date, store_id);Con la tecnología de
Cuándo utilizar la agrupación:
Para tablas grandes (más de 1 millón de filas)
En columnas sobre las que filtras o unes con frecuencia
Normalmente columnas de fecha más 1-2 columnas más
No agrupes por columnas con demasiados valores únicos
4. Añadir restricciones de tabla
Utiliza restricciones para mantener limpios tus datos:
CREATETABLE users (
user_id INTEGERPRIMARYKEY,-- Ensures unique IDs
email VARCHAR(255)UNIQUE,-- No duplicate emails
username VARCHAR(50)NOTNULL,-- Must have a value
age INTEGERCHECK(age >=18)-- Must be 18 or older);Con la tecnología de
Limitaciones importantes:
PRIMARY KEY: Para identificadores únicos
FOREIGN KEY: Para enlazar tablas
NOT NULL: Para los campos obligatorios
UNIQUE: Para campos que no pueden tener duplicados
CHECK: Para una simple validación de datos
5. Errores comunes que debes evitar
No lo hagas:
-- Bad practice: No primary keyCREATETABLE orders (dateVARCHAR,-- Wrong data type for dates
amount VARCHAR(10),-- Wrong data type for numbersstatustext-- Inconsistent case with other columns);Con la tecnología de
Haz esto en su lugar:
-- Good practiceCREATETABLE orders (
order_id INTEGERPRIMARYKEY,
order_date DATE,
amount DECIMAL(10,2),statusVARCHAR(20));Con la tecnología de
La versión mejorada garantiza la integridad de los datos con una clave primaria, utiliza tipos de datos correctos para las fechas y los números a fin de permitir un filtrado y unos cálculos eficaces, y mantiene la coherencia en las definiciones de las columnas para mejorar la legibilidad y la compatibilidad.
6. Consejos de actuación
Optimizar el rendimiento de las tablas en Snowflake puede mejorar significativamente la velocidad de consulta y reducir los costes de almacenamiento. Sigue estas prácticas recomendadas para garantizar que tus tablas sean eficientes y escalables.
Crea tablas más pequeñas en lugar de una tabla enorme
Añade descripciones de columna mediante COMENTARIO
Establecer reglas automáticas de limpieza de datos
Prueba el diseño de tu mesa con datos reales
Controla el uso de la mesa y ajústalo según sea necesario
7. Buenas prácticas de seguridad
Unas medidas de seguridad adecuadas son esenciales para proteger los datos sensibles y controlar el acceso. Pon en práctica estas buenas prácticas para proteger tu entorno Snowflake de accesos no autorizados y violaciones de datos.
Establece siempre permisos de acceso adecuados
Utiliza la seguridad a nivel de fila cuando sea necesario
Cifrar columnas sensibles
Controla quién puede acceder a qué
Revisa periódicamente los patrones de acceso
Recuerda: Una mesa bien diseñada facilita tu trabajo posterior. ¡Tómate tu tiempo para planificar la estructura de tu mesa antes de crearla!
Conclusión
En este tutorial, hemos cubierto los aspectos esenciales de la creación de tablas en Snowflake, incluyendo:
Diferentes tipos de tablas (permanentes, temporales, externas y dinámicas)
Ejemplos paso a paso para crear cada tipo
Buenas prácticas para el diseño y la gestión de mesas
Errores comunes que hay que evitar
Este conocimiento constituye la base para construir soluciones de datos eficientes y escalables en Snowflake.
Próximos pasos
Para profundizar tus conocimientos sobre Snowflake, consulta estos valiosos recursos:
No olvides que la mejor forma de aprender es haciendo. Empieza a crear tablas, experimenta con distintos tipos y construye proyectos reales. Cuando te encuentres con dificultades, consulta estos recursos y sigue explorando nuevas funciones de Snowflake.
Preguntas frecuentes sobre la mesa Crear copo de nieve
¿Cuáles son los distintos tipos de tablas en Snowflake?⌄
Snowflake admite cuatro tipos principales de tablas: tablas permanentes para el almacenamiento de datos a largo plazo, tablas temporales para uso específico de la sesión, tablas externas para consultar fuentes de datos externas y tablas dinámicas para el mantenimiento automático de los resultados de las consultas.
¿Cómo creo una tabla básica en Snowflake?⌄
Utiliza el comando CREATE TABLE con el esquema que desees. Por ejemplo: "CREATE TABLE customers (customer_id INTEGER PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50))". Incluye tipos de datos y restricciones adecuados.
¿Qué es una tabla dinámica en Snowflake y cuándo debo utilizarla?⌄
Las tablas dinámicas mantienen automáticamente actualizados los resultados de una consulta, de forma similar a las vistas materializadas. Son ideales para cuadros de mando en tiempo real, transformaciones automatizadas de datos y mantenimiento de datos agregados que necesitan actualizaciones frecuentes.
¿Cuáles son las mejores prácticas para dar nombre a las tablas en Snowflake?⌄
Utiliza letras minúsculas con guiones bajos (snake_case), evita los espacios y los caracteres especiales, haz que los nombres sean descriptivos pero concisos, utiliza la forma singular para los nombres de las tablas y considera la posibilidad de añadir prefijos de entorno (dev_, test_, prod_).
¿Cómo puedo mejorar el rendimiento de las tablas en Snowflake?⌄
Mejora el rendimiento utilizando claves de agrupación adecuadas, eligiendo tipos de datos correctos, estableciendo restricciones adecuadas, creando tablas centradas más pequeñas en lugar de grandes, y supervisando regularmente los patrones de uso de las tablas.
Creamos modelos de datos formateando los datos, creando relaciones, utilizando Power Query y aprovechando Power Pivot para una integración y análisis de datos sin fisuras.
Descubre qué es el modelado de datos en Power BI y cómo unas buenas prácticas de modelado de datos pueden llevar tus informes de Power BI al siguiente nivel.
Aprende a utilizar los disparadores SQL para automatizar tareas, mantener la integridad de los datos y mejorar el rendimiento de la base de datos. Prueba ejemplos prácticos como los comandos CREATE, ALTER y DROP en MySQL y Oracle.
¡Aprende los fundamentos de la ingeniería de datos: diseño de bases de datos y almacenamiento de datos, y trabaja con tecnologías como PostgreSQL y Snowflake!
Snowflake es una potente plataforma de almacenamiento de datos basada en la nube que ayuda a las organizaciones a almacenar, gestionar y analizar sus datos de forma eficaz. A diferencia de los almacenes de datos tradicionales, que requieren complejas configuraciones de hardware, Snowflake se ejecuta totalmente en la nube, lo que facilita a las empresas ampliar sus operaciones de datos según sea necesario.
Crear tablas en Snowflake es una habilidad fundamental que constituye la base de la gestión de datos. Las tablas son el lugar donde almacenas tus datos estructurados, lo que hace posible ejecutar consultas, generar informes y obtener información valiosa de tu información. Tanto si trabajas con datos de clientes, cifras de ventas o resultados analíticos, es esencial comprender cómo crear y gestionar tablas en Snowflake.
En este tutorial, aprenderás todo lo que necesitas saber sobre la creación de tablas en Snowflake. Cubriremos los distintos tipos de tablas, te mostraremos ejemplos paso a paso y compartiremos las mejores prácticas para el diseño de tablas. Al final, tendrás confianza para elegir el tipo de tabla adecuado a tus necesidades y crear tablas que sigan las normas del sector en cuanto a rendimiento y capacidad de mantenimiento.
Entender los tipos de tabla en Snowflake
Antes de sumergirnos en ejemplos de código sobre cómo crear tablas, vamos a explorar los distintos tipos de tablas en Snowflake, ya que cada una de ellas tiene propósitos únicos y características distintas en cuanto a persistencia de datos, accesibilidad y ubicación de almacenamiento.
Mesas permanentes
Las tablas permanentes son el tipo de tabla estándar en Snowflake. Persisten hasta que se abandonan explícitamente y se guardan en el almacenamiento interno de Snowflake. Estas tablas son ideales para almacenar los datos principales de tu empresa que deben conservarse a largo plazo y a los que se debe acceder en varias sesiones. Los datos de las tablas permanentes permanecen intactos entre sesiones y cualquier usuario autorizado puede acceder a ellos.
Tablas temporales
Las tablas temporales son tablas específicas de la sesión que se eliminan automáticamente cuando finaliza la sesión actual. Sirven como tablas de espacio de trabajo para pasos intermedios de procesamiento, ayudando a organizar transformaciones complejas de datos sin saturar tu almacenamiento permanente. Los datos de las tablas temporales sólo son visibles para la sesión que las creó y se limpian automáticamente cuando se cierra la sesión.
Tablas externas
Las tablas externas proporcionan una forma de consultar datos que residen fuera del almacenamiento de Snowflake. Actúan como una capa de metadatos que mapea los datos en ubicaciones de almacenamiento externas como AWS S3 o Azure Blob Storage. En lugar de ingerir los datos, las tablas externas crean una referencia a ellos, lo que te permite consultar directamente los datos externos. Este enfoque es especialmente valioso cuando se trabaja con datos que deben permanecer en su ubicación de origen o que requieren actualizaciones frecuentes desde sistemas externos.
Tablas dinámicas
Las tablas dinámicas son una potente función de Snowflake que mantiene automáticamente actualizados los resultados de una consulta. Actúan como vistas materializadas que se actualizan automáticamente en función de los cambios en las tablas fuente subyacentes. Cuando creas una tabla dinámica, la defines mediante una sentencia SELECT, y Snowflake gestiona automáticamente el proceso de actualización para garantizar que los datos se mantienen actualizados.
Las tablas dinámicas son especialmente útiles para:
Las principales características de las tablas dinámicas son
Cada tipo de tabla tiene una finalidad distinta en la arquitectura de datos. Las tablas permanentes forman la base de tu almacén de datos, las tablas temporales facilitan los flujos de trabajo de procesamiento de datos, las tablas externas permiten la integración con fuentes de datos externas y las tablas dinámicas proporcionan transformaciones de datos automatizadas y en tiempo real.
Comparar tablas de copos de nieve
En la tabla siguiente, hemos resumido los distintos tipos de tablas Snowflake en una guía concisa de referencia rápida:
Tipo de mesa
Persistencia
Visibilidad
Lo mejor para
Permanente
Hasta que caiga
Cualquier sesión
Datos empresariales básicos
Temporal
Sólo para sesión
Misma sesión
Transformaciones intermedias
Externo
Almacenamiento externo
Cualquier sesión
Consulta de datos externos (por ejemplo, S3)
Dinámico
Auto-refrescante
Cualquier sesión
Análisis en tiempo real
Crear tablas: Configurar Snowflake
Antes de ejecutar los ejemplos de este tutorial, necesitarás acceder a un entorno Snowflake. Aquí tienes varias formas de conectarte y ejecutar comandos Snowflake:
1. Interfaz web Snowflake (Snowsight)
La forma más sencilla de empezar es a través de la interfaz web de Snowflake:
2. SnowSQL (herramienta de línea de comandos)
Para acceder a la línea de comandos:
Puedes encontrar las credenciales de tu cuenta Snowflake en los siguientes lugares:
Por seguridad, nunca compartas ni comprometas estas credenciales. Almacénalos de forma segura en variables de entorno o en un archivo de configuración.
3. Conexión Python
Si utilizas Python, puedes utilizar la biblioteca
snowflake-connector-python:Nota de seguridad importante:
Ahora que nuestra configuración está lista, ¡vamos a crear tablas!
Crear tablas en Snowflake: Ejemplos paso a paso
Ejemplo 1: Crear una tabla simple de Copo de Nieve
Vamos a crear una tabla para almacenar la información de los clientes. Este ejemplo muestra la creación de tablas básicas con distintos tipos de datos y restricciones.
Puntos clave de este ejemplo:
CREATE OR REPLACE TABLE- Crea una tabla nueva o la sustituye si ya existePRIMARY KEY- Garantiza la identificación única de cada registroNOT NULL- Evita los valores nulos en los campos obligatoriosUNIQUE- Garantiza que las direcciones de correo electrónico no estén duplicadasTIMESTAMP_NTZ- Marca de tiempo sin zona horariaDEFAULT- Establece automáticamente la marca de tiempo de creaciónEjemplo 2: Crear una tabla temporal
Las tablas temporales son perfectas para el tratamiento intermedio de datos. Aquí tienes un ejemplo que crea una tabla temporal para analizar los pedidos de los clientes:
Puntos clave sobre las tablas temporales:
TEMPORARYindica que esta tabla sólo existirá dentro de la sesión actual. Esto significa que otros usuarios no pueden ver ni acceder a esta tabla.CREATE TABLE AS(CTAS) te permite crear y rellenar una tabla en un solo paso, combinando la definición de la tabla con una sentencia SELECT.Ejemplo 3: Crear una tabla externa en Snowflake
Este ejemplo muestra cómo crear una tabla externa que lea datos de archivos almacenados en un cubo de almacenamiento en la nube:
La primera sentencia define una especificación de formato de archivo que indica a Snowflake cómo analizar archivos CSV externos, incluyendo el delimitador, el manejo de cabeceras y las representaciones de valores NULL.
La segunda sentencia crea un objeto stage que establece una conexión con el almacenamiento externo en la nube (en este caso, S3) utilizando las credenciales proporcionadas. Esta etapa actúa como punto de referencia para acceder a los archivos de datos externos.
La tercera sentencia crea la tabla externa propiamente dicha, utilizando definiciones de columna con cláusulas AS para convertir explícitamente los datos de cadena sin procesar del CSV en tipos de datos Snowflake adecuados. La cláusula WITH LOCATION apunta a la ruta concreta dentro de la etapa donde residen los archivos.
El parámetro PATTERN filtra los archivos que deben incluirse mediante la concordancia regex, garantizando que sólo se procesen los archivos CSV.
Requisitos previos para ejecutar esta consulta de creación de tablas externas:
1. Acceso a una cuenta Snowflake con permisos para:
2. Credenciales válidas de AWS (
AWS_KEY_IDyAWS_SECRET_KEY) con permisos para:3. Requisitos de los datos de origen:
customer_idcomo cadenapurchase_datecomo fechaproduct_idcomo cadenaamountcomo decimal4. Conectividad de red:
5. Recursos informáticos:
Ejemplo 4: Crear una tabla dinámica
Este ejemplo crea una tabla dinámica que mantiene un resumen actualizado de los datos de ventas:
El parámetro
TARGET_LAGde "20 minutos" define el retraso máximo permitido entre las actualizaciones de la tabla de origen y el momento en que esos cambios se reflejan en la tabla dinámica. Esto garantiza la frescura de los datos dentro de ese intervalo de tiempo.El parámetro
WAREHOUSEespecifica qué recursos informáticos (en este casoCOMPUTE_WH) se utilizarán para refrescar periódicamente la tabla dinámica. Este almacén debe tener la capacidad adecuada para gestionar las operaciones de actualización.La tabla dinámica actualiza automáticamente su contenido cuando cambia la tabla
sales_transactionssubyacente, sin necesidad de intervención manual. Esto proporciona capacidades analíticas casi en tiempo real.Al mantener resúmenes de ventas diarias pre-agregados y agrupados por categoría de producto, la tabla dinámica permite una consulta más rápida en comparación con el cálculo de estas métricas bajo demanda a partir de los datos brutos de las transacciones. Esto mejora el rendimiento de las consultas para los casos de uso de informes y análisis.
Cada uno de estos ejemplos muestra distintos escenarios de creación de tablas que puedes encontrar en aplicaciones del mundo real. Recuerda ajustar los nombres de las columnas, los tipos de datos y otros parámetros según tus necesidades específicas.
Buenas prácticas para crear tablas en Snowflake
Exploremos algunas de las mejores prácticas que se deben seguir al crear tablas en Snowflake para garantizar la mantenibilidad, el rendimiento y la calidad de los datos.
1. Convenciones de denominación
Utiliza siempre nombres claros y coherentes para tus tablas y columnas:
Consejos para nombrar:
dev_,test_,prod_)2. Tipos de datos de columna
Elige el tipo de datos adecuado para ahorrar almacenamiento y mejorar el rendimiento:
Tipos de datos habituales:
NUMBER/INTEGER: Para números enterosDECIMAL/NUMERIC: Para números decimales precisos (especialmente dinero)VARCHAR: Para un texto con una longitud máxima conocidaTEXT: Para texto de longitud ilimitadaTIMESTAMP_NTZ: Para fechas y horas (sin zona horaria)BOOLEAN: Para valores verdadero/falso3. Utilizar claves de agrupación
Añade claves de agrupación para mejorar el rendimiento de la consulta:
Cuándo utilizar la agrupación:
4. Añadir restricciones de tabla
Utiliza restricciones para mantener limpios tus datos:
Limitaciones importantes:
PRIMARY KEY: Para identificadores únicosFOREIGN KEY: Para enlazar tablasNOT NULL: Para los campos obligatoriosUNIQUE: Para campos que no pueden tener duplicadosCHECK: Para una simple validación de datos5. Errores comunes que debes evitar
No lo hagas:
Haz esto en su lugar:
La versión mejorada garantiza la integridad de los datos con una clave primaria, utiliza tipos de datos correctos para las fechas y los números a fin de permitir un filtrado y unos cálculos eficaces, y mantiene la coherencia en las definiciones de las columnas para mejorar la legibilidad y la compatibilidad.
6. Consejos de actuación
Optimizar el rendimiento de las tablas en Snowflake puede mejorar significativamente la velocidad de consulta y reducir los costes de almacenamiento. Sigue estas prácticas recomendadas para garantizar que tus tablas sean eficientes y escalables.
7. Buenas prácticas de seguridad
Unas medidas de seguridad adecuadas son esenciales para proteger los datos sensibles y controlar el acceso. Pon en práctica estas buenas prácticas para proteger tu entorno Snowflake de accesos no autorizados y violaciones de datos.
Recuerda: Una mesa bien diseñada facilita tu trabajo posterior. ¡Tómate tu tiempo para planificar la estructura de tu mesa antes de crearla!
Conclusión
En este tutorial, hemos cubierto los aspectos esenciales de la creación de tablas en Snowflake, incluyendo:
Este conocimiento constituye la base para construir soluciones de datos eficientes y escalables en Snowflake.
Próximos pasos
Para profundizar tus conocimientos sobre Snowflake, consulta estos valiosos recursos:
1. Cursos interactivos:
2. Tutorías completas:
3. Recursos profesionales:
No olvides que la mejor forma de aprender es haciendo. Empieza a crear tablas, experimenta con distintos tipos y construye proyectos reales. Cuando te encuentres con dificultades, consulta estos recursos y sigue explorando nuevas funciones de Snowflake.