Precios de BigQuery

Para conocer los precios de BigQuery, consulta esta página.

Para conocer los precios de BigQuery ML, consulta la página Precios de BigQuery ML.

Para conocer los precios del Servicio de transferencia de datos de BigQuery, consulta la página Precios del Servicio de transferencia de datos de BigQuery.

Descripción general

BigQuery ofrece opciones de precios escalables y flexibles para satisfacer tus necesidades técnicas y tu presupuesto.

Los costos de almacenamiento se basan en la cantidad de datos almacenados en BigQuery. Los cargos de almacenamiento se dividen en dos categorías:

  • Activo: un cargo mensual por los datos almacenados en tablas o particiones que hayas modificado en los últimos 90 días.
  • A largo plazo: un cargo mensual menor por los datos almacenados en tablas o particiones que no se hayan modificado en los últimos 90 días.

Para los costos de las consultas, puedes elegir entre los dos modelos de precios a continuación:

  • Según demanda: Esta es la opción más flexible. Los precios según demanda se basan en la cantidad de datos procesados por cada consulta que ejecutas.
  • Tasa fija: Esta opción de precios predecible resulta más apropiada para clientes con presupuestos fijos. Los clientes de tasa fija adquieren recursos exclusivos para el procesamiento de consultas, y no se les cobran las consultas individuales.

Para obtener más información sobre los precios del almacenamiento y las consultas, revisa los códigos SKU de Google Cloud Platform. Ten en cuenta que los precios de las consultas según demanda figuran como "precios de análisis" en la página de SKU.

Resumen de precios

La siguiente tabla resume los precios de BigQuery. Las cuotas y los límites de BigQuery se aplican a estas operaciones.

EE.UU. (multi-region) UE (multi-region) Los Ángeles (us-west2) Montreal (northamerica-northeast1) Virginia del Norte (us-east4) São Paulo (southamerica-east1) Finlandia (europe-north1) Londres (europe-west2) Zúrich (europe-west6) Hong Kong (asia-east2) Bombay (asia-south1) Taiwán (asia-east1) Tokio (asia-northeast1) Singapur (asia-southeast1) Sídney (australia-southeast1)
Por mes
Operación Precio Detalles
Almacenamiento activo Los primeros 10 GB son gratuitos todos los meses. Consulta los precios de almacenamiento para obtener más información.
Almacenamiento a largo plazo Los primeros 10 GB son gratuitos todos los meses. Consulta los precios de almacenamiento para obtener más información.
API de BigQuery Storage La API de BigQuery Storage no está incluida en el nivel gratuito.
Inserciones de transmisión Se cobra por cada fila que se inserte correctamente. Cada fila se calcula con un tamaño mínimo de 1 KB. Consulta los precios de transmisión para obtener más información.
Consultas (según demanda) El primer TB de cada mes es gratuito. Consulta los precios según demanda para obtener detalles.
Consultas (tasa fija mensual) Puedes comprar ranuras adicionales en incrementos de 500 ranuras. Para obtener detalles, revisa los precios de tasa fija mensual.
Consultas (tasa fija anual) Puedes comprar ranuras adicionales en incrementos de 500 ranuras. Se te facturará mensualmente. Para obtener detalles, consulta los precios de tasa fija anual.

Si pagas en una moneda distinta del dólar estadounidense, se aplican los precios que aparecen en tu moneda en los SKU de Cloud Platform.

Cómo se facturan los cargos

Cada proyecto que creas tiene una cuenta de facturación adjunta. Todos los cargos en los que incurras por los trabajos de BigQuery ejecutados en el proyecto (p. ej., una consulta) se incluyen en la cuenta de facturación adjunta. Esto se aplica incluso si el proyecto se comparte con terceros fuera de tu organización. Los costos de almacenamiento de BigQuery también se incluyen en la cuenta de facturación adjunta.

Cómo analizar los datos de facturación

Para ver los costos y las tendencias de BigQuery, puedes usar la página de informes de Cloud Billing en GCP Console. Para obtener información sobre el análisis de datos de facturación utilizando los informes, consulta Consulta tus tendencias de costo con los informes de Billing.

Para obtener información sobre el análisis de datos de facturación en BigQuery, consulta Exporta datos de facturación a BigQuery en la Documentación de Cloud Billing.

Operaciones gratuitas

En la siguiente tabla, se muestran las operaciones de BigQuery que pueden realizarse sin costo en cualquier ubicación. Las cuotas y los límites de BigQuery se aplican a estas operaciones.

Operación Detalles
Cargar datos

Cuando cargas datos en BigQuery desde Cloud Storage, no se cobra la operación en sí, pero se generan cargos por el almacenamiento de los datos en Cloud Storage. Consulta Almacenamiento de datos en la página de precios de Cloud Storage para ver los detalles. Una vez cargados los datos en BigQuery, quedan sujetos a los precios de almacenamiento de la plataforma. Para obtener más información, consulta Carga datos en BigQuery.

