Usar a ferramenta bq
Neste tutorial, você vai aprender a usar o bq, a ferramenta de interface de linha de comando (CLI) baseada em Python para o BigQuery, para criar um conjunto de dados, carregar dados de amostra e consultar tabelas. Depois de concluir este tutorial, você vai conhecer o bq e saber como trabalhar com o BigQuery usando uma CLI.
Para obter uma referência completa de todos os comandos e flags bq, consulte a
referência da ferramenta de linha de comando bq.
Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud , clique em Orientação:
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Ative a API BigQuery.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.Para novos projetos, a API BigQuery é ativada automaticamente.
- Opcional: ative o faturamento do projeto. Se você não quiser ativar o faturamento ou informar um cartão de crédito, as etapas deste documento ainda funcionarão. O BigQuery fornece um sandbox para executar as etapas. Para mais informações, consulte Ativar o sandbox do BigQuery.
No console do Google Cloud , ative o Cloud Shell.
Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Funções exigidas
Para receber as permissões necessárias para criar um conjunto de dados, uma tabela, carregar e consultar dados, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Executar jobs de carregamento e de consulta:
Usuário de jobs do BigQuery (
roles/bigquery.jobUser) -
Criar um conjunto de dados, uma tabela, carregar dados em uma tabela e consultar uma tabela:
Editor de dados do BigQuery (
roles/bigquery.dataEditor)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Fazer o download do arquivo que contém os dados de origem
Você está fazendo o download de um arquivo que tem aproximadamente 7 MB de dados com os nomes mais comuns de bebês. Ele é fornecido pela Administração da Previdência Social dos EUA.
Para mais informações sobre os dados, consulte as Informações básicas sobre nomes populares da Administração da Previdência Social.
Faça o download dos dados da Administração de Previdência Social dos EUA abrindo o URL a seguir em uma nova guia do navegador:
https://www.ssa.gov/OACT/babynames/names.zipExtraia o arquivo.
Para mais informações sobre o esquema do conjunto de dados, consulte o arquivo
NationalReadMe.pdfextraído.Para conferir os dados, abra o arquivo
yob2024.txt. Esse arquivo contém valores separados por vírgula para nome, sexo atribuído no nascimento e número de crianças com esse nome. O arquivo não tem linha de cabeçalho.Mova o arquivo para o diretório de trabalho.
Se você estiver trabalhando no Cloud Shell, clique em
Mais Fazer upload, clique em Escolher arquivos, escolha o arquivoyob2024.txte clique em Fazer upload.Se estiver trabalhando em um shell local, copie ou mova o arquivo
yob2024.txtpara o diretório em que você está executando a ferramenta bq.
crie um conjunto de dados
Se você iniciou o Cloud Shell na documentação, insira o comando a seguir para definir o ID do projeto. Assim, você não precisa especificar o ID do projeto em cada comando da CLI.
gcloud config set project PROJECT_IDSubstitua PROJECT_ID pela ID do seu projeto.
Insira o comando a seguir para criar um conjunto de dados chamado
babynames:bq mk --dataset babynamesO resultado será semelhante ao seguinte:
Dataset 'babynames' successfully created.Verifique se o conjunto de dados
babynamesagora aparece no seu projeto:bq ls --datasets=trueO resultado será assim:
datasetId ------------- babynames
Carregar dados em uma tabela
No conjunto de dados
babynames, carregue o arquivo de origemyob2024.txtem uma nova tabela chamadanames2024:bq load babynames.names2024 yob2024.txt name:string,assigned_sex_at_birth:string,count:integerO resultado será semelhante ao seguinte:
Upload complete. Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONEConfirme se a tabela
names2024agora aparece no conjunto de dadosbabynames:bq ls --format=pretty babynamesO resultado será semelhante ao seguinte: Algumas colunas são omitidas para simplificar o resultado.
+-----------+-------+ | tableId | Type | +-----------+-------+ | names2024 | TABLE | +-----------+-------+Confirme se o esquema da nova tabela
names2024éname: string,assigned_sex_at_birth: stringecount: integer:bq show babynames.names2024O resultado será semelhante ao seguinte: Algumas colunas são omitidas para simplificar a saída.
Last modified Schema Total Rows Total Bytes ----------------- ------------------------------- ------------ ------------ 14 Mar 17:16:45 |- name: string 31904 607494 |- assigned_sex_at_birth: string |- count: integer
Consultar os dados da tabela
Determine os nomes de meninas mais comuns nos dados:
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "F" ORDER BY count DESC LIMIT 5'O resultado será semelhante ao seguinte:
+-----------+-------+ | name | count | +-----------+-------+ | Olivia | 14718 | | Emma | 13485 | | Amelia | 12740 | | Charlotte | 12552 | | Mia | 12113 | +-----------+-------+Determine os nomes de meninos menos comuns nos dados:
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "M" ORDER BY count ASC LIMIT 5'O resultado será semelhante ao seguinte:
+---------+-------+ | name | count | +---------+-------+ | Aaran | 5 | | Aadiv | 5 | | Aadarsh | 5 | | Aarash | 5 | | Aadrik | 5 | +---------+-------+A contagem mínima é 5, porque os nomes com menos de 5 ocorrências não são exibidos nos dados de origem.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud e os recursos.
Excluir o projeto
Se você usou o sandbox do BigQuery para consultar o conjunto de dados público, o faturamento não está ativado para seu projeto, e não é necessário excluir o projeto.O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Excluir os recursos
Se você usou um projeto atual, exclua os recursos criados:
Exclua o conjunto de dados
babynames:bq rm --recursive=true babynamesA flag
--recursiveexclui todas as tabelas do conjunto de dados, incluindo a tabelanames2024.O resultado será semelhante ao seguinte:
rm: remove dataset 'myproject:babynames'? (y/N)Para confirmar o comando de exclusão, insira
y.
A seguir
- Saiba mais sobre como usar a ferramenta bq.
- Saiba mais sobre o sandbox do BigQuery.
- Saiba como carregar dados no BigQuery.
- Saiba como consultar dados no BigQuery.