Aprenda a acessar e consultar dados usando o Google BigQuery. Com exemplos em Python e R

Olá, Habr!



Nós recentemente publicou um detalhado livro sobre como trabalhar com o data warehouse Google BigQuery . Hoje decidimos tocar brevemente neste tópico novamente e publicar um pequeno caso sobre como consultar dados do BigQuery em Python e R.



Deixe-nos saber nos comentários se você estiver interessado em uma publicação sobre aprendizado de máquina usando o BigQuery







Visão geral



Neste artigo, veremos como carregar dados do Google BigQuery usando Python e R e, em seguida, falaremos sobre como consultar os dados para obter insights úteis. Usaremos a biblioteca Google Cloud BigQuery para se conectar ao BigQuery Python e a biblioteca bigrquery para fazer o mesmo em R.



Também discutiremos dois estágios da manipulação de dados do BigQuery usando Python / R:



  • Conectividade do Google BigQuery e acesso a dados
  • Consulta de dados com Python / R


Este artigo pressupõe que todos os seus dados de usuário estão armazenados no Google BigQuery.



Pitão



Python é uma das linguagens de propósito geral mais populares para manipulação de dados. Possui atenção e demanda por sua flexibilidade e facilidade de uso, e em ciência de dados possui uma grande variedade de bibliotecas e ferramentas para interação com sistemas de terceiros.



Conexão ao Google BigQuery com Python



Para consultar os dados do Google BigQuery usando Python, você precisa conectar o cliente Python à sua instância do BigQuery. Isso usa a biblioteca de cliente da nuvem para a API do Google BigQuery. Existem também soluções alternativas para se conectar ao BigQuery usando Python; por exemplo, a biblioteca BigQuery-Python de tylertreat é ótima.



Estaremos trabalhando com a biblioteca Google Cloud BigQuery, pois ela é estável e oficialmente compatível com o Google.



Isso pressupõe que você já tenha um ambiente de desenvolvimento Python configurado.

Para instalar a biblioteca, execute o seguinte comando na linha de comando:



pip install --upgrade google-cloud-bigquery


Em seguida, conectamos o cliente ao banco de dados. Para fazer isso, você precisa baixar um arquivo JSON contendo credenciais para o serviço BigQuery. Se você não tiver um, veja como criar um. Em seguida, baixe esse arquivo JSON para sua máquina local.



Agora que temos tudo configurado, procedemos à inicialização da conexão. O seguinte código Python é usado para isso:



rom google.cloud import bigquery
	from google.oauth2 import service_account
	credentials = service_account.Credentials.from_service_account_file(
	'path/to/file.json')
	

	project_id = 'my-bq'
	client = bigquery.Client(credentials= credentials,project=project_id)


No snippet acima, você também precisará especificar a project_idlocalização do arquivo JSON com a chave, substituindo ' path/to/file.json' pelo caminho realmente correto para o arquivo JSON salvo na máquina local.



No Google BigQuery, um projeto é um contêiner de nível superior e fornece controle de acesso padrão sobre todos os conjuntos de dados.



Consulta de dados do BigQuery com Python



Agora que nosso cliente do BigQuery está configurado e pronto para uso, podemos consultar muitos dados do BigQuery.



Isso usa um método de consulta que coloca o trabalho de consulta em uma fila do BigQuery. As solicitações são executadas de forma assíncrona - isso significa que não especificamos atrasos e o cliente espera que o trabalho seja concluído. Assim que isso acontecer, o método retorna uma instância Query_Jobcontendo os resultados.



Você pode ler mais sobre como esse método funciona na documentação oficial aqui .



Esta é a aparência do código Python de interesse:



query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000 """)
	

	results = query_job.result() #   .


Observe que os padrões da consulta acima são a sintaxe SQL padrão. Se você quiser usar SQL legado, o código será assim:



job_config.use_legacy_sql = True
	query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000""", job_config = job_config)
	

	results = query_job.result() #   .


R



A linguagem R é uma alternativa popular ao Python e é usada ativamente na ciência de dados. Se você estiver interessado em análises estatísticas detalhadas e metódicas de dados, existem poucas linguagens que podem competir com R.



Ao trabalhar com o Google BigQuery, a linguagem R também oferece uma biblioteca confiável e fácil de usar para consultar e manipular dados. Aqui estaremos trabalhando com a biblioteca bigrquery criada e mantida por Hadley Wickham, diretor de pesquisa da RStudio.



Isso pressupõe que você já configurou seu ambiente de desenvolvimento em R. Caso contrário, use este guia para configurar o RStudio.



Conecte-se ao Google BigQuery com R



Para instalar bigrquery, execute o seguinte comando no console R:



install.packages(“bigrquery”)


É simples assim! Estamos prontos para ir.



Assim como no Python, nossa autorização de cliente R é necessária para acessar os serviços do Google Cloud. Como segue na documentação do bigrquery, siga o prompt do console R para abrir a URL de login e, em seguida, copie o código para o console.



Observação: esta autorização precisa ser feita apenas uma vez. Todas as solicitações subsequentes atualizarão automaticamente as credenciais de acesso.



Consultando dados do BigQuery com R



Para consultar dados do BigQuery em R, siga estas etapas:



  • Vamos indicar o ID do projeto no console do Google Cloud, como foi feito em Python.
  • Vamos formar uma string de consulta com a qual solicitaremos dados.
  • Vamos chamá-lo query_execcom nosso ID de projeto e string de consulta.


Aqui está o código para fazer tudo isso:



#  
	library(bigrquery)
	

	#   ID  
	project_id <- "your-project-id" 
	

	#  
	sql_string <- "SELECT * FROM dataset.my_table LIMIT 1000"
	

	#     
	query_results <- query_exec(sql_string, project = project_id, useLegacySql = FALSE)


Assim como no Python, você pode executar consultas escritas em SQL legado. Você também pode alterar o valor useLegacySqlpara TRUEem sua função query_exec.



Conclusão



Então, vimos como é fácil e simples trabalhar com dados salvos no Google BigQuery, referindo-se a eles em Python e R.



Nessas duas linguagens, não é difícil construir um modelo estatístico baseado em dados processados ​​desta forma, e objetivos diferentes: entender como o usuário se comporta no aplicativo, prever a taxa de desligamento, etc.



All Articles