Cuando creas un conjunto de datos en BigQuery, debes seleccionar una ubicación para guardarlo. Si eliges US, puedes cargar datos en tablas del conjunto de datos desde un depósito de Cloud Storage ubicado en cualquier otra región. Actualmente, si cargas datos desde otra región en un conjunto de datos de EE.UU., no se generan cargos de salida a Internet.

Si eliges una ubicación distinta de US, debes realizar una de las siguientes operaciones:

  • Cargar datos desde un depósito de Cloud Storage en la región seleccionada (este depósito puede ser multirregional o regional, siempre que se encuentre en la misma región que el conjunto de datos)
  • Copiar los datos en un depósito en la región seleccionada

Cuando copias datos de una región de Cloud Storage a otra, se aplican los precios de red de Cloud Storage.

Copiar datos No se cobra por copiar una tabla, pero se generan cargos por el almacenamiento de la tabla nueva y la tabla original. Para obtener más información, consulta Cómo copiar una tabla existente.
Exportar datos Cuando exportas datos de BigQuery a Cloud Storage, no se cobra la operación en sí, pero se generan cargos por el almacenamiento de datos en Cloud Storage. Consulta Almacenamiento de datos en la página de precios de Cloud Storage para ver los detalles. Para obtener más información, consulta Exporta datos de BigQuery.
Borrar conjuntos de datos No se cobra por borrar un conjunto de datos.
Borrar tablas, vistas y particiones No se cobra por borrar tablas, vistas ni particiones de tablas individuales.
Operaciones con metadatos No se cobra por las llamadas de list, get, patch, update o delete. Algunos ejemplos de las operaciones que no se cobran son mostrar conjuntos de datos, actualizar la lista de control de acceso de un conjunto de datos y actualizar la descripción de una tabla.
Leer pseudocolumnas No se cobra por consultar el contenido de las siguientes pseudocolumnas:

_TABLE_SUFFIX: Se usa para consultar tablas comodín o conseguir la semántica de decoradores de tablas en SQL estándar.
_PARTITIONDATE: Se usa para consultar las tablas particionadas por tiempo de transferencia.
_PARTITIONTIME: Se usa para consultar las tablas particionadas por tiempo de transferencia.
_FILE_NAME: Se usa para consultar las tablas basadas en fuentes de datos externas.
Leer metatablas No se cobra por consultar el contenido de las siguientes metatablas:

__PARTITIONS_SUMMARY__: Se usa para obtener metadatos sobre las particiones de una tabla particionada o una tabla particionada por tiempo de transferencia
__TABLES_SUMMARY__: Se usa para obtener metadatos sobre las tablas y vistas de un conjunto de datos

Límites de uso Siempre gratuito

Como parte del Nivel gratuito de Google Cloud Platform, BigQuery ofrece recursos sin cargo hasta que alcances un límite específico. Estos límites de uso sin cargo están disponibles durante el período de prueba y después de este. Si excedes los límites de uso una vez finalizado el período de prueba gratuita, se aplicarán cargos conforme a los precios que se indican en esta página.

Recurso Límites de uso gratuito mensual Detalles
Almacenamiento Los primeros 10 GB por mes son gratis. El nivel de almacenamiento gratuito incluye los modelos de BigQuery ML y los datos de entrenamiento almacenados en BigQuery.
Consultas (análisis) El primer TB de datos de consultas que se procesan por mes es gratis. El nivel de análisis gratuito incluye las consultas que usan las funciones de predicción, inspección y evaluación de BigQuery ML. No se incluyen las consultas de BigQuery ML que incluyen instrucciones CREATE MODEL.
También ofrecemos precios de tasa fija para los clientes de alto volumen que prefieren un costo mensual estable.
Consultas CREATE MODEL de BigQuery ML Los primeros 10 GB de datos procesados mediante consultas que incluyen instrucciones CREATE MODEL por mes son gratis. Las consultas CREATE MODEL de BigQuery ML son independientes del nivel de análisis gratuito de BigQuery.

Precios de consulta

Los precios de consulta se refieren al costo de ejecutar comandos de SQL y funciones definidas por el usuario, así como declaraciones de lenguaje de manipulación de datos (DML) y lenguaje de definición de datos (DDL) que califican.

BigQuery te permite elegir entre dos modelos de precios:

  • Precios según demanda es un modelo flexible y eficiente. Solo pagas por las consultas que ejecutas.
  • Precios de tasa fija es un modelo con costos predecibles y uniformes todos los meses.

De forma predeterminada, se te cobra de acuerdo con el modelo de precios según demanda. Puedes elegir un modelo de precios que satisfaga tus necesidades. Además, puedes combinar los dos modelos para cada proyecto y cada ubicación.

Precios según demanda

En el caso de los precios según demanda, BigQuery usa una métrica para el cobro de las consultas: la cantidad de bytes que se procesan (también denominada "bytes leídos"). Se te cobra por la cantidad de bytes procesados, sin importar si los datos se almacenan en BigQuery o en una fuente de datos externa, como Cloud Storage, Google Drive o Cloud Bigtable. Los precios según demanda dependen exclusivamente del uso.

Los precios de consultas según demanda funcionan de la siguiente manera:

