A API BigQuery Storage fornece acesso rápido aos dados armazenados no BigQuery. Use essa API para fazer o download de dados armazenados no BigQuery para utilização em ferramentas de análise, como a biblioteca pandas para Python.
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 para criar ou selecionar um projeto e ativar o faturamento.
- 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.
-
No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.
- O BigQuery é ativado automaticamente em novos projetos. Para ativar o BigQuery em um projeto preexistente, Ative as APIs BigQuery, BigQuery Storage API.
- 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
.
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 do Jupyter Notebook e crie um notebook. Carregue os comandos mágicos do IPython para BigQuery usando o comando mágico %load_ext
.
%load_ext google.cloud.bigquery
Faça o download de resultados de consulta extensos com a API BigQuery Storage adicionando o argumento --use_bq_storage_api
aos comandos mágicos %%bigquery
.
Quando esse argumento é usado com pequenos resultados de consulta, os comandos mágicos utilizam a API BigQuery para fazer o download dos resultados.
Defina a propriedade context.use_bqstorage_api
como True
para usar a API BigQuery Storage por padrão.
Depois de definir a propriedade context.use_bqstorage_api
, execute o comando mágico %%bigquery
sem outros argumentos para usar a API BigQuery Storage para fazer o download de grandes resultados.
Usar as bibliotecas de cliente do Python
Criar clientes do Python
Use o código a seguir para construir um objeto BigQuery Client
e um BigQueryStorageClient
.
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 não precisar fazer a autenticação duas vezes.
Fazer download dos resultados da consulta usando a biblioteca de cliente do BigQuery
Execute uma consulta usando o método query
. Chame o método to_dataframe
para aguardar a conclusão da consulta e fazer 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 em uma tabela usando o método list_rows
, que retorna um objeto RowIterator
. Faça o download das linhas usando a API BigQuery Storage chamando o método to_dataframe
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 filtrar linhas. Crie uma sessão de leitura usando o método
create_read_session
.
Se houver algum stream na sessão, comece a ler as linhas a partir dele usando o método read_rows
. Chame o método to_dataframe
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 de cliente.
Limpeza
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
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 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.
A seguir
- Conheça a referência das bibliotecas de cliente para Python —