A API BigQuery Storage fornece acesso rápido aos dados armazenados no BigQuery. Use essa API para fazer download de dados armazenados no BigQuery para utilização em ferramentas de análise, como a biblioteca pandas para Python (em inglês).
Objetivos
Neste tutorial, você:
- fará o download dos resultados das consultas para um DataFrame do pandas usando a API BigQuery Storage a partir dos comandos mágicos do IPython para BigQuery em um notebook Jupyter;
- fará o download dos resultados da consulta para um DataFrame do pandas usando a biblioteca de cliente do BigQuery para Python;
- fará o download dos dados da tabela do BigQuery para um DataFrame do pandas usando a biblioteca de cliente do BigQuery para Python;
- fará o download dos dados da tabela do BigQuery para um DataFrame do pandas usando a biblioteca de cliente da API BigQuery Storage para Python.
Custos
O BigQuery é um produto pago. Você paga pelas consultas que executa nele. O primeiro 1 TB de dados de consulta processados por mês é gratuito. Para mais informações, consulte a página Preços do BigQuery.
A API BigQuery Storage é um produto pago. Você paga pelos dados da tabela que verifica durante o download de um DataFrame. Para mais informações, consulte a página Preços do BigQuery.
Antes de começar
Antes de começar este tutorial, use o Console do Google Cloud Platform para criar ou selecionar um projeto e ativar o faturamento.
-
Faça login na sua Conta do Google.
Se você ainda não tiver uma, inscreva-se.
-
Selecione ou crie um projeto do Google Cloud Platform.
-
Verifique se o faturamento foi ativado no projeto do Google Cloud Platform.
- O BigQuery é ativado automaticamente em novos projetos. Para ativar o BigQuery em um projeto pré-existente, Ativar BigQuery, BigQuery Storage API APIs.
- Configure um ambiente de desenvolvimento para Python
Configurar Python - Configure a autenticação para seu ambiente de desenvolvimento.
Configurar a autenticação
Antes de terminar este tutorial, também é necessário se familiarizar com os comandos mágicos do IPython para BigQuery (em inglês), a biblioteca de cliente do BigQuery e como usar a biblioteca de cliente com pandas (em inglês).
Instalar as bibliotecas de cliente
Instale a biblioteca de cliente Python para BigQuery versão 1.9.0 (em inglês) ou superior e a biblioteca de cliente Python da API BigQuery Storage.
PIP
Instale os pacotes google-cloud-bigquery
e google-cloud-bigquery-storage
(páginas em inglês).
pip install --upgrade google-cloud-bigquery[bqstorage,pandas]
Conda
Instale os pacotes Conda do BigQuery e da API BigQuery Storage (páginas em inglês) usando o canal conda-forge
gerenciado pela comunidade.
conda install -c conda-forge google-cloud-bigquery \
google-cloud-bigquery-storage \
pandas \
pyarrow
Fazer download dos resultados da consulta usando os comandos mágicos do IPython para BigQuery
Inicie o servidor de notebook do Jupyter e crie um notebook. Carregue os comandos mágicos do IPython para BigQuery usando o comando mágico %load_ext
(em inglês).
%load_ext google.cloud.bigquery
Faça download dos resultados pesados de consulta com a API BigQuery Storage adicionando o argumento --use_bq_storage_api
aos comandos mágicos %%bigquery
.
Quando esse argumento é usado com resultados leves de consulta, os comandos mágicos utilizam a API do BigQuery para fazer o download dos resultados.
Defina a propriedade context.use_bqstorage_api
(em inglês) como True
para usar a API BigQuery Storage por padrão.
Depois de definir a propriedade context.use_bqstorage_api
, execute os comandos mágicos %%bigquery
sem argumentos extras para usar a API BigQuery Storage e fazer o download de resultados pesados.
Usar as bibliotecas de cliente do Python
Criar clientes do Python
Use o código a seguir para criar um objeto BigQuery Client
e um BigQueryStorageClient
(páginas em inglês).
Use a biblioteca para Python google-auth para criar credenciais com escopo suficiente para as duas APIs. Transmita um objeto de credenciais para cada construtor para evitar autenticar duas vezes.
Fazer download dos resultados da consulta usando a biblioteca de cliente do BigQuery
Execute uma consulta usando o método query
(em inglês). Chame o método to_dataframe
(em inglês) para aguardar a conclusão da consulta e faça o download dos resultados usando a API BigQuery Storage.
Fazer o download dos dados da tabela usando a biblioteca de cliente do BigQuery
Faça o download de todas as linhas de uma tabela usando o método list_rows
, que retorna um objeto RowIterator
(páginas em inglês). Faça o download de linhas usando a API BigQuery Storage. Para isso, chame o método to_dataframe
(em inglês) com o argumento bqstorage_client
.
Fazer o download dos dados da tabela usando a biblioteca de cliente da API BigQuery Storage
Use a biblioteca de cliente da API BigQuery Storage diretamente para ter um controle refinado sobre filtros e paralelismo. Quando apenas filtros de linha simples são necessários, uma sessão de leitura da API BigQuery Storage pode ser usada no lugar de uma consulta.
Crie um objeto TableReference com a tabela que quiser ler. Crie um objeto TableReadOptions para selecionar colunas ou linhas de filtro. Crie uma sessão de leitura usando o método create_read_session
(em inglês).
Se houver algum stream na sessão, use o método read_rows
(em inglês) para ler as linhas do stream. Chame o método to_dataframe
(em inglês) no leitor para gravar todo o stream em um DataFrame do pandas. Para um melhor desempenho, leia a partir de vários streams em paralelo. Para simplificar, este exemplo de código lê apenas a partir de um único stream.
Código-fonte para todos os exemplos
Veja o código fonte completo para todos os exemplos de biblioteca do cliente.
Limpeza
Para evitar que os recursos usados neste tutorial sejam cobrados na conta do Google Cloud Platform, faça o seguinte:
Exclua o projeto. Você não criou nenhum recurso do BigQuery neste tutorial, mas a exclusão do projeto removerá todos os outros recursos que você criou.- No Console do GCP, acesse a página Projetos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir delete.
- Na caixa de diálogo, digite o código do projeto e clique em Encerrar para excluí-lo.
A seguir
- Conheça a referência das bibliotecas de cliente para Python: