SELECTSELECT

SELECT

Precios de transferencia de datos en Snowflake y Egress Cost Optimizer

By Jeff SkoldbergOct 21, 20256 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

El modelo de Precios de Snowflake se basa en el consumo y, por lo general, se divide en 3 categorías: Storage, Compute y Cloud Services. ¿Y qué pasa con los cargos por transferencia de datos? Los costos de transferencia de datos entran dentro de "Serverless", que forma parte de Cloud Services. Vamos a los detalles.

Ingress vs Egress: ¿qué se cobra?

El Data Ingress, es decir, cargar datos a Snowflake, siempre es gratis. Por supuesto, pagas por el compute y el storage que se utilicen, pero no pagas costos de transferencia por cargar datos a Snowflake, incluso si es entre regiones. La única salvedad es que tu proveedor cloud podría cobrarte por mover datos entre regiones, pero Snowflake nunca te cobrará por el ingress.

Es en el Data Egress donde aparecen los cargos. Snowflake cobra una tarifa por byte cuando transfieres datos desde una cuenta de Snowflake a una región distinta en la misma plataforma cloud o a una plataforma cloud completamente diferente. En cambio, las transferencias dentro de la misma región son gratis. La Snowflake Pricing Guide incluye los detalles exactos de precios. Aquí tienes una captura recortada para que te hagas una idea:

¿Qué actividades generan costos de transferencia de datos?

Los costos de transferencia de datos se activan cuando mueves datos desde tu cuenta de Snowflake a una región o plataforma cloud distinta. Estas son las operaciones puntuales que generan dichos cargos:

Descarga de datos (Unloading): Usar el comando COPY INTO <location> para descargar datos de Snowflake a un almacenamiento cloud externo (Amazon S3, Google Cloud Storage o Microsoft Azure) en una región o plataforma cloud distinta genera cargos de transferencia.

Replicación de bases de datos: Replicar bases de datos entre regiones o plataformas cloud con fines de disaster recovery o de uso compartido genera costos de transferencia. La replicación inicial y las sincronizaciones posteriores transfieren datos entre regiones.

Cross-Cloud Auto-Fulfillment: Cuando usas auto-fulfillment para compartir listings de datos con consumidores en otras regiones cloud mediante el Snowflake Marketplace, se aplican costos de transferencia.

Funciones externas: Llamar a funciones externas que transfieren datos desde tu cuenta de Snowflake hacia servicios de AWS, Microsoft Azure o Google Cloud genera cargos de egress.

Escrituras de Iceberg entre regiones: Cuando usas Snowflake como catálogo para tablas Iceberg, escribir nuevos datos genera costos de transferencia si la ubicación de storage está en una región o proveedor cloud distinto.

Excepción importante: Recuperar resultados de consultas a través de clientes o drivers de Snowflake NO genera cargos de egress, incluso si los resultados se obtienen entre regiones o plataformas cloud distintas. Esto representa un ahorro significativo en las operaciones de consulta estándar.

¿Cuánto cuesta la transferencia de datos?

Los Precios de transferencia de datos varían bastante según el proveedor cloud y la región de tu cuenta de Snowflake. El detalle completo está en la Credit Consumption Table, pero aquí tienes un panorama general:

Transferencias en la misma región: gratis (sin cargo)

Entre regiones (mismo cloud): por lo general, van desde $20 por TB en regiones de EE. UU. hasta $140 por TB en algunas regiones de Asia-Pacífico.

Cross-Cloud o internet: en general, van de $90 a $155 por TB, según el origen y el destino.

Por ejemplo, transferir desde AWS US East (Northern Virginia) hacia internet cuesta aproximadamente $90 por TB, mientras que la misma operación desde Google Cloud (US East 4) puede ir de $120 a $190 por TB.

Egress Cost Optimizer: un antes y un después para el data sharing

En abril de 2025, Snowflake lanzó el Egress Cost Optimizer (ECO), que puede reducir drásticamente los costos de transferencia de datos para los proveedores que comparten datos entre varias regiones.

ECO usa un algoritmo inteligente para cachear los datos en storage gestionado por Snowflake tras el primer egress, lo que te permite replicar a regiones adicionales sin costos de egress adicionales. Esto puede traducirse en ahorros de hasta el 96% frente a la replicación tradicional entre regiones.

Cómo usar ECO:

Primero, un usuario ORGADMIN debe autorizar ECO a nivel de organización desde Provider Studio. Una vez autorizado, se habilita automáticamente para todas las cuentas de tu organización (aunque cada cuenta puede optar por desactivarlo en la configuración). Tras la activación, ECO emplea enrutamiento inteligente para determinar automáticamente cuándo usar la caché te hará ahorrar dinero. Por ejemplo, no la usará si solo estás replicando a una o dos regiones dentro del mismo proveedor cloud, ya que tus costos ya están optimizados.