EE.UU. (multi-region) UE (multi-region) Los Ángeles (us-west2) Montreal (northamerica-northeast1) Virginia del Norte (us-east4) São Paulo (southamerica-east1) Finlandia (europe-north1) Londres (europe-west2) Zúrich (europe-west6) Hong Kong (asia-east2) Bombay (asia-south1) Taiwán (asia-east1) Tokio (asia-northeast1) Singapur (asia-southeast1) Sídney (australia-southeast1)
Por mes
Operación Precio Detalles
Consultas (según demanda) El primer terabyte (1 TB) por mes es gratis. También ofrecemos precios de tarifa plana para los clientes de alto volumen que prefieren un costo mensual estable.

Si pagas en una moneda distinta del dólar estadounidense, se aplican los precios que aparecen en tu moneda en los SKU de Cloud Platform.

Ten en cuenta las siguientes consideraciones en relación con los cargos por consultas:

  • BigQuery usa una estructura de datos de columnas. Se cobra según el total de datos procesados en las columnas que selecciones, y el total de datos por columna se calcula según los tipos de datos de cada columna. Para obtener más información sobre cómo se calcula el tamaño de tus datos, consulta el cálculo de tamaño de los datos.
  • No se cobrará por las consultas que muestren un error ni por las que recuperan resultados de la caché.
  • Los cargos se redondean al MB más cercano, con un mínimo de 10 MB de datos procesados por la tabla a la que haga referencia la consulta y con un mínimo de 10 MB de datos procesados por consulta.
  • Cancelar un trabajo de consulta en ejecución puede generar cargos de hasta el costo completo de la consulta si esta se ejecuta hasta completarse.
  • Cuando ejecutas una consulta, se cobra según los datos procesados en las columnas que selecciones, incluso si configuras un LIMIT explícito en los resultados.
  • Particionar las tablas o agruparlas en clústeres puede ayudar a reducir la cantidad de datos que se procesan en las consultas. Se recomienda que uses particiones y clústeres siempre que puedas.
  • Los precios de consultas según demanda se refieren a precios de análisis en la página de SKU de Google Cloud Platform.

Controles de costos de las consultas según demanda

BigQuery ofrece mecanismos de control de costos que te permiten limitar los costos de las consultas. Tienes las siguientes opciones:

Precios de tasa fija

BigQuery ofrece precios de tasa fija para los clientes empresariales o que prefieren un costo mensual estable para las consultas en lugar de pagar el precio según demanda por TB de datos procesados.

Cuando te inscribes en un plan de precios de tasa fija, adquieres una capacidad de procesamiento específica de consultas que se mide en ranuras de BigQuery. El costo de todos los bytes procesados se incluye en el precio de tasa fija mensual. Si tus consultas superan la capacidad de la tasa fija, estas se colocan en cola hasta que los recursos de tasa fija estén disponibles.

Precios de tasa fija:

  • Se aplican a los costos de consultas, incluidas las declaraciones DML y DDL.
  • No se aplican a los costos de almacenamiento. Consulta Precios de almacenamiento para obtener detalles sobre los costos de almacenamiento.
  • Se adquieren como un recurso regional. La capacidad de tasa fija que se adquiere en una región no se puede usar en otra.
  • Permite que los clientes aumenten sus cuotas de simultaneidad por proyecto con solo comunicarse con asistencia de Google Cloud Platform.
  • Está disponible en compromisos mensuales y anuales.

Detalles de los planes de precios de tasa fija

Cuando te inscribes en un plan de precios de tasa fija, se incluyen las siguientes condiciones:

  • Los compromisos mensuales no se pueden cancelar ni pasar a un plan menor durante 30 días corridos a partir de la fecha de confirmación de la compra.

    Después de los primeros 30 días corridos, puedes cancelar o pasar a un plan menor cuando lo desees. Si cancelas el plan o pasas a uno menor, los cargos se prorratean por segundo a la tasa mensual.

    Por ejemplo:

    • No puedes cancelar el día 29.
    • Si cancelas durante el primer segundo del día 31, se cobra por 30 días y 1 segundo.
    • Si cancelas a mitad del tercer mes, se cobra el 50% de tu tasa mensual por ese mes.
  • Los compromisos anuales no se pueden cancelar ni pasar a un plan menor durante un año calendario.

    Antes de que se cumpla un año de la fecha del compromiso, puedes elegir renovar por otro año o puedes pasar al plan de tasa fija mensual a partir de fin de año. Si te cambias al plan de tasa fija mensual, puedes cancelar en cualquier momento y se te cobra por segundo a la tasa mensual.

    Por ejemplo:

    • Si renuevas por otro año después de la fecha de tu compromiso anual, tienes un compromiso anual nuevo, y se te sigue cobrando a la tasa del compromiso anual.
    • Si no renuevas por otro año después de la fecha del compromiso anual, puedes cancelar cuando lo desees, y el cobro se prorratea por segundo a la tasa mensual.
  • Para adquirir ranuras de BigQuery adicionales, debes celebrar un compromiso nuevo.

  • El plan de precios de tasa fija se adquiere para una ubicación específica de BigQuery
    Cuando adquieres un plan de tasa fija, debes especificar la asignación de ranuras por ubicación. Para usar ranuras en varias ubicaciones, debes adquirir ranuras en cada ubicación.
  • Los planes de precios según demanda y de tasa fija se pueden usar en conjunto
    Un proyecto puede usar tanto un plan de precios de tasa fija como uno según demanda. Si tienes varios proyectos en una ubicación determinada, puedes elegir qué proyectos usan el plan de precios de tasa fija y cuáles usan el plan de precios según demanda.
  • Para descontinuar un plan de precios de tasa fija, debes cancelar tu compromiso o pasar a uno menor.

