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. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

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. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

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