Estructura de costos:

  • Solo disponible para Cross-Cloud Auto-Fulfillment (no para replicación manual)
  • $16.896 por TB-mes para datos cacheados
  • Solo se cobra por los días en que la caché se utiliza efectivamente
  • Sin cargo si ECO determina que la caché no te hará ahorrar dinero

Consideraciones sobre el proveedor cloud

Un aspecto que muchas veces pasa desapercibido: aunque Snowflake no cobra por el ingress de datos, tu proveedor de storage cloud de origen sí podría cobrarte cargos de egress al transferir datos hacia Snowflake. Conviene consultar con tu proveedor cloud (Amazon S3, Google Cloud Storage o Microsoft Azure) sus cargos de egress al mover datos hacia tu cuenta de Snowflake.

Monitoreo y optimización de los costos de transferencia de datos

Para que tengas controlado tu gasto en transferencia de datos, Snowflake ofrece varias herramientas:

Dashboard de Snowsight

En Snowsight puedes ver rápidamente los volúmenes y costos de transferencia de datos en rangos de fechas específicos. Ve a Admin → Cost Management → Consumption y filtra por Usage Type = Data Transfer.

Consultar el historial de transferencia de datos a nivel de cuenta

Usa la vista DATA_TRANSFER_HISTORY del esquema ACCOUNT_USAGE para consultar datos detallados de transferencia de tu cuenta durante los últimos 365 días:

-- View data transfer history for the last 30 days
SELECT
    DATE_TRUNC('day', START_TIME) AS transfer_date,
    SOURCE_CLOUD,
    SOURCE_REGION,
    TARGET_CLOUD,
    TARGET_REGION,
    TRANSFER_TYPE,
    SUM(BYTES_TRANSFERRED) / POWER(1024, 4) AS tb_transferred
FROM SNOWFLAKE.ACCOUNT_USAGE.DATA_TRANSFER_HISTORY
WHERE START_TIME >= DATEADD(day, -30, CURRENT_TIMESTAMP())
GROUP BY 1, 2, 3, 4, 5, 6
ORDER BY transfer_date DESC, tb_transferred DESC;

Consultar los costos de transferencia de datos a nivel de organización

Usa la vista DATA_TRANSFER_DAILY_HISTORY del esquema ORGANIZATION_USAGE para tener visibilidad de toda la organización:

SELECT
    USAGE_DATE,
    ACCOUNT_NAME,
    SERVICE_TYPE,
    REGION,
    TB_TRANSFERED,
    ACCOUNT_LOCATOR
FROM SNOWFLAKE.ORGANIZATION_USAGE.DATA_TRANSFER_DAILY_HISTORY
WHERE USAGE_DATE >= DATEADD(day, -30, CURRENT_DATE())
ORDER BY USAGE_DATE DESC, TB_TRANSFERED DESC;

Buenas prácticas

  1. Mantén las transferencias dentro de la misma región siempre que sea posible para evitar cualquier cargo de transferencia.
  2. Opta por data sharing en lugar de replicación para evitar costos de transferencia: la funcionalidad nativa de data sharing de Snowflake te permite compartir datos con otras cuentas de Snowflake sin copiarlos físicamente. Con data sharing, el consumidor consulta los datos directamente desde el storage del proveedor (sin movimiento de datos), por lo que no hay cargos de transferencia ni siquiera al compartir entre regiones. La replicación, en cambio, crea una copia completa de la base de datos y genera costos de transferencia al cruzar regiones.
  3. Activa el Egress Cost Optimizer si replicas datos a varias regiones; podrías ahorrar un 90%.
  4. Programa con cuidado las descargas masivas de datos y evalúa si realmente hay que mover todos los datos.
  5. Monitorea tus patrones de transferencia con regularidad usando las herramientas de monitoreo de costos de Snowflake.
  6. Comprime los datos antes de descargarlos para reducir el volumen transferido.

Mitos sobre la transferencia de datos

He hablado con varias personas que creían que mostrar datos en una herramienta de BI o en una aplicación de Python genera cargos por transferencia de datos. Esto simplemente no es cierto. Las consultas SELECT normales nunca generan cargos por transferencia, aunque uses una herramienta fuera del ecosistema de Snowflake.

Cierre

Entender los costos de transferencia de datos es clave para gestionar tu gasto total en Snowflake. Aunque storage y compute suelen llevarse la mayor atención, los cargos por transferencia de datos pueden acumularse rápido, sobre todo en organizaciones que operan en varias regiones o plataformas cloud, o que mueven datos desde Snowflake hacia otras aplicaciones orientadas a datos.

Jeff es Data and Analytics Consultant con más de 15 años de experiencia automatizando insights y usando datos para controlar procesos de negocio. En lo tecnológico, se especializa en Snowflake + dbt + Tableau. En cuanto a verticales, tiene experiencia en Public Utility, Clinical Trials, Publishing, CPG y Manufacturing. Escríbele cuando quieras: [email protected].