Guia de início rápido para usar a ferramenta de linha de comando bq

Nesta página, você aprenderá a usar a ferramenta de linha de comando bq para executar consultas, carregar e exportar dados.

Antes de começar

Use o console do Cloud Platform para criar ou selecionar um projeto e ativar o faturamento. Além disso, instale o Google Cloud SDK.

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. Selecione ou crie um projeto do GCP.

    Acessar a página Gerenciar recursos

  3. Verifique se o faturamento foi ativado para o projeto.

    Saiba como ativar o faturamento

  4. Instale e inicialize o SDK do Cloud.
  5. O BigQuery é ativado automaticamente em novos projetos. Para ativá-lo em um projeto existente, acesse: Ativar BigQuery API.

    Ativar a API

Examinar uma tabela

No BigQuery, há várias tabelas de amostra em que você pode executar consultas. Neste guia de início rápido, você executará algumas consultas na tabela Shakespeare, onde há uma entrada para cada palavra das peças do autor.

Para examinar o esquema de uma tabela específica, execute:

bq show projectId:datasetId.tableId

onde os IDs do projeto e do conjunto de dados podem ser omitidos caso eles sejam valores padrão para a ferramenta bq. Neste exemplo, a tabela shakespeare é examinada no conjunto de dados samples:

bq show publicdata:samples.shakespeare

Saída:

Table publicdata:samples.shakespeare

   Last modified                  Schema                 Total Rows   Total Bytes   Expiration
 ----------------- ------------------------------------ ------------ ------------- ------------
  26 Aug 14:43:49   |- word: string (required)           164656       6432064
                    |- word_count: integer (required)
                    |- corpus: string (required)
                    |- corpus_date: integer (required)

Executar o comando de ajuda

Use bq help para conseguir informações detalhadas sobre a ferramenta de linha de comando bq.

bq help

Inclua um nome de comando para receber informações sobre ele. Por exemplo, recupere informações sobre o query com a seguinte chamada ao comando bq help:

bq help query

Executar uma consulta

Execute uma consulta para saber quantas vezes a substring "raisin" aparece nas obras de Shakespeare.

Para executar uma consulta, execute o comando bq query "[SQL_STATEMENT]".

  • Dentro do [SQL_STATEMENT], evite o uso das aspas simples e use \.

  • Uma outra opção é usar um tipo diferente de aspas (", em vez de ').

No exemplo a seguir, você verá quantas vezes "raisin" aparece nas obras de Shakespeare. Na consulta, as letras maiúsculas são diferenciadas das minúsculas. Essa é a configuração padrão em comparações de strings, a menos que você use o recurso IGNORE CASE do SQL.

bq query "SELECT word, SUM(word_count) as count FROM publicdata:samples.shakespeare WHERE word CONTAINS 'raisin' GROUP BY word"

Saída:

Waiting on job_dcda37c0bbed4c669b04dfd567859b90 ... (0s) Current status: DONE
+---------------+-------+
|     word      | count |
+---------------+-------+
| Praising      |   4   |
| raising       |   5   |
| raisins       |   1   |
| praising      |   8   |
| dispraising   |   2   |
| dispraisingly |   1   |
+---------------+-------+

Quando você procura uma palavra que não aparece nas obras de Shakespeare, nenhum resultado é retornado. Por exemplo, a busca por "huzzah" não retorna nada.

bq query "SELECT word FROM publicdata:samples.shakespeare WHERE word = 'huzzah' IGNORE CASE"

Saída:

Waiting on job_e19 ... (4s) Current status: DONE
$

Criar uma tabela

Agora, crie a sua tabela. Toda tabela precisa estar dentro de um conjunto de dados, ou seja, um grupo de tabelas. Cada conjunto é atribuído a apenas um projeto.

Etapa 1: fazer o download dos dados personalizados

Nos dados personalizados, há aproximadamente 7 MB de nomes populares de bebês que foram fornecidos pelo departamento de Administração do Seguro Social dos EUA.

  1. Faça o download do arquivo baby_names.zip.

  2. Descompacte o arquivo no seu disco rígido.

    O arquivo zip contém um arquivo do tipo "leia-me" que descreve o esquema do conjunto de dados. Saiba mais sobre o conjunto de dados.

  3. Abra o arquivo yob2010.txt para ver o conteúdo dele. Trata-se de um arquivo com valores separados por vírgulas (CSV, na sigla em inglês) com três colunas: nome, sexo (M ou F) e número de crianças com esse nome. O arquivo não tem linha de cabeçalho.

  4. Para executar os comandos bq, copie ou mova o arquivo yob2010.txt para o diretório que você está usando.

Etapa 2: criar um novo conjunto de dados

  1. Use o comando bq ls para ver se, no seu projeto padrão, há algum conjunto de dados.

    bq ls

    Exemplo de saída:

      datasetId
     -------------
      olddataset
  2. Execute bq ls novamente para listar os conjuntos de dados em um projeto específico, incluindo o ID do projeto seguido por dois-pontos (:). No exemplo a seguir, são listados os conjuntos de dados do projeto publicdata.
    bq ls publicdata:

    Saída:

      datasetId
     -----------
      samples
  3. Use o comando bq mk para criar um conjunto de dados chamado babynames no seu projeto padrão. Para o nome desse conjunto, há um limite de 1.024 caracteres. Use letras de A a Z, maiúsculas ou minúsculas, números de 0 a 9 e sublinhados, mas o nome não pode começar com número ou sublinhado nem incluir espaços.
    bq mk babynames

    Exemplo de saída:

    Dataset 'myprojectid:babynames' successfully created.
  4. Execute bq ls para verificar se o conjunto de dados está sendo exibido como parte do projeto padrão:
    bq ls

    Exemplo de saída:

      datasetId
     -------------
      olddataset
      babynames

Etapa 3: carregar a tabela

Com o comando bq load, você cria ou atualiza uma tabela e carrega os dados dela em uma só etapa.

  1. Execute o comando bq load para carregar o arquivo de origem em uma nova tabela chamada names2010 no conjunto de dados babynames que você criou anteriormente. Por padrão, ele é executado de maneira síncrona, e o processo leva apenas alguns segundos para ser concluído.

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

    Argumentos do comando bq load:

    • datasetID: babynames
    • tableID: names2010
    • source: yob2010.txt: se necessário, inclua o caminho completo para o arquivo
    • esquema: name:string,gender:string,count:integer

    Exemplo de saída:

    Waiting on job_4f0c0878f6184119abfdae05f5194e65 ... (35s) Current status: DONE
  2. Execute bq ls para verificar se a tabela está sendo exibida no conjunto de dados.

    bq ls babynames

    Saída:

       tableId    Type
     ----------- -------
      names2010   TABLE
    
  3. Execute bq show para ver o esquema:

    bq show babynames.names2010

    Saída:

    Table myprojectid:babynames.names2010
    
       Last modified         Schema         Total Rows   Total Bytes   Expiration
     ----------------- ------------------- ------------ ------------- ------------
      13 Mar 15:31:00   |- name: string     34041        653855
                        |- gender: string
                        |- count: integer
    

Por padrão, quando você carrega dados no BigQuery, espera-se que eles estejam no formato UTF-8. Caso você tenha dados com a codificação ISO-8859-1 (ou Latin-1) e encontre problemas, use a sinalização -E para que o BigQuery trate os dados como Latin-1 . Para mais informações, consulte Codificações de caracteres.

Etapa 5: executar consultas

  1. Execute o seguinte comando para retornar os nomes mais populares de meninas:

    bq query "SELECT name,count FROM babynames.names2010 WHERE gender = 'F' ORDER BY count DESC LIMIT 5"

    Saída:

    Waiting on job_58c0f5ca52764ef1902eba611b71c651 ... (0s) Current status: DONE
    +----------+-------+
    |   name   | COUNT |
    +----------+-------+
    | Isabella | 22731 |
    | Sophia   | 20477 |
    | Emma     | 17179 |
    | Olivia   | 16860 |
    | Ava      | 15300 |
    +----------+-------+
    
  2. Execute o comando a seguir para ver os nomes mais incomuns de meninos. A contagem mínima é 5, porque os nomes com menos de 5 ocorrências não são exibidos nos dados de origem.
    bq query "SELECT name,count FROM babynames.names2010 WHERE gender = 'M' ORDER BY count ASC LIMIT 5"

    Saída:

    Waiting on job_556ba2e5aad340a7b2818c3e3280b7a3 ... (1s) Current status: DONE
    +----------+-------+
    |   name   | COUNT |
    +----------+-------+
    | Aarian   |     5 |
    | Aaidan   |     5 |
    | Aamarion |     5 |
    | Aadhavan |     5 |
    | Aaqib    |     5 |
    +----------+-------+
    

Fazer limpeza

Para evitar incorrer em cobranças na sua conta do GCP pelos recursos usados neste início rápido:

  1. Execute o comando bq rm para remover o conjunto de dados babynames. Use a sinalização -r para excluir todas as tabelas do conjunto de dados, inclusive a names2010.

    bq rm -r babynames
    
  2. Confirme o comando de exclusão digitando y.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.