Plan de precios de tasa fija mensual

Cuando te inscribes en un plan de precios de tasa fija, la capacidad que adquieres se mide en ranuras de BigQuery. En la siguiente tabla, se muestra la cantidad de ranuras que se te asignan en función del plan de tasa fija que adquiriste.

EE.UU. (multi-region) UE (multi-region) Los Ángeles (us-west2) Montreal (northamerica-northeast1) Virginia del Norte (us-east4) São Paulo (southamerica-east1) Finlandia (europe-north1) Londres (europe-west2) Zúrich (europe-west6) Hong Kong (asia-east2) Bombay (asia-south1) Taiwán (asia-east1) Tokio (asia-northeast1) Singapur (asia-southeast1) Sídney (australia-southeast1)
Por mes
Costo mensual Cantidad de ranuras
500

Si pagas en una moneda distinta del dólar estadounidense, se aplican los precios que aparecen en tu moneda en los SKU de Cloud Platform.

Plan de precios de tasa fija anual

Cuando te inscribes en un plan de precios de tasa fija, la capacidad que adquieres se mide en ranuras de BigQuery. En la siguiente tabla, se muestra la cantidad de ranuras que se te asignan en función del plan de tasa fija anual que adquiriste. Cuando te inscribes en un plan de tasa fija anual, se te cobra mensualmente.

EE.UU. (multi-region) UE (multi-region) Los Ángeles (us-west2) Montreal (northamerica-northeast1) Virginia del Norte (us-east4) São Paulo (southamerica-east1) Finlandia (europe-north1) Londres (europe-west2) Zúrich (europe-west6) Hong Kong (asia-east2) Bombay (asia-south1) Taiwán (asia-east1) Tokio (asia-northeast1) Singapur (asia-southeast1) Sídney (australia-southeast1)
Por mes
Costo mensual Cantidad de ranuras
500

Si pagas en una moneda distinta del dólar estadounidense, se aplican los precios que aparecen en tu moneda en los SKU de Cloud Platform.

La compra de ranuras mediante compromisos mensuales y anuales se encuentra en etapa Alfa actualmente. Para participar en esta etapa, completa este formulario.

No hay cambios para los clientes que prefieren continuar con su plan de tasa fija existente. Para continuar con tu plan de tasa fija existente, consulta a tu representante de ventas.

Precios de almacenamiento

Una vez cargados los datos en BigQuery, se cobra el almacenamiento. Los precios del almacenamiento dependen de la cantidad de datos en tus tablas sin comprimir.

El tamaño de los datos se calcula según los tipos de datos de cada columna. Para obtener una explicación detallada de cómo se calcula el tamaño de los datos, consulta Cálculo del tamaño de los datos.

Almacenamiento activo

Los cargos del almacenamiento activo se calculan de la siguiente manera:

EE.UU. (multi-region) UE (multi-region) Los Ángeles (us-west2) Montreal (northamerica-northeast1) Virginia del Norte (us-east4) São Paulo (southamerica-east1) Finlandia (europe-north1) Londres (europe-west2) Zúrich (europe-west6) Hong Kong (asia-east2) Bombay (asia-south1) Taiwán (asia-east1) Tokio (asia-northeast1) Singapur (asia-southeast1) Sídney (australia-southeast1)
Por mes
Tipo de almacenamiento Precio Detalles
Almacenamiento activo Los primeros 10 GB son gratuitos todos los meses.

Si pagas en una moneda distinta del dólar estadounidense, se aplican los precios que aparecen en tu moneda en los SKU de Cloud Platform.

Los precios de almacenamiento se prorratean por MB, por segundo. Por ejemplo, si almacenas:

  • 100 MB por medio mes, pagas $0.001 (un décimo de centavo)
  • 500 GB por medio mes, pagas $5
  • 1 TB por un mes completo, pagas $20

Almacenamiento a largo plazo

Si una tabla no se edita por 90 días consecutivos, el precio de almacenamiento disminuye automáticamente un 50%. No disminuyen el rendimiento, la durabilidad, la disponibilidad ni otras funciones cuando una tabla se considera como almacenamiento a largo plazo.

Los precios del almacenamiento a largo plazo se calculan de la siguiente manera:

EE.UU. (multi-region) UE (multi-region) Los Ángeles (us-west2) Montreal (northamerica-northeast1) Virginia del Norte (us-east4) São Paulo (southamerica-east1) Finlandia (europe-north1) Londres (europe-west2) Zúrich (europe-west6) Hong Kong (asia-east2) Bombay (asia-south1) Taiwán (asia-east1) Tokio (asia-northeast1) Singapur (asia-southeast1) Sídney (australia-southeast1)
Por mes
Tipo de almacenamiento Precio Detalles
Almacenamiento a largo plazo Los primeros 10 GB son gratuitos todos los meses.

Si la tabla se edita, el precio vuelve a ser el de almacenamiento común y el contador de 90 días vuelve a comenzar desde cero. Cualquier operación que modifique los datos de una tabla restablece el contador. Estos son algunos ejemplos:

Acción Detalles
Cargar datos en una tabla Cualquier trabajo de carga o consulta que agregue datos a una tabla de destino o la sobrescriba.
Copiar datos en una tabla Cualquier trabajo de copia que agregue datos a una tabla de destino o la sobrescriba.
Escribir los resultados de una consulta en una tabla Cualquier trabajo de consulta que agregue datos a una tabla de destino o la sobrescriba.
Usar el lenguaje de manipulación de datos (DML) Usar una declaración de DML para modificar los datos.
Usar lenguaje de definición de datos (DDL) Usar una instrucción de DDL “CREATE OR REPLACE TABLE” para reemplazar una tabla.
Transmitir datos a la tabla Transferir datos mediante la llamada a la API tabledata.insertAll.

Todas las otras acciones no reinician el contador, incluidas las siguientes:

  • Consultar una tabla
  • Crear una vista que consulte una tabla
  • Exportar datos de una tabla
  • Copiar una tabla (para pegar los datos en otra)
  • Aplicar parches a un recurso de tabla o actualizarlo

Cada partición de una tabla particionada se considera por separado para los precios de almacenamiento a largo plazo. Si una partición no se modificó en los últimos 90 días, los datos de esa partición se consideran como almacenamiento a largo plazo y se cobran según los precios con descuento.

En el caso de las tablas que alcanzan el umbral de 90 días durante un ciclo de facturación, se prorratea el precio según corresponda.

Los precios del almacenamiento a largo plazo se aplican solo al almacenamiento de BigQuery, no a los datos almacenados en fuentes de datos externas, como Cloud Bigtable, Cloud Storage y Google Drive.

Precios de la API de BigQuery Storage

Los precios de la API de BigQuery Storage se basan en los datos asignados a una transmisión durante las operaciones de transmisión ReadRows. Los costos están basados en el tamaño de los datos entrantes y no en los bytes transmitidos.

El tamaño de los datos se calcula según los tipos de datos de cada columna. Para obtener una explicación detallada de cómo se calcula el tamaño de los datos, consulta Cálculo del tamaño de los datos.

Precios según demanda

Los cargos de la API de BigQuery Storage según demanda se calculan de la siguiente manera:

EE.UU. (multi-region) UE (multi-region) Los Ángeles (us-west2) Montreal (northamerica-northeast1) Virginia del Norte (us-east4) São Paulo (southamerica-east1) Finlandia (europe-north1) Londres (europe-west2) Zúrich (europe-west6) Hong Kong (asia-east2) Bombay (asia-south1) Taiwán (asia-east1) Tokio (asia-northeast1) Singapur (asia-southeast1) Sídney (australia-southeast1)
Por mes
Precios Detalles
La API de BigQuery Storage no está incluida en el nivel gratuito.

Si pagas en una moneda distinta del dólar estadounidense, se aplican los precios que aparecen en tu moneda en los SKU de Cloud Platform.

Precios de tasa fija

En la actualidad, los clientes que pagan precios de tasa fija pueden usar la API de BigQuery Storage para realizar operaciones de lectura de hasta 300 TB de datos por mes sin cargo. Las operaciones de lectura que excedan los 300 TB por mes se facturan con la tarifa según demanda.

Cálculo del tamaño de los datos

Cuando cargas datos a BigQuery o los consultas, se cobra según el tamaño de los datos. El tamaño de los datos se calcula en función del tamaño del tipo de datos de cada columna.

El tamaño de tus datos almacenados y el tamaño de los datos que se procesen en tus consultas se calculan en gigabytes (GB), con la equivalencia 1 GB = 230 bytes. Esta unidad de medida también se conoce como gibibyte (GiB). De manera similar, 1 TB equivale a 240 bytes (1,024 GB).

El tamaño de los tipos de datos de BigQuery se calcula de la siguiente manera:

Tipo de datos Tamaño
INT64/INTEGER 8 bytes
FLOAT64/FLOAT 8 bytes
NUMERIC 16 bytes
BOOL/BOOLEAN 1 byte
STRING 2 bytes + el tamaño de la string con codificación UTF-8
BYTES 2 bytes + el tamaño de la string con codificación UTF-8
DATE 8 bytes
DATETIME 8 bytes
TIME 8 bytes
TIMESTAMP 8 bytes
STRUCT/RECORD 0 bytes + el tamaño de los campos incluidos
GEOGRAPHY 16 bytes + 24 bytes x la cantidad de vértices del tipo de geografía (puedes verificar este valor con la función ST_NumPoints)

Los valores nulos para cualquier tipo de datos se calculan como 0 bytes.

