Carregar e consultar dados com a ferramenta bq

Aprenda a criar um conjunto de dados, carregar dados de amostra e consultar tabelas com a ferramenta de linha de comando bq.


Para seguir as instruções passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, 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.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  4. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  5. Se você não ativar o faturamento do projeto do Google Cloud usado neste tutorial, será necessário trabalhar com dados no sandbox do BigQuery. O sandbox do BigQuery ensina você a usar o BigQuery com um conjunto limitado de recursos sem custos financeiros.

  6. Verifique se a API BigQuery está ativada.

    Ativar a API

    Se você criou um novo projeto, a API BigQuery será ativada automaticamente.

  7. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do 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.

Fazer o download do arquivo de dados públicos de origem

  1. Fazer o download do arquivo ZIP com nomes de bebês.
  2. Extraia o arquivo ZIP. Ele contém um arquivo chamado NationalReadMe.pdf que descreve o esquema do conjunto de dados. Saiba mais sobre o conjunto de dados com nomes de bebês.
  3. Abra o arquivo yob2010.txt. Trata-se de um arquivo de valores separados por vírgulas (CSV) com três colunas: nome, gênero atribuído ao nascer e número de crianças com esse nome. O arquivo não tem linha de cabeçalho.
  4. Mova o arquivo para o diretório de trabalho.
    • Se você estiver trabalhando no Cloud Shell, clique em Mais >Fazer upload, clique emEscolher arquivos, escolha o arquivo yob2010.txt e clique em Fazer upload.
    • Se você estiver trabalhando em um shell local, copie ou mova o arquivo yob2010.txt para o diretório em que está executando a ferramenta bq.

crie um conjunto de dados

  1. Crie um conjunto de dados chamado babynames:

    bq mk babynames
    

    O resultado será assim:

    Dataset 'myproject:babynames' successfully created.
    

    O nome do conjunto de dados pode ter até 1.024 caracteres e ser composto de A-Z, a-z, 0-9 e sublinhado. O nome não pode começar com um número ou sublinhado e não pode ter espaços.

  2. Verifique se o conjunto de dados babynames agora aparece no seu projeto:

    bq ls
    

    O resultado será assim:

      datasetId
    -------------
      babynames
    

Carregar dados em uma tabela

  1. No conjunto de dados babynames, carregue o arquivo de origem yob2010.txt em uma nova tabela chamada names2010:

    bq load babynames.names2010 yob2010.txt name:string,assigned_sex_at_birth:string,count:integer
    

    O resultado será assim:

    Upload complete.
    Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONE
    

    Por padrão, quando você carrega dados no BigQuery, espera-se que eles estejam no formato UTF-8. Se você tiver dados na codificação ISO-8859-1 (ou Latin-1) e tiver problemas com eles, instrua o BigQuery a tratar seus dados como Latin-1 usando bq load -E=ISO-8859-1. Para ver mais informações, consulte Codificação.

  2. Confirme se a tabela names2010 agora aparece no conjunto de dados babynames:

    bq ls babynames
    

    A resposta será semelhante a esta: Algumas colunas são omitidas para simplificar a saída.

      tableId     Type
    ----------- ---------
     names2010    TABLE
    
  3. Confirme se o esquema da nova tabela names2010 é name: string, assigned_sex_at_birth: string e count: integer:

    bq show babynames.names2010
    

    A resposta será semelhante a esta: Algumas colunas são omitidas para simplificar a saída.

      Last modified        Schema                      Total Rows   Total Bytes
    ----------------- ------------------------------- ------------ ------------
    14 Mar 17:16:45   |- name: string                    34089       654791
                      |- assigned_sex_at_birth: string
                      |- count: integer
    

Consultar os dados da tabela

  1. Determine os nomes mais comuns de meninas nos dados:

    bq query --use_legacy_sql=false \
        'SELECT
          name,
          count
        FROM
          `babynames.names2010`
        WHERE
          assigned_sex_at_birth = "F"
        ORDER BY
          count DESC
        LIMIT 5;'
    

    O resultado será assim:

    +----------+-------+
    |   name   | count |
    +----------+-------+
    | Isabella | 22925 |
    | Sophia   | 20648 |
    | Emma     | 17354 |
    | Olivia   | 17030 |
    | Ava      | 15436 |
    +----------+-------+
    
  2. Determine os nomes de meninos menos comuns nos dados:

    bq query --use_legacy_sql=false \
        'SELECT
          name,
          count
        FROM
          `babynames.names2010`
        WHERE
          assigned_sex_at_birth = "M"
        ORDER BY
          count ASC
        LIMIT 5;'
    

    O resultado será assim:

    +----------+-------+
    |   name   | count |
    +----------+-------+
    | Aamarion |     5 |
    | Aarian   |     5 |
    | Aaqib    |     5 |
    | Aaidan   |     5 |
    | Aadhavan |     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 sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses 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.

O jeito mais fácil de evitar o faturamentos é excluindo o projeto criado para este tutorial.

Para excluir o projeto, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. 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:

  1. Excluir o conjunto de dados babynames:

    bq rm --recursive=true babynames
    

    A sinalização --recursive exclui todas as tabelas do conjunto de dados, incluindo a tabela names2010.

    O resultado será assim:

    rm: remove dataset 'myproject:babynames'? (y/N)
    
  2. Para confirmar o comando de exclusão, insira y.

A seguir