Exportar los resultados de las consultas a un archivo

Puedes guardar los resultados de las consultas de BigQuery en un archivo local, Google Drive, Hojas de cálculo de Google o Cloud Storage para poder compartirlos o analizarlos en otras herramientas. Para los archivos locales, puedes elegir formatos como CSV y JSON delimitado por saltos de línea.

Limitaciones

BigQuery no admite la exportación de datos anidados o repetidos (tipos de datos RECORD / STRUCT o ARRAY) al formato CSV. Incluso si los campos RECORD o STRUCT no parecen estar anidados de forma profunda, BigQuery los trata como campos de esquema anidados y devuelve un error que indica que el esquema no se puede anidar.

Para exportar los resultados de la consulta a un archivo CSV estructurado, la consulta debe normalizarse en una estructura plana con un campo por columna de consulta. Puedes normalizar structs anidados seleccionando campos individuales con la notación de puntos o normalizar arrays repetidos con el operador UNNEST.

Por ejemplo, si tu tabla contiene un struct customer y un array items, normaliza la consulta antes de ejecutarla y guardar los resultados en un archivo CSV:

SELECT
  customer.id AS customer_id,
  customer.name AS customer_name,
  item
FROM
  `my_project.my_dataset.my_table`,
  UNNEST(items) AS item;

Descarga los resultados de las consultas en un archivo local

La herramienta de línea de comandos de bq y la API no admiten la descarga de resultados de consultas en un archivo local.

Para descargar los resultados de las consultas como un archivo CSV o JSON delimitado por saltos de línea, usa la consola deGoogle Cloud :

  1. En la consola de Google Cloud , abre la página de BigQuery.

    Ir a BigQuery

  2. Haz clic en Consulta en SQL.

  3. Ingresa una consulta válida de GoogleSQL en el área de texto del Editor de consultas.

  4. Opcional: Para cambiar la ubicación de procesamiento, haz clic en Editar > Configuración de consulta. En Ubicación de los datos, elige la ubicación de tus datos.

  5. Haz clic en Ejecutar.

  6. Cuando se muestren los resultados, haz clic en Guardar resultados y selecciona el formato o la ubicación en los que desees guardarlos.

    El archivo se descarga en la ubicación de descarga predeterminada de tu navegador.

Cómo guardar los resultados de las consultas en Google Drive

La herramienta de línea de comandos de bq o la API no admiten que los resultados de las consultas se guarden en Google Drive.

Es posible que recibas un error cuando intentes guardar los resultados de BigQuery en Google Drive. Este error se debe a que la API del SDK de Drive no puede acceder a Google Workspace. Para resolver el problema, debes habilitar tu cuenta de usuario a fin de acceder a Google Drive con la API del SDK de Drive.

Para guardar los resultados de las consultas en Google Drive, usa la consola de Google Cloud :

  1. En la consola de Google Cloud , abre la página de BigQuery.

    Ir a BigQuery

  2. Haz clic en Consulta en SQL.

  3. Ingresa una consulta válida de GoogleSQL en el área de texto del Editor de consultas.

  4. Haz clic en Ejecutar.

  5. Cuando se muestren los resultados, haz clic en Guardar resultados.

  6. En Google Drive, selecciona CSV o JSON. Cuando guardas los resultados en Google Drive, no puedes elegir la ubicación. Los resultados siempre se guardan en la ubicación raíz "Mi unidad".

  7. Guardar los resultados en Google Drive puede tardar unos minutos. Cuando se guardan los resultados, recibes un mensaje de diálogo que incluye el nombre del archivo: bq-results-[TIMESTAMP]-[RANDOM_CHARACTERS].[CSV or JSON].

    captura de pantalla del botón de guardar resultados

  8. En el cuadro de diálogo, haz clic en Abrir para abrir el archivo o navega hasta Google Drive y haz clic en Mi unidad.

Guarda los resultados de las consultas en Hojas de cálculo de Google

La herramienta de línea de comandos de bq y la API no admiten que los resultados de las consultas se guarden en Hojas de cálculo de Google.

Es posible que recibas un error cuando intentes abrir los resultados de BigQuery desde Hojas de cálculo de Google. Este error se debe a que la API del SDK de Drive no puede acceder a Google Workspace. A fin de resolver el problema, debes habilitar tu cuenta de usuario para acceder a Hojas de cálculo de Google con la API del SDK de Drive.

Para guardar los resultados de las consultas en Hojas de cálculo de Google, usa la consola de Google Cloud :

  1. En la consola de Google Cloud , abre la página de BigQuery.

    Ir a BigQuery

  2. Haz clic en Consulta en SQL.

  3. Ingresa una consulta válida de GoogleSQL en el área de texto del Editor de consultas.

  4. Opcional: Para cambiar la ubicación de procesamiento, haz clic en Editar > Configuración de consulta. En Ubicación de los datos, elige la ubicación de tus datos.

  5. Haz clic en Ejecutar.

  6. Cuando se muestren los resultados, haz clic en Guardar los resultados y selecciona Hojas de cálculo de Google.

  7. Si es necesario, sigue las indicaciones para acceder a tu cuenta de usuario y haz clic en Permitir si quieres permitir que se escriban los datos en tu carpeta My Drive de Google Drive con BigQuery.

    Después de seguir las indicaciones, deberías recibir un correo electrónico en el que se confirme que las herramientas cliente de BigQuery se conectaron a tu cuenta de usuario. El correo electrónico contiene información sobre los permisos que otorgaste y los pasos que tienes que seguir para quitarlos.

  8. Cuando se guardan los resultados, debajo de los resultados de las consultas aparece un mensaje similar al siguiente en la consola de Google Cloud : Saved to Sheets as "results-20190225-103531". Haz clic en el vínculo del mensaje para ver tus resultados en Hojas de cálculo de Google o navega a tu carpeta My Drive y abre el archivo de forma manual.

    Cuando guardas los resultados de las consultas en las Hojas de cálculo de Google, el nombre del archivo comienza con results-[DATE], en el que [DATE] es la fecha de hoy en el formato YYYYMMDD.

Soluciona problemas para guardar los resultados en Hojas de cálculo de Google

Cuando guardes datos de BigQuery en Hojas de cálculo de Google, es posible que algunas celdas de las hojas estén en blanco. Esto sucede cuando los datos que escribes en la celda superan el límite de 50,000 caracteres de Hojas de cálculo de Google. Para resolver esto, usa una función de string en la consulta de GoogleSQL para dividir la columna con los datos largos en dos o más columnas y, luego, vuelve a guardar el resultado en hojas de cálculo.

Guarda los resultados de las consultas en Cloud Storage

Puedes exportar los resultados de tus consultas a Cloud Storage en la consola de Google Cloud con los siguientes pasos:

  1. Abre la página de BigQuery en la consola de Google Cloud .

    Ir a la página de BigQuery

  2. Haz clic en Consulta en SQL.

  3. Ingresa una consulta válida de GoogleSQL en el área de texto del Editor de consultas.

  4. Haz clic en Ejecutar.

  5. Cuando se muestren los resultados, haz clic en Guardar los resultados > Cloud Storage.

  6. Sigue estos pasos en el diálogo Exportar a Google Cloud Storage:

    • En Ubicación de GCS, busca el bucket, la carpeta o el archivo al que deseas exportar los datos.
    • En Formato de exportación, selecciona el formato de los datos exportados: CSV, JSON (delimitado por saltos de línea), Avro o Parquet.
    • En Compresión, selecciona un formato de compresión o selecciona None para no comprimir.
  7. Haz clic en Guardar para exportar los resultados de la consulta.

Para verificar el progreso del trabajo, expande el panel Historial de trabajos y busca el trabajo con el tipo EXTRACT.

Restringe la descarga de los resultados de las consultas

Para evitar que los usuarios descarguen los resultados de las consultas desde la consola de Google Cloud , usa uno de los siguientes métodos:

  • Configura un perímetro de Controles del servicio de VPC para evitar el robo de datos. Esto impide que los usuarios descarguen y exporten datos fuera de los límites del perímetro establecido.

  • Comunícate con la Atención al cliente de Cloud para solicitar que se agregue tu proyecto u organización de Google Cloud a una lista restringida. Esto inhabilita las opciones de descarga y exportación de datos directamente en la consola de Google Cloud .

¿Qué sigue?