Una columna repetida se almacena como arreglo y el tamaño se calcula en función de la cantidad de valores. Por ejemplo, una columna con números enteros (INT64) que se repite (ARRAY<INT64>) y contiene 4 entradas equivale a 32 bytes (4 entradas x 8 bytes).

Precios de transmisión

Cargar datos en BigQuery es gratuito, excepto por un pequeño costo por los datos transmitidos.

Los precios de los datos transmitidos se calculan de la siguiente manera:

EE.UU. (multi-region) UE (multi-region) Los Ángeles (us-west2) Montreal (northamerica-northeast1) Virginia del Norte (us-east4) São Paulo (southamerica-east1) Finlandia (europe-north1) Londres (europe-west2) Zúrich (europe-west6) Hong Kong (asia-east2) Bombay (asia-south1) Taiwán (asia-east1) Tokio (asia-northeast1) Singapur (asia-southeast1) Sídney (australia-southeast1)
Por mes
Operación Precio Detalles
Inserciones de transmisión Se cobra por cada fila que se inserte correctamente. Cada fila se calcula con un tamaño mínimo de 1 KB.

Precios del lenguaje de manipulación de datos

BigQuery cobra por las consultas DML en función de la cantidad de bytes procesados por cada consulta.

Precios de DML que no pertenecen a tablas particionadas

En las tablas sin partición, la cantidad de bytes procesados se calcula de la siguiente manera:

Declaración DML Bytes procesados
INSERT La suma de bytes procesados en todas las columnas a las que se hace referencia en las tablas que se analizaron para la consulta
UPDATE La suma de bytes en todas las columnas a las que se hace referencia en las tablas que se analizaron para la consulta
más la suma de bytes en todas las columnas de la tabla actualizada en el momento en que comienza el evento UPDATE
DELETE La suma de bytes en todas las columnas a las que se hace referencia en las tablas que se analizaron para la consulta
más la suma de bytes en todas las columnas de la tabla modificada en el momento en que comienza el evento DELETE
MERGE Si la declaración MERGE solo contiene cláusulas INSERT, se cobra la suma de bytes procesados en todas las columnas a las que se hace referencia en todas las tablas que se analizaron para la consulta
Si la declaración MERGE contiene cláusulas UPDATE o DELETE, se cobra la suma de bytes procesados en todas las columnas a las que se hace referencia en las tablas fuente que se analizaron para la consulta
más la suma de bytes en todas las columnas de la tabla meta (en el momento en que comienza el evento MERGE)

Precios de DML que pertenecen a tablas particionadas

En el caso de las tablas sin partición, la cantidad de bytes procesados se calcula de la siguiente manera:

Declaración DML Bytes procesados
INSERT La suma de bytes procesados en todas las columnas a las que se hace referencia en todas las particiones que se analizaron para la consulta
UPDATE La suma de bytes procesados en todas las columnas a las que se hace referencia en todas las particiones de las tablas que se analizaron para la consulta
más la suma de bytes en todas las columnas de las particiones que se actualizaron o analizaron en la tabla en proceso de actualización (en el momento en que comienza el evento UPDATE)
DELETE La suma de bytes procesados en todas las columnas a las que se hace referencia en todas las particiones de las tablas que se analizaron para la consulta
más la suma de bytes en todas las columnas de las particiones que se modificaron o analizaron en la tabla en proceso de modificación (en el momento en que comienza el evento DELETE)
MERGE Si la declaración MERGE solo contiene cláusulas INSERT, se cobra la suma de bytes procesados en todas las columnas a las que se hace referencia en todas las particiones que se analizaron para la consulta
Si la declaración UPDATE contiene cláusulas DELETE o MERGE, se cobra la suma de bytes procesados en todas las columnas a las que se hace referencia en las particiones de las tablas fuente que se analizaron para la consulta
más la suma de bytes en todas las columnas de las particiones que se actualizaron, borraron o analizaron en la tabla meta (en el momento en que comienza el evento MERGE)

Precios del lenguaje de definición de datos

BigQuery cobra por las consultas DDL en función de la cantidad de bytes que procesa cada una de ellas. En las instrucciones de DDL, la cantidad de bytes procesados se calcula de la siguiente manera:

Declaración de DDL Bytes procesados
CREATE TABLE Ninguno
CREATE TABLE ... AS SELECT ... La suma de bytes procesados en todas las columnas a las que se hace referencia en las tablas que se analizaron para la consulta.
CREATE VIEW Ninguno
DROP TABLE Ninguno
DROP VIEW Ninguno

Precios de las tablas agrupadas

Cuando creas y usas tablas agrupadas en BigQuery, el cobro se basa en la cantidad de datos almacenados en las tablas y de consultas que ejecutas en ellos. Las tablas agrupadas reducen los datos para que no los procesen las consultas, lo que te permite disminuir este tipo de gastos. Este proceso se conoce como reducción de bloques.

Reducción de bloques

BigQuery ordena los datos en una tabla agrupada según los valores de las columnas de agrupamiento y, luego, los organiza en bloques.

Cuando envías una consulta con un filtro en una columna agrupada, BigQuery usa la información de agrupamiento para determinar de manera eficiente si el bloque contiene datos pertinentes a la consulta. Esto permite que BigQuery solo analice los bloques relevantes, proceso conocido como reducción de bloques.

