Gestionar datos de tablas
En este documento se describe cómo gestionar los datos de las tablas en BigQuery. Puedes trabajar con los datos de las tablas de BigQuery de las siguientes formas:
- Cargar datos en una tabla
- Añadir o sobrescribir datos de una tabla
- Consultar (o previsualizar) los datos de una tabla
- Consultar datos de tablas
- Modificar datos de tablas mediante el lenguaje de manipulación de datos (DML)
- Copiar datos de una tabla
- Exportar datos de una tabla
Para obtener información sobre cómo gestionar los esquemas de tabla, consulta el artículo Modificar los esquemas de tabla.
Antes de empezar
Concede los roles que otorgan los permisos necesarios a los usuarios que deban realizar cada tarea de este documento. Los permisos necesarios (si los hay) para realizar una tarea se indican en la sección "Permisos necesarios" de la tarea.
Cargar datos en una tabla
Puedes cargar datos al crear una tabla o crear una tabla vacía y cargar los datos más adelante. Cuando cargues datos, puedes usar la detección automática de esquemas para los formatos de datos admitidos o especificar el esquema.
Para obtener más información sobre cómo cargar datos, consulta la documentación sobre el formato y la ubicación de los datos de tu fuente:
Para obtener más información sobre cómo cargar datos desde Cloud Storage, consulta los siguientes artículos:
Para obtener más información sobre cómo cargar datos desde una fuente local, consulta el artículo Cargar datos desde archivos locales.
Añadir y sobrescribir datos de tablas
Puede sobrescribir los datos de una tabla mediante una operación de carga o de consulta. Puedes añadir datos a una tabla ya creada realizando una operación de carga y anexión o añadiendo los resultados de una consulta a la tabla.
Para obtener más información sobre cómo añadir datos a una tabla o sobrescribirla al cargar datos, consulta la documentación del formato de los datos de origen:
- Añadir datos de Avro a una tabla o sobrescribirla
- Añadir datos CSV a una tabla o sobrescribirla
- Añadir datos JSON a una tabla o sobrescribirla
- Añadir datos Parquet a una tabla o sobrescribirla
- Añadir datos ORC a una tabla o sobrescribirla
- Añadir datos de Datastore a una tabla o sobrescribirla
Para añadir datos a una tabla o sobrescribirla con los resultados de una consulta, especifica una tabla de destino y define la disposición de escritura como:
- Añadir a tabla: añade los resultados de la consulta a una tabla.
- Sobrescribir tabla: sobrescribe una tabla con el mismo nombre con los resultados de la consulta.
Puedes usar la siguiente consulta para añadir registros de una tabla a otra:
INSERT INTO <projectID>.<datasetID>.<table1> ( <column2>, <column3>) (SELECT * FROM <projectID>.<datasetID>.<table2>)
Para obtener más información sobre cómo usar los resultados de las consultas para añadir o sobrescribir datos, consulta el artículo Escribir resultados de consultas.
Consultar datos de tablas
Puedes consultar o leer los datos de una tabla de las siguientes formas:
- Usar la Google Cloud consola
- Usar el comando
bq head
de la herramienta de línea de comandos bq - Llamar al método de API
tabledata.list
- Usar las bibliotecas de cliente
Permisos obligatorios
Para leer los datos de una tabla y una partición, necesitas el permiso de gestión de identidades y accesos (IAM) bigquery.tables.getData
.
Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye los permisos que necesitas para consultar datos de tablas y particiones:
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
Si tienes el permiso bigquery.datasets.create
, puedes consultar los datos de las tablas y particiones de los conjuntos de datos que crees.
Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta el artículo sobre funciones y permisos predefinidos.
Consultar datos de tablas
Para consultar los datos de una tabla, sigue estos pasos:
Consola
En la Google Cloud consola, abre la página de BigQuery.
En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.
Haga clic en una tabla de la lista.
Haga clic en Detalles y anote el valor de Número de filas. Puede que necesites este valor para controlar el punto de partida de los resultados con la herramienta de línea de comandos bq o la API.
Haz clic en Vista previa. Se muestra un conjunto de datos de muestra.
Línea de comandos
Ejecuta el comando bq head
con la marca --max_rows
para mostrar todas las columnas de un número determinado de filas de la tabla. Si no se especifica --max_rows
, el valor predeterminado es 100.
Para consultar un subconjunto de columnas de la tabla (incluidas las columnas anidadas y repetidas), utilice la marca --selected_fields
e introduzca las columnas como una lista separada por comas.
Para especificar el número de filas que se deben omitir antes de mostrar los datos de la tabla, usa la marca --start_row=integer
(o el acceso directo -s
). El valor predeterminado es 0
. Para obtener el número de filas de una tabla, usa el comando bq show
para consultar información de la tabla.
Si la tabla que estás consultando está en un proyecto que no es el predeterminado, añade el ID del proyecto al comando con el siguiente formato: project_id:dataset.table
.
bq head \ --max_rows integer1 \ --start_row integer2 \ --selected_fields "columns" \ project_id:dataset.table
Donde:
- integer1 es el número de filas que se van a mostrar.
- integer2 es el número de filas que se deben omitir antes de mostrar los datos.
- columns es una lista de columnas separadas por comas.
- project_id es el ID del proyecto.
- dataset es el nombre del conjunto de datos que contiene la tabla.
- table es el nombre de la tabla que se va a examinar.
Ejemplos:
Introduce el siguiente comando para enumerar todas las columnas de las 10 primeras filas de
mydataset.mytable
. mydataset
está en tu proyecto predeterminado.
bq head --max_rows=10 mydataset.mytable
Introduce el siguiente comando para enumerar todas las columnas de las primeras 100 filas de mydataset.mytable
. mydataset
está en myotherproject
, no en tu proyecto predeterminado.
bq head myotherproject:mydataset.mytable
Introduce el siguiente comando para mostrar solo field1
y field2
en mydataset.mytable
. El comando usa la marca --start_row
para ir a la fila 100.
mydataset.mytable
está en tu proyecto predeterminado.
bq head --start_row 100 --selected_fields "field1,field2" mydataset.mytable
Como el comando bq head
no crea un trabajo de consulta, los comandos bq head
no aparecen en tu historial de consultas y no se te cobra por ellos.
API
Desplázate por los datos de una tabla llamando a tabledata.list
.
Especifica el nombre de la tabla en el parámetro tableId
.
Configura estos parámetros opcionales para controlar la salida:
maxResults
: número máximo de resultados que se devolverán.selectedFields
: lista separada por comas de las columnas que se van a devolver. Si no se especifica, se devuelven todas las columnas.startIndex
: índice basado en cero de la fila inicial que se va a leer.
Los valores se devuelven envueltos en un objeto JSON que debes analizar, tal como se describe en la tabledata.list
documentación de referencia.
C#
Antes de probar este ejemplo, sigue las C#instrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Las bibliotecas de cliente de Cloud para Go paginan automáticamente de forma predeterminada, por lo que no es necesario que implementes la paginación por tu cuenta. Por ejemplo:
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Antes de probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Las bibliotecas de cliente de Cloud para Node.js paginan automáticamente de forma predeterminada, por lo que no es necesario que implementes la paginación por tu cuenta. Por ejemplo:
PHP
Antes de probar este ejemplo, sigue las PHPinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API PHP de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
La paginación se realiza automáticamente en las bibliotecas de cliente de Cloud para PHP
mediante la función de generador rows
, que obtiene la página siguiente de
resultados durante la iteración.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Ruby
Antes de probar este ejemplo, sigue las Rubyinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Ruby de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
La paginación se realiza automáticamente en las bibliotecas de cliente de Cloud para Ruby mediante Table#data
y Data#next
.
Consultar datos de tablas
Puedes consultar datos de BigQuery con uno de los siguientes tipos de trabajo de consulta:
Trabajos de consulta interactiva. De forma predeterminada, BigQuery ejecuta las consultas como tareas de consulta interactivas, que están diseñadas para empezar a ejecutarse lo antes posible.
Consultas por lotes. Las consultas por lotes tienen una prioridad inferior a las consultas interactivas. Cuando un proyecto o una reserva utiliza todos los recursos de computación disponibles, es más probable que las consultas por lotes se pongan en cola y permanezcan en ella. Una vez que se inicia una consulta por lotes, se ejecuta igual que una consulta interactiva. Para obtener más información, consulta el artículo sobre colas de consultas.
Trabajos de consulta continua. Con estas tareas, la consulta se ejecuta de forma continua, lo que te permite analizar los datos entrantes en BigQuery en tiempo real y, a continuación, escribir los resultados en una tabla de BigQuery o exportarlos a Bigtable o Pub/Sub. Puedes usar esta función para llevar a cabo tareas urgentes, como crear estadísticas y actuar en consecuencia de inmediato, aplicar inferencias de aprendizaje automático (ML) en tiempo real y crear flujos de datos basados en eventos.
Puedes ejecutar trabajos de consulta con los siguientes métodos:
- Redacta y ejecuta una consulta en la Google Cloud consola.
- Ejecuta el comando
bq query
en la herramienta de línea de comandos bq. - Llama mediante programación al método
jobs.query
ojobs.insert
en la API REST de BigQuery. - Usa las bibliotecas de cliente de BigQuery.
Para obtener más información sobre cómo consultar tablas de BigQuery, consulta la introducción a la consulta de datos de BigQuery.
Además de consultar datos almacenados en tablas de BigQuery, puedes consultar datos almacenados externamente. Para obtener más información, consulta el artículo Introducción a las fuentes de datos externas.
Modificar datos de tablas
Puedes modificar los datos de una tabla mediante instrucciones del lenguaje de manipulación de datos (DML) en SQL. Las instrucciones DML te permiten actualizar, combinar, insertar y eliminar filas en tablas. Para consultar la referencia de sintaxis y ejemplos de cada tipo de instrucción DML, consulta Instrucciones del lenguaje de manipulación de datos en GoogleSQL.
El dialecto de SQL antiguo no admite instrucciones DML. Para actualizar o eliminar datos con SQL antiguo, debe eliminar la tabla y volver a crearla con datos nuevos. También puedes escribir una consulta que modifique los datos y escriba los resultados de la consulta en una tabla de destino nueva.
Copiar datos de una tabla
Puedes copiar una tabla de las siguientes formas:
- Usar la Google Cloud consola
- Usar el comando
bq cp
de la herramienta de línea de comandos bq - Llamar al método de API
jobs.insert
y configurar una tarea de copia - Usar las bibliotecas de cliente
Para obtener más información sobre cómo copiar tablas, consulta Copiar una tabla.
Exportar datos de tablas
Puede exportar datos de tablas a un segmento de Cloud Storage en formato CSV, JSON, Avro o Parquet (vista previa). No se admite la exportación a tu máquina local. Sin embargo, puedes descargar y guardar los resultados de las consultas con la consola Google Cloud .
Para obtener más información, consulta el artículo Exportar datos de una tabla.
Seguridad de las tablas
Para controlar el acceso a las tablas de BigQuery, consulta el artículo sobre cómo controlar el acceso a los recursos con la gestión de identidades y accesos.
Siguientes pasos
- Para obtener más información sobre la carga de datos, consulta el artículo Introducción a la carga de datos.
- Para obtener más información sobre cómo consultar datos, consulta la introducción a la consulta de datos de BigQuery.
- Para obtener más información sobre cómo modificar los esquemas de tabla, consulta Modificar los esquemas de tabla.
- Para obtener más información sobre cómo crear y usar tablas, consulta el artículo Crear y usar tablas.
- Para obtener más información sobre cómo gestionar tablas, consulta el artículo Gestionar tablas.