Carga datos en tablas particionadas

En este documento, se describe cómo cargar datos en tablas particionadas.

Escribe datos en una partición específica

Puedes cargar datos en una partición específica si usas el comando bq load con un decorador de partición. En el siguiente ejemplo, se adjuntan datos en la partición 20160501 (1 de mayo de 2016) de una tabla existente, si suponemos que la tabla ya está particionada por fecha:

bq load --source_format=CSV 'my_dataset.my_table$20160501' data.csv

También puedes escribir los resultados de una consulta en una partición específica:

bq query \
  --use_legacy_sql=false  \
  --destination_table='my_table$20160501' \
  --append_table=true \
  'SELECT * FROM my_dataset.another_table'

Con la partición por tiempo de transferencia, puedes usar esta técnica para cargar datos más antiguos en la partición que corresponda a la hora en que se crearon originalmente los datos.

También puede usar esta técnica para ajustar las zonas horarias. De forma predeterminada, las particiones por tiempo de transferencia se basan en la hora UTC. Si quieres que la hora de partición coincida con una zona horaria en particular, puedes usar decoradores de particiones para compensar el tiempo de transferencia de UTC. Por ejemplo, si te encuentras en la hora estándar del Pacífico (PST), puedes cargar datos que se generaron el 1 de mayo de 2016 PST en la partición para esa fecha mediante el decorador de partición correspondiente, $20160501.

Para las columnas por unidad de tiempo y las tablas particionadas por rango de números enteros, el ID de partición especificado en el decorador debe coincidir con los datos que se escriben. Por ejemplo, si la tabla está particionada en una columna DATE, el decorador debe coincidir con el valor en esa columna. De lo contrario, se produce un error. Sin embargo, si ya sabes que tus datos están en una sola partición, especificar el decorador de partición puede mejorar el rendimiento de la escritura.

En el ejemplo anterior, se agregan datos a una partición. Para reemplazar datos en una partición, debes incluir marcas diferentes para cada comando, es decir, bq load --replace=true ... y bq query --append_table=false .... Para obtener más información sobre las marcas en estos comandos, consulta bq load y bq query.

Para obtener más información, consulta Introducción a la carga de datos en BigQuery.

Transmitir datos en tablas particionadas

Para obtener información sobre la transmisión de datos a una tabla particionada con la API de BigQuery Storage Write, consulta Partición de columnas de unidad de tiempo.

¿Qué sigue?

Para obtener más información sobre cómo trabajar con tablas particionadas, consulta estas secciones: