O Planilhas Google é uma solução de planilhas baseada na nuvem que oferece suporte à colaboração em tempo real e ferramentas para visualizar, processar e comunicar dados.
O exemplo a seguir demonstra como gravar nas Planilhas em um fluxo de trabalho. O fluxo de trabalho consulta um conjunto de dados do BigQuery e grava os resultados em uma planilha do app Planilhas. Ele usa conectores do Workflows para simplificar a chamada de APIs do Google Cloud.
Antes de começar
Antes de testar o exemplo neste documento, conclua as seguintes etapas.
Ative as APIs Compute Engine, Google Drive, Google Sheets e Workflows.
Console
gcloud
gcloud services enable \ compute.googleapis.com \ drive.googleapis.com \ sheets.googleapis.com \ workflows.googleapis.com
Anote a conta de serviço padrão do Compute Engine, porque você vai associá-la ao fluxo de trabalho de exemplo para fins de teste. Os novos projetos que ativaram a API Compute Engine têm essa conta de serviço criada com a função básica de editor do IAM e com o seguinte formato de e-mail:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Encontre o número do projeto na página Boas-vindas do console do Google Cloud ou recupere o número do projeto:
gcloud projects describe PROJECT_ID
Para ambientes de produção, recomendamos criar uma nova conta de serviço e conceder a ela um ou mais papéis do IAM que contenham as permissões mínimas necessárias e sigam o princípio de privilégio mínimo.
Crie uma nova pasta no Google Drive. Essa pasta é usada para armazenar a planilha. Ao configurar uma permissão para a pasta compartilhada, seu fluxo de trabalho pode gravar na planilha.
- Acesse drive.google.com.
- Clique em Novo > Nova pasta.
- Digite um nome para a pasta.
- Clique em Criar.
- Clique com o botão direito do mouse na nova pasta e selecione Compartilhar.
Adicione o endereço de e-mail da conta de serviço padrão do Compute Engine.
Isso dá à conta de serviço acesso à pasta. Quando você associa a conta de serviço ao seu fluxo de trabalho, ele tem acesso de edição a qualquer arquivo na pasta. Saiba mais sobre o compartilhamento de arquivos, pastas e drives.
Selecione o papel Editor.
Desmarque a caixa de seleção Notificar pessoas.
Clique em Compartilhar.
Criar uma planilha
É possível criar uma planilha de duas maneiras:
- Criar uma planilha usando as Planilhas Google
- Criar uma planilha usando o conector da API Google Sheets
Não há opção para criar uma planilha diretamente em uma pasta especificada usando a API Google Sheets. No entanto, há alternativas, incluindo mover a planilha para uma pasta específica depois de criá-la, como é feito nos exemplos a seguir. Para mais informações, consulte Trabalhar com pastas do Google Drive.
Criar uma planilha usando as Planilhas Google
Quando você cria uma planilha nas Planilhas Google, ela é salva no Google Drive. Por padrão, a planilha é salva na sua pasta raiz no Drive.
Acesse sheets.google.com.
Clique em Novo .
Uma planilha será criada e aberta. Cada planilha tem um valor
spreadsheetId
exclusivo, que contém letras, números, hifens ou sublinhados. Você pode encontrar o ID da planilha em um URL do app Planilhas Google:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0
Anote esse ID, porque ele será necessário ao criar seu fluxo de trabalho.
Mova a planilha para a pasta do Google Drive que você criou antes:
- Na planilha, selecione Arquivo > Mover.
- Acesse a pasta que você criou.
- Clique em Mover.
Criar uma planilha usando o conector da API Google Sheets
Você pode usar o conector da API Google Sheets para criar uma planilha. Como os fluxos de trabalho usam a conta de serviço como a identidade do acionador, a planilha é criada na pasta raiz do Google Drive da conta de serviço. Em seguida, você pode mover a planilha para outra pasta.
No fluxo de trabalho a seguir, o spreadsheetId
é
recuperado do resultado resp
:
YAML
JSON
Substitua FOLDER_ID
pelo ID da pasta para a qual você
quer mover a planilha. Cada pasta do Drive tem um ID
exclusivo, que contém letras, números, hifens ou sublinhados. Você pode encontrar o
ID da pasta no URL dela:
https://drive.google.com/drive/folders/FOLDER_ID/edit#gid=0
Para mais informações, consulte Criar e preencher pastas.
A saída do fluxo de trabalho será semelhante a esta, em que o valor id
é spreadsheetId
:
"body": { "id": "spreadsheetId", "kind": "drive#file", "mimeType": "application/vnd.google-apps.spreadsheet", "name": "Untitled spreadsheet" }
Analisar o conjunto de dados público do BigQuery
O BigQuery hospeda vários conjuntos de dados públicos disponíveis para consulta pelo público em geral.
No BigQuery, é possível executar um job de consulta interativa (sob demanda). Por exemplo, a consulta a seguir retorna os 100 nomes mais populares em um conjunto de dados e grava a saída em uma tabela temporária. Essa é a consulta que seu fluxo de trabalho vai executar.
Console
No Console do Google Cloud, acesse a página BigQuery.
Insira a seguinte consulta SQL do BigQuery na área de texto do 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
Clique em Executar.
bq
No terminal, digite o seguinte comando bq query
para executar uma consulta interativa usando a sintaxe SQL padrão:
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'
Implantar um fluxo de trabalho que grava em Planilhas
Implante um fluxo de trabalho que consulte um conjunto de dados do BigQuery usando o conector da API BigQuery e grave os resultados em uma planilha do Google Planilhas usando o conector da API Google Planilhas.
Console
No console do Google Cloud, acesse a página Fluxos de trabalho:
Clique em
Criar.Insira um nome para o novo fluxo de trabalho:
read-bigquery-write-sheets
.Na lista Região, selecione us-central1 (Iowa).
Na Conta de serviço, selecione a conta de serviço padrão do Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Clique em Próxima.
No editor de fluxo de trabalho, insira a seguinte definição:
Substitua o valor do marcador de posição
sheetId
pelospreadsheetId
.Clique em Implantar.
gcloud
Crie um arquivo de código-fonte para seu fluxo de trabalho:
touch read-bigquery-write-sheets.yaml
Em um editor de texto, copie o seguinte fluxo de trabalho para o arquivo de código-fonte:
Substitua o valor do marcador de posição
sheetId
pelospreadsheetId
.Implante o fluxo de trabalho digitando o seguinte 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
Substitua
PROJECT_NUMBER
pelo número do projeto do Google Cloud. Encontre o número do projeto na página Welcome do console do Google Cloud.
Executar o fluxo de trabalho e verificar os resultados
Quando um fluxo de trabalho é executado, a definição atual associada a ele também é.
Execute o fluxo de trabalho:
Console
No console do Google Cloud, acesse a página Fluxos de trabalho.
Na página Fluxos de trabalho, selecione o fluxo de trabalho read-bigquery-write-sheets para acessar a página de detalhes dele.
Na página Detalhes do fluxo de trabalho, clique em play_arrow Executar.
Clique em Executar novamente.
Confira os resultados do fluxo de trabalho no painel Saída.
A saída será semelhante a esta:
{ "spreadsheetId": "1pgkNY7mWICA6o6INUNLHGnmk0Tdioh0nUghZPOYPpZA", "updatedCells": 303, "updatedColumns": 3, "updatedRange": "Sheet1!A1:C101", "updatedRows": 101 }
gcloud
Abra um terminal.
Execute o fluxo de trabalho:
gcloud workflows run read-bigquery-write-sheets
Os resultados da execução serão semelhantes a estes:
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
Verifique se o fluxo de trabalho gravou os resultados da consulta na sua planilha. Por exemplo, o número de colunas e linhas na planilha precisa corresponder aos valores
updatedColumns
eupdatedRows
.
A seguir
- Acionar um fluxo de trabalho das Planilhas Google.
- Pausar e retomar um fluxo de trabalho usando callbacks e Planilhas Google.
- Conheça o Centro de aprendizagem do Google Workspace.