Hojas de cálculo de Google es una solución de hojas de cálculo basada en la nube que admite la colaboración en tiempo real y proporciona herramientas para visualizar, procesar y comunicar datos.
En el siguiente ejemplo, se muestra cómo escribir en Hojas de cálculo desde un flujo de trabajo. El flujo de trabajo consulta un conjunto de BigQuery y escribe los resultados en Hojas de cálculo. Usa conectores de flujos de trabajo para simplificar las llamadas a las APIs de Google Cloud.
Antes de comenzar
Antes de probar el ejemplo de este documento, asegúrate de haber completado lo siguiente.
Habilitar las APIs de Compute Engine, Google Drive, Hojas de cálculo de Google y Workflows
Console
gcloud
gcloud services enable \ compute.googleapis.com \ drive.googleapis.com \ sheets.googleapis.com \ workflows.googleapis.com
Toma nota de la cuenta de servicio de la cuenta de servicio predeterminada de Compute Engine, ya que la asociarás con el flujo de trabajo de ejemplo con fines de prueba. Los proyectos nuevos que habilitaron la API de Compute Engine tienen esta cuenta de servicio creada con la función de editor básica de IAM y el siguiente formato de correo electrónico:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Puedes encontrar el número de tu proyecto en la página Te damos la bienvenida de la consola de Google Cloud o puedes recuperarlo:
gcloud projects describe PROJECT_ID
Para los entornos de producción, te recomendamos crear una cuenta de servicio nueva, otorgarle una o más funciones de IAM que contengan los permisos mínimos necesarios y seguir el principio de privilegio mínimo.
Crea una carpeta nueva en Google Drive. Esta carpeta se utiliza para almacenar tu hoja de cálculo. Si configuras un permiso para la carpeta compartida, tu flujo de trabajo podrá escribir en la hoja de cálculo.
- Ve a drive.google.com.
- Haz clic en Nuevo > Nueva carpeta.
- Ingresa un nombre para la carpeta.
- Haz clic en Crear.
- Haz clic con el botón derecho en la carpeta nueva y selecciona Compartir.
Agrega la dirección de correo electrónico de la cuenta de servicio predeterminada de Compute Engine.
Esto le da a la cuenta de servicio acceso a la carpeta. Cuando asocies la cuenta de servicio con tu flujo de trabajo, este tendrá acceso de edición a cualquier archivo de la carpeta. Obtén más información para compartir archivos, carpetas y unidades.
Selecciona el rol Editor.
Desmarca la casilla de verificación Enviar notificaciones a las personas.
Haz clic en Compartir
Cree una hoja de cálculo
Puedes crear una hoja de cálculo de cualquiera de las siguientes maneras:
- Cómo crear una hoja de cálculo con Hojas de cálculo de Google
- Crea una hoja de cálculo con el conector de la API de Hojas de cálculo de Google
Con la API de Hojas de cálculo de Google, no es posible crear una hoja de cálculo directamente dentro de una carpeta especificada. Sin embargo, existen alternativas, incluida la transferencia de la hoja de cálculo a una carpeta específica después de crearla, como se hace en los siguientes ejemplos. Para obtener más información, consulta Trabaja con carpetas de Google Drive.
Crea una hoja de cálculo con Hojas de cálculo de Google
Cuando creas una hoja de cálculo a través de Hojas de cálculo de Google, se guarda en Google Drive. De forma predeterminada, la hoja de cálculo se guarda en tu carpeta raíz en Drive.
Ve a sheets.google.com.
Haz clic en Nuevo .
Esto creará y abrirá tu nueva hoja de cálculo. Cada hoja de cálculo tiene un valor
spreadsheetId
único que contiene letras, números, guiones o guiones bajos. Puedes encontrar el ID de la hoja de cálculo en una URL de Hojas de cálculo de Google:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0
Ten en cuenta este ID, ya que lo necesitarás cuando crees tu flujo de trabajo.
Mueve la hoja de cálculo a la carpeta de Google Drive que creaste anteriormente:
- En la hoja de cálculo, selecciona Archivo > Mover.
- Navega a la carpeta que creaste.
- Haz clic en Mover.
Crear una hoja de cálculo con el conector de la API de Google Sheets
Para crear una hoja de cálculo, puedes usar el conector de la API de Hojas de cálculo de Google. Dado que Workflows usa la cuenta de servicio como la identidad del activador, la hoja de cálculo se crea en la carpeta raíz de Google Drive de la cuenta de servicio. Luego, puedes mover la hoja de cálculo a otra carpeta.
En el siguiente flujo de trabajo, el spreadsheetId
se recupera del resultado de resp
:
YAML
JSON
Reemplaza FOLDER_ID
por el ID de la carpeta a la que deseas mover la hoja de cálculo. Cada carpeta de Drive tiene un ID único, que contiene letras, números, guiones o guiones bajos. Puedes encontrar el ID de la carpeta en la URL de la carpeta:
https://drive.google.com/drive/folders/FOLDER_ID/edit#gid=0
Para obtener más información, consulta Crea y propaga carpetas.
El resultado del flujo de trabajo debe ser similar al siguiente, en el que el valor id
es spreadsheetId
:
"body": { "id": "spreadsheetId", "kind": "drive#file", "mimeType": "application/vnd.google-apps.spreadsheet", "name": "Untitled spreadsheet" }
Explora el conjunto de datos públicos de BigQuery
BigQuery aloja una serie de conjuntos de datos públicos que están disponibles para que el público general los consulte.
En BigQuery, puedes ejecutar un trabajo de consulta interactivo (a pedido). Por ejemplo, la siguiente consulta muestra los 100 nombres más populares de un conjunto de datos específico y escribe el resultado en una tabla temporal. Esta es la consulta que ejecutará tu flujo de trabajo.
Console
En la consola de Google Cloud, ve a la página de BigQuery.
Ingresa la siguiente consulta en SQL de BigQuery en el área de texto del Editor de consultas:
SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 100
Haz clic en Ejecutar.
bq
En tu terminal, ingresa el siguiente comando de bq query
para ejecutar una consulta interactiva con la sintaxis de SQL estándar:
bq query \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 100'
Implementa un flujo de trabajo que escribe en Hojas de cálculo
Implementa un flujo de trabajo que consulte un conjunto de datos de BigQuery con el conector de la API de BigQuery y que escriba los resultados en una hoja de cálculo de Hojas de cálculo con el conector de la API de Hojas de cálculo de Google.
Console
En la consola de Google Cloud, ve a la página Flujos de trabajo:
Haz clic en
Crear.Ingresa un nombre para el flujo de trabajo nuevo:
read-bigquery-write-sheets
.En la lista Región, selecciona us-central1 (Iowa).
Para la Cuenta de servicio, selecciona la cuenta de servicio predeterminada de Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Haz clic en Siguiente.
En el editor de flujos de trabajo, ingresa la siguiente definición para tu flujo de trabajo:
Reemplaza el valor del marcador de posición
sheetId
por tuspreadsheetId
.Haz clic en Implementar.
gcloud
Crea un archivo de código fuente para tu flujo de trabajo:
touch read-bigquery-write-sheets.yaml
En un editor de texto, copia el siguiente flujo de trabajo en tu archivo de código fuente:
Reemplaza el valor del marcador de posición
sheetId
por tuspreadsheetId
.Para implementar el flujo de trabajo, ingresa el siguiente comando:
gcloud workflows deploy read-bigquery-write-sheets \ --source=read-bigquery-write-sheets.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
Reemplaza
PROJECT_NUMBER
por el número de proyecto de Google Cloud. Puedes encontrar el número de proyecto en la página de bienvenida de la consola de Google Cloud.
Ejecuta el flujo de trabajo y verifica los resultados
Cuando se ejecuta un flujo de trabajo, se ejecuta la definición del flujo de trabajo actual asociada con este.
Ejecuta el flujo de trabajo:
Console
En la consola de Google Cloud, ve a la página Workflows.
En la página Flujos de trabajo, selecciona el flujo de trabajo read-bigquery-write-sheets para ir a su página de detalles.
En la página Detalles del flujo de trabajo, haz clic en play_arrow Ejecutar.
Haz clic de nuevo en Ejecutar.
Observa los resultados del flujo de trabajo en el panel Output.
El resultado debería ser similar al siguiente ejemplo:
{ "spreadsheetId": "1pgkNY7mWICA6o6INUNLHGnmk0Tdioh0nUghZPOYPpZA", "updatedCells": 303, "updatedColumns": 3, "updatedRange": "Sheet1!A1:C101", "updatedRows": 101 }
gcloud
Abre una terminal.
Ejecuta el flujo de trabajo:
gcloud workflows run read-bigquery-write-sheets
Los resultados de la ejecución deberían ser similares a los siguientes:
Waiting for execution [4dcf737b-69d9-4081-b8d9-86d39ae86bd1] to complete...done. argument: 'null' duration: 3.131912897s endTime: '2023-01-25T14:59:46.818828242Z' name: projects/918619793306/locations/us-central1/workflows/read-bigquery-write-sheets/executions/4dcf737b-69d9-4081-b8d9-86d39ae86bd1 result: '{"spreadsheetId":"1pgkNY7mWICA6o6INUNLHGnmk0Tdioh0nUghZPOYPpZA","updatedCells":303,"updatedColumns":3,"updatedRange":"Sheet1!A1:C101","updatedRows":101}' startTime: '2023-01-25T14:59:43.686915345Z' state: SUCCEEDED
Verifica que el flujo de trabajo haya escrito los resultados de la consulta en tu hoja de cálculo. Por ejemplo, la cantidad de columnas y filas en la hoja de cálculo debe coincidir con los valores
updatedColumns
yupdatedRows
.
¿Qué sigue?
- Activa un flujo de trabajo desde Hojas de cálculo de Google.
- Pausa y reanuda un flujo de trabajo con devoluciones de llamada y Hojas de cálculo de Google.
- Explora el Centro de aprendizaje de Google Workspace.