了解如何使用Google BigQuery访问和查询数据。带有Python和R中的示例

哈Ha!



我们最近出版了有关使用Google BigQuery数据仓库的详细今天,我们决定再次简要地讨论这个主题,并发布一个小案例,介绍如何在Python和R中查询BigQuery数据。



如果您对使用BigQuery进行机器学习的出版物感兴趣,请在评论中告知我们。







总览



在本文中,我们将研究如何使用Python和R加载Google BigQuery数据,然后我们将讨论查询数据以获取有用的见解。我们将使用Google Cloud BigQuery连接到BigQuery Python,而bigrquery将在R中执行相同的操作。



我们还将讨论使用Python / R操作BigQuery数据的两个阶段:



  • Google BigQuery连接性和数据访问
  • 用Python / R查询数据


本文假定您的所有用户数据都存储在Google BigQuery中。



蟒蛇



Python是用于处理数据的最流行的通用语言之一。它具有灵活性和易用性,因此受到关注和需求。在数据科学领域,它拥有与第三方系统交互的各种库和工具。



使用Python连接到Google BigQuery



要使用Python查询Google BigQuery数据,您需要将Python客户端连接到BigQuery实例。这会将云客户端库用于Google BigQuery API。还有使用Python连接到BigQuery的替代解决方案。例如,tylertreat的BigQuery-Python很棒。



我们将使用稳定且得到Google正式支持的Google Cloud BigQuery库。



假设您已经设置了Python开发环境。

要安装该库,请在命令行中运行以下命令:



pip install --upgrade google-cloud-bigquery


接下来,我们将客户端连接到数据库。为此,您需要下载一个包含BigQuery服务凭据的JSON文件。如果您没有,请按以下步骤创建一个。接下来,将此JSON文件下载到本地计算机。



现在我们已经完成了所有设置,接下来我们将初始化连接。以下Python代码用于此目的:



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)


在上面的代码段中,您还需要使用键指定project_idJSON文件位置,将' path/to/file.json'替换为保存在本地计算机上的JSON文件的实际正确路径。



在Google BigQuery中,项目是顶级容器,并提供对所有数据集的默认访问控制。



使用Python查询BigQuery数据



现在,我们的BigQuery客户端已经设置好并可以使用,我们可以查询很多BigQuery数据。



为此,使用查询方法,该方法将查询作业放入BigQuery队列中。然后,请求将异步执行-这意味着我们不指定任何延迟,并且客户端等待作业完成。一旦发生这种情况,该方法将返回一个Query_Job包含结果的实例



您可以在此处的官方文档中了解有关此方法如何工作的更多信息



感兴趣的Python代码如下所示:



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

	results = query_job.result() #   .


请注意,以上查询默认为标准SQL语法。如果要使用旧版SQL,则代码将如下所示:



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



R语言是Python的一种流行替代方法,并在数据科学中得到积极使用。如果您对数据的详细和有条理的统计分析感兴趣,那么可以与R竞争的语言很少。



当与Google BigQuery一起使用时,R还提供了可靠且易于使用的库来查询和处理数据。在这里,我们将使用RStudio研究总监Hadley Wickham创建和维护bigrquery



这假定您已经在R中设置了开发环境。如果没有,请使用本指南来设置RStudio。



使用R连接到Google BigQuery



要安装bigrquery,请从R控制台运行以下命令:



install.packages(“bigrquery”)


就这么简单!我们准备出发了。



与Python一样,访问Google Cloud Services需要获得R客户端授权。如下bigrquery文档所述,按照R控制台上的提示打开授权URL,然后将代码复制到控制台。



请注意:此授权只需要执行一次。所有后续请求将自动更新访问凭据。



使用R查询BigQuery数据



要在R中查询BigQuery数据,请按照以下步骤操作:



  • 我们将使用Python在Google Cloud控制台中指示项目ID。
  • 让我们形成一个查询字符串,通过它我们可以请求数据。
  • 我们query_exec用项目ID和查询字符串来调用它


这是完成所有这些操作的代码:



#  
	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)


与Python一样,您可以运行用旧版SQL编写的查询。您还可以将值更改useLegacySqlTRUE你的功能query_exec



结论



因此,我们研究了使用Google BigQuery中保存的数据(用Python和R进行引用)是多么容易和简单。



在这两种语言中,基于以这种方式处理的数据构建统计模型并不难,并在不同的目的:了解用户在应用程序中的行为方式,预测客户流失率等。



All Articles