El precio de las consultas se basa en la cantidad de bytes procesados. Cuando ejecutas una consulta en una tabla agrupada y la consulta tiene un filtro en las columnas agrupadas, BigQuery usa la expresión para filtrar y los metadatos del bloque a fin de reducir la cantidad de bloques que analiza la consulta.

Cuando se reduce un bloque, no se analiza. Para calcular los bytes de datos que procesó la consulta, solo se usan los bloques analizados. La cantidad de bytes que procesó una consulta en una tabla agrupada equivale a la suma de los bytes que se leyeron en cada columna a la que hizo referencia la consulta en los bloques analizados.

Si se hace referencia varias veces a una tabla agrupada en una consulta que usa muchos filtros, BigQuery cobra por el análisis de las columnas en los bloques apropiados de cada filtro respectivo.

Ejemplos de precios en BigQuery

Cómo estimar los costos de las consultas

Para ver algunos ejemplos de precios de consultas, revisa Cómo estimar los costos de las consultas.

Cómo estimar los costos del almacenamiento

Para ver algunos ejemplos de precios de almacenamiento, revisa Cómo estimar los costos del almacenamiento.

Ejemplos de precios de DML para tablas sin partición

Los ejemplos que se detallan a continuación demuestran cómo se calculan los bytes leídos para generar las declaraciones DML que modifican tablas sin partición en BigQuery.

Ejemplo 1: ACTUALIZACIÓN de tabla sin partición

table1 tiene dos columnas: col1 de tipo INTEGER y col2 de tipo STRING.

UPDATE table1 SET col1 = 1 WHERE col1 = 2;

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en col1
  • La suma de la cantidad de bytes en col2

Ejemplo 2: ACTUALIZACIÓN de tabla sin partición

table1 tiene dos columnas: col1 de tipo INTEGER y col2 de tipo STRING. table2 tiene una columna: field1 de tipo INTEGER.

UPDATE table1 SET col1 = 1 WHERE col1 in (SELECT field1 from table2)

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en table1.col1 antes del evento UPDATE
  • La suma de la cantidad de bytes en table1.col2 antes del evento UPDATE
  • La suma de la cantidad de bytes en table2.field1

Ejemplos de precios de DML para tablas particionadas

Los ejemplos que se detallan a continuación demuestran cómo se calculan los bytes leídos para generar las declaraciones DML que modifican el tiempo de transferencia y las tablas particionadas en BigQuery. Para ver las representaciones esquemáticas JSON de las tablas usadas en los ejemplos, consulta las tablas usadas en los ejemplos en la página donde se explica cómo actualizar los datos de tablas particionadas mediante declaraciones DML.

Ejemplo 1: INSERCIÓN de tablas particionadas y tiempo de transferencia

mytable2 tiene dos columnas: id de tipo INTEGER y ts de tipo TIMESTAMP. mytable tiene dos columnas: field1 de tipo INTEGER y field2 de tipo STRING.

INSERT INTO mytable (_PARTITIONTIME, field1) AS SELECT TIMESTAMP(DATE(ts)), id from mytable2

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en mytable2.ts
  • La suma de la cantidad de bytes en mytable2.id

El tamaño de la tabla en la que se insertan las filas (mytable) no afecta el costo de la consulta.

Ejemplo 2: INSERCIÓN de tablas particionadas

mytable2 tiene dos columnas: id de tipo INTEGER y ts de tipo TIMESTAMP. mycolumntable tiene cuatro columnas: field1 de tipo INTEGER, field2 de tipo STRING, field3 de tipo BOOLEAN y ts de tipo TIMESTAMP.

INSERT INTO mycolumntable (ts, field1) AS SELECT ts, id from mytable2

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en mytable2.ts
  • La suma de la cantidad de bytes en mytable2.id

El tamaño de la tabla en la que se insertan las filas (mycolumntable) no afecta el costo de la consulta.

Ejemplo 3: ACTUALIZACIÓN de tablas particionadas y tiempo de transferencia

Declaración DML 1: Cómo actualizar una partición única

mytable2 tiene dos columnas: id de tipo INTEGER y ts de tipo TIMESTAMP. mytable tiene dos columnas: field1 de tipo INTEGER y field2 de tipo STRING.

UPDATE project.mydataset.mytable T SET T.field1 = T.field1 + 100 WHERE T._PARTITIONTIME = TIMESTAMP(“2017-05-01”) AND EXISTS (SELECT S.id from project.mydataset.mytable2 S WHERE S.id = T.field1)

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en mytable2.id
  • La suma de la cantidad de bytes en mytable.field1 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mytable.field2 en la partición “2017-05-01”

Declaración DML 2: Cómo actualizar una partición a partir de otra en una tabla

UPDATE project.mydataset.mytable T SET T._PARTITIONTIME = TIMESTAMP(“2017-06-01”), T.field1 = T.field1 + 100 WHERE T._PARTITIONTIME = TIMESTAMP(“2017-05-01”) AND EXISTS (SELECT 1 from project.mydataset.mytable S WHERE S.field1 = T.field1 AND S._PARTITIONTIME = TIMESTAMP("2017-06-01") )

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en mytable.field1 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mytable.field2 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mytable.field1 en la partición “2017-06-01”
  • La suma de la cantidad de bytes en mytable.field2 en la partición “2017-06-01”

En este caso, el costo de la declaración de ACTUALIZACIÓN es igual a la suma del tamaño de todos los campos en las particiones correspondientes a “2017-05-01” y “2017-06-01”.

Ejemplo 4: ACTUALIZACIÓN de tabla particionada

Declaración DML 1: Cómo actualizar una partición única

mytable2 tiene dos columnas: id de tipo INTEGER y ts de tipo TIMESTAMP. mycolumntable tiene cuatro columnas: field1 de tipo INTEGER, field2 de tipo STRING, field3 de tipo BOOLEAN y ts de tipo TIMESTAMP.

UPDATE project.mydataset.mycolumntable T SET T.field1 = T.field1 + 100 WHERE DATE(T.ts) = “2017-05-01” AND EXISTS (SELECT S.id from project.mydataset.mytable2 S WHERE S.id = T.field1)

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en mytable2.id
  • La suma de la cantidad de bytes en mycolumntable.field1 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.field2 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.field3 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.ts en la partición “2017-05-01”

Declaración DML 2: Cómo actualizar una partición a partir de otra en una tabla

UPDATE project.mydataset.mycolumntable T SET T.ts = TIMESTAMP(“2017-06-01”), T.field1 = T.field1 + 100 WHERE DATE(T.ts) = “2017-05-01” AND EXISTS (SELECT 1 from project.mydataset.mycolumntable S WHERE S.field1 = T.field1 AND DATE(S.ts) = "2017-06-01")

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en mycolumntable.field1 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.field2 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.field3 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.ts en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.field1 en la partición “2017-06-01”
  • La suma de la cantidad de bytes en mycolumntable.field2 en la partición “2017-06-01”
  • La suma de la cantidad de bytes en mycolumntable.field3 en la partición “2017-06-01”
  • La suma de la cantidad de bytes en mycolumntable.ts en la partición “2017-06-01”

En este caso, el costo de la declaración de ACTUALIZACIÓN es igual a la suma del tamaño de todos los campos en las particiones correspondientes a “2017-05-01” y “2017-06-01”.

Ejemplo 5: BORRADO de tablas particionadas y tiempo de transferencia

mytable2 tiene dos columnas: id de tipo INTEGER y ts de tipo TIMESTAMP. mytable tiene dos columnas: field1 de tipo INTEGER y field2 de tipo STRING.

DELETE project.mydataset.mytable T WHERE T._PARTITIONTIME = TIMESTAMP(“2017-05-01”) AND EXISTS (SELECT S.id from project.mydataset.mytable2 S WHERE S.id = T.field1)

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en mytable2.id
  • La suma de la cantidad de bytes en mytable.field1 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mytable.field2 en la partición “2017-05-01”

Ejemplo 6: BORRADO de tabla particionada

mytable2 tiene dos columnas: id de tipo INTEGER y ts de tipo TIMESTAMP. mycolumntable tiene cuatro columnas: field1 de tipo INTEGER, field2 de tipo STRING, field3 de tipo BOOLEAN y ts de tipo TIMESTAMP.

DELETE project.mydataset.mycolumntable T WHERE DATE(T.ts) =“2017-05-01” AND EXISTS (SELECT S.id from project.mydataset.mytable2 S WHERE S.id = T.field1)

Bytes procesados en este ejemplo:

  • La suma de la cantidad de bytes en mytable2.id
  • La suma de la cantidad de bytes en mycolumntable.field1 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.field2 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.field3 en la partición “2017-05-01”
  • La suma de la cantidad de bytes en mycolumntable.ts en la partición “2017-05-01”

Ejemplo de precios de una tabla agrupada

Supón que tienes una tabla agrupada con el nombre ClusteredSalesData. La columna timestamp particiona la tabla y la columna customer_id la agrupa. Los datos se organizan en el conjunto de bloques que se indica a continuación:

Identificador de la partición ID del bloque Valor mínimo de customer_id en el bloque Valor máximo de customer_id en el bloque
20160501 B1 10000 19999
20160501 B2 20000 24999
20160502 B3 15000 17999
20160501 B4 22000 27999

Ejecutas la siguiente consulta en la tabla. La consulta tiene un filtro en la columna customer_id.

SELECT
  SUM(totalSale)
FROM
  `mydataset.ClusteredSalesData`
WHERE
  customer_id BETWEEN 20000
  AND 23000
  AND DATE(timestamp) = "2016-05-01"

La consulta realiza las siguientes acciones:

  • Analiza las columnas timestamp, customer_id y totalSale de los bloques B2 y B4.
  • Reduce el bloque B3 debido al predicado de filtro DATE(timestamp) = "2016-05-01" en la columna de partición timestamp.
  • Reduce el bloque B1 debido al predicado de filtro customer_id BETWEEN 20000 AND 23000 en la columna de agrupación customer_id.
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.