我们最近出版了有关使用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_id
JSON文件的位置,将' 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编写的查询。您还可以将值更改
useLegacySql
到TRUE
你的功能query_exec
。
结论
因此,我们研究了使用Google BigQuery中保存的数据(用Python和R进行引用)是多么容易和简单。
在这两种语言中,基于以这种方式处理的数据构建统计模型并不难,并在不同的目的:了解用户在应用程序中的行为方式,预测客户流失率等。