Administra datos de tablas particionadas
En este documento, se describe cómo administrar datos de tablas particionadas en BigQuery.
Decoradores de particiones
Los decoradores de particiones te permiten hacer referencia a una partición en una tabla. Por ejemplo, puedes usarlos para escribir datos en una partición específica.
Un decorador de partición tiene el formato table_name$partition_id
, en el que el formato del segmento partition_id
depende del tipo de partición:
Tipo de partición | Formato | Ejemplo |
---|---|---|
Por hora | yyyymmddhh |
my_table$2021071205 |
Diario | yyyymmdd |
my_table$20210712 |
Mensual | yyyymm |
my_table$202107 |
Anual | yyyy |
my_table$2021 |
Rango de números enteros | range_start |
my_table$40 |
Explora los datos en una partición
Para explorar los datos de una partición específica, usa el comando bq head
con un decorador de partición.
Por ejemplo, en el siguiente comando, se enumeran todos los campos en las primeras 10 filas de my_dataset.my_table
en la partición 24/02/2018:
bq head --max_rows=10 'my_dataset.my_tablee$20180224'
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 escriben 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.
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 el método tabledata.insertAll
, consulta Transmite a tablas particionadas.
Exportar datos de tablas
En la exportación de todos los datos de una tabla particionada se realiza el mismo proceso que en la exportación de datos de una tabla no particionada. Para obtener más información, consulta Exporta datos de tablas.
Para exportar datos de una partición individual, agrega el decorador de partición al nombre de la tabla. Por ejemplo, my_table$20160201
.
También puedes exportar datos de las particiones __NULL__
y __UNPARTITIONED__
si agregas los nombres de las particiones al nombre de la tabla. Por ejemplo, my_table$__NULL__
o my_table$__UNPARTITIONED__
.
Seguridad de la tabla particionada
El control de acceso para las tablas particionadas es el mismo que el de las tablas estándar. Para obtener más información, consulta Introducción a los controles de acceso a tablas.
Próximos pasos
Para obtener más información sobre cómo trabajar con tablas particionadas, consulta estas secciones: