Cargar datos en tablas con particiones

En este documento se describe cómo cargar datos en tablas con particiones.

Escribir datos en una partición específica

Puedes cargar datos en una partición específica mediante el comando bq load con un decorador de partición. En el siguiente ejemplo se añaden datos a la partición 20160501 (1 de mayo del 2016) de una tabla, suponiendo que la tabla ya tiene particiones 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 ingestión, puede usar esta técnica para cargar datos antiguos en la partición que corresponda al momento en que se crearon los datos originalmente.

También puedes usar esta técnica para ajustar las zonas horarias. De forma predeterminada, las particiones de tiempo de ingestión se basan en la hora UTC. Si quiere que la hora de la partición coincida con una zona horaria concreta, puede usar decoradores de partición para compensar la hora de ingestión 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 del 2016 a las 23:30 (PST) en la partición de esa fecha mediante el decorador de partición explícito correspondiente, $2016050123. Si no usaras este decorador explícito, se cargaría en $2016050207 (2 de mayo a las 07:00 UTC).

En las tablas con particiones por columnas de unidades de tiempo y por intervalos 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 tiene particiones en una columna DATE, el decorador debe coincidir con el valor de esa columna. De lo contrario, se producirá un error. Sin embargo, si sabes de antemano que tus datos están en una sola partición, especificar el decorador de partición puede mejorar el rendimiento de escritura.

En el ejemplo anterior se añaden datos a una partición. Para sobrescribir datos en una partición, debe incluir marcas diferentes en cada comando, concretamente bq load --replace=true ... y bq query --append_table=false .... Para obtener más información sobre las marcas de estos comandos, consulta bq load y bq query.

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

Transmitir datos a tablas con particiones

Para obtener información sobre cómo transmitir datos a una tabla con particiones con la API Storage Write de BigQuery, consulta Transmitir datos a tablas con particiones.

Siguientes pasos

Para obtener más información sobre cómo trabajar con tablas con particiones, consulta los siguientes artículos: