借助关联工作表,您可以直接在 Google 表格中分析数百万亿字节的数据。您可以将电子表格与 BigQuery 数据仓库或 Looker 相关联,并使用熟悉的 Google 表格工具(例如数据透视表、图表和公式)进行分析。
管理 BigQuery 数据源
本部分将使用 BigQuery Shakespeare
公共数据集来展示如何使用关联工作表。该数据集包含以下信息:
字段 | 类型 | 说明 |
---|---|---|
字词 | STRING |
从语料库中提取的单个唯一字词(空格作为分隔符)。 |
word_count | INTEGER |
此字词在此语料库中出现的次数。 |
corpus | STRING |
此字词的来源作品。 |
corpus_date | INTEGER |
此语料库的发布年份。 |
如果您的应用请求任何 BigQuery 关联工作表数据,除了常规 Google 表格 API 请求所需的其他范围之外,还必须提供授予 bigquery.readonly
范围的 OAuth 2.0 令牌。如需了解详情,请参阅选择 Google Sheets API 范围。
数据源用于指定数据所在的外部位置。然后,将数据源连接到电子表格。
添加 BigQuery 数据源
如需添加数据源,请使用 spreadsheets.batchUpdate
方法提供 AddDataSourceRequest
。请求正文应指定类型为 DataSource
对象的 dataSource
字段。
"addDataSource":{
"dataSource":{
"spec":{
"bigQuery":{
"projectId":"PROJECT_ID",
"tableSpec":{
"tableProjectId":"bigquery-public-data",
"datasetId":"samples",
"tableId":"shakespeare"
}
}
}
}
}
将 PROJECT_ID 替换为有效的 Google Cloud 项目 ID。
创建数据源后,系统会创建关联的 DATA_SOURCE
工作表,以提供最多 500 行的预览。预览功能不会立即推出。系统会异步触发执行,以导入 BigQuery 数据。
AddDataSourceResponse
包含以下字段:
dataSource
:创建的DataSource
对象。dataSourceId
是电子表格级范围的唯一 ID。系统会填充并引用该映射,以便从数据源创建每个DataSource
对象。dataExecutionStatus
:将 BigQuery 数据导入预览工作表的执行状态。如需了解详情,请参阅数据执行状态部分。
更新或删除 BigQuery 数据源
使用 spreadsheets.batchUpdate
方法并相应地提供 UpdateDataSourceRequest
或 DeleteDataSourceRequest
请求。
管理 BigQuery 数据源对象
将数据源添加到电子表格后,就可以根据该数据源创建数据源对象。数据源对象是指与关联的 Google 表格集成的常规 Google 表格工具(例如数据透视表、图表和公式),可为您的数据分析提供支持。
对象有四种类型:
DataSource
个表DataSource
pivotTableDataSource
图表DataSource
公式
添加 BigQuery 数据源表
表对象在 Google 表格编辑器中称为“提取内容”,用于将数据源中的数据静态转储导入到 Google 表格中。与数据透视表类似,表格会指定并锚定到左上角单元格。
以下代码示例展示了如何使用 spreadsheets.batchUpdate
方法和 UpdateCellsRequest
创建包含最多 1,000 行和两个列(word
和 word_count
)的数据源表。
"updateCells":{
"rows":{
"values":[
{
"dataSourceTable":{
"dataSourceId":"DATA_SOURCE_ID",
"columns":[
{
"name":"word"
},
{
"name":"word_count"
}
],
"rowLimit":{
"value":1000
},
"columnSelectionType":"SELECTED"
}
}
]
},
"fields":"dataSourceTable"
}
将 DATA_SOURCE_ID 替换为用于标识数据源的电子表格级唯一 ID。
创建数据源表后,数据不会立即可用。在 Google 表格编辑器中,它会显示为预览。您需要刷新数据源表才能提取 BigQuery 数据。您可以在同一 batchUpdate
中指定 RefreshDataSourceRequest
。请注意,所有数据源对象的工作原理都类似。如需了解详情,请参阅刷新数据源对象。
刷新完成并提取 BigQuery 数据后,系统会填充数据源表,如下所示:
添加 BigQuery 数据源数据透视表
与传统的数据透视表不同,数据源数据透视表由数据源提供支持,并按列名称引用数据。以下代码示例展示了如何使用 spreadsheets.batchUpdate
方法和 UpdateCellsRequest
创建一个数据透视表,以按语料库显示总字数。
"updateCells":{
"rows":{
"values":[
{
"pivotTable":{
"dataSourceId":"DATA_SOURCE_ID",
"rows":{
"dataSourceColumnReference":{
"name":"corpus"
},
"sortOrder":"ASCENDING"
},
"values":{
"summarizeFunction":"SUM",
"dataSourceColumnReference":{
"name":"word_count"
}
}
}
}
]
},
"fields":"pivotTable"
}
将 DATA_SOURCE_ID 替换为用于标识数据源的电子表格级唯一 ID。
提取 BigQuery 数据后,系统会填充数据源数据透视表,如下所示:
添加 BigQuery 数据源图表
以下代码示例展示了如何使用 spreadsheets.batchUpdate
方法和 AddChartRequest
创建一个数据源图表,其中 chartType
为 COLUMN,显示每个语料库的总字数。
"addChart":{
"chart":{
"spec":{
"title":"Corpus by word count",
"basicChart":{
"chartType":"COLUMN",
"domains":[
{
"domain":{
"columnReference":{
"name":"corpus"
}
}
}
],
"series":[
{
"series":{
"columnReference":{
"name":"word_count"
},
"aggregateType":"SUM"
}
}
]
}
},
"dataSourceChartProperties":{
"dataSourceId":"DATA_SOURCE_ID"
}
}
}
将 DATA_SOURCE_ID 替换为用于标识数据源的电子表格级唯一 ID。
提取 BigQuery 数据后,数据源图表会呈现如下所示:
添加 BigQuery 数据源公式
以下代码示例展示了如何使用 spreadsheets.batchUpdate
方法和 UpdateCellsRequest
创建数据源公式来计算平均字数。
"updateCells":{
"rows":[
{
"values":[
{
"userEnteredValue":{
"formulaValue":"=AVERAGE(shakespeare!word_count)"
}
}
]
}
],
"fields":"userEnteredValue"
}
提取 BigQuery 数据后,系统会填充数据源公式,如下所示:
刷新 BigQuery 数据源对象
您可以刷新数据源对象,以便根据当前的数据源规范和对象配置从 BigQuery 提取最新数据。您可以使用 spreadsheets.batchUpdate
方法调用 RefreshDataSourceRequest
。然后,使用 DataSourceObjectReferences
对象指定要刷新的一个或多个对象引用。
请注意,您可以在单个 batchUpdate
请求中创建和刷新数据源对象。
管理 Looker 数据源
本指南将介绍如何添加 Looker 数据源、更新或删除数据源、基于数据源创建数据透视表以及刷新数据透视表。
请求任何 Looker 关联的 Google 表格数据的应用将重复使用您现有的 Google 账号与 Looker 的关联。
添加 Looker 数据源
如需添加数据源,请使用 spreadsheets.batchUpdate
方法提供 AddDataSourceRequest
。请求正文应指定类型为 DataSource
对象的 dataSource
字段。
"addDataSource":{
"dataSource":{
"spec":{
"looker":{
"instance_uri":"INSTANCE_URI",
"model":"MODEL",
"explore":"EXPLORE"
}
}
}
}
将 INSTANCE_URI、MODEL 和 EXPLORE 分别替换为有效的 Looker 实例 URI、模型名称和探索名称。
创建数据源后,系统会创建关联的 DATA_SOURCE
工作表,以预览所选探索的结构,包括视图、维度、测量值和所有字段说明。
AddDataSourceResponse
包含以下字段:
dataSource
:创建的DataSource
对象。dataSourceId
是电子表格级范围的唯一 ID。系统会填充并引用该映射,以便从数据源创建每个DataSource
对象。dataExecutionStatus
:将 BigQuery 数据导入预览工作表的执行状态。如需了解详情,请参阅数据执行状态部分。
更新或删除 Looker 数据源
使用 spreadsheets.batchUpdate
方法并相应地提供 UpdateDataSourceRequest
或 DeleteDataSourceRequest
请求。
管理 Looker 数据源对象
将数据源添加到电子表格后,就可以根据该数据源创建数据源对象。对于 Looker 数据源,您只能通过该数据源创建 DataSource
pivotTable 对象。
您无法使用 Looker 数据源创建 DataSource
公式、提取内容和图表。
刷新 Looker 数据源对象
您可以刷新数据源对象,以便根据当前的数据源规范和对象配置从 Looker 提取最新数据。您可以使用 spreadsheets.batchUpdate
方法调用 RefreshDataSourceRequest
。然后,使用 DataSourceObjectReferences
对象指定要刷新的一个或多个对象引用。
请注意,您可以在单个 batchUpdate
请求中创建和刷新数据源对象。
数据执行状态
当您创建数据源或刷新数据源对象时,系统会创建一个后台执行作业,以从 BigQuery 或 Looker 提取数据,并返回包含 DataExecutionStatus
的响应。如果执行成功启动,DataExecutionState
通常处于 RUNNING
状态。
由于该过程是异步的,因此您的应用应实现轮询模型,以定期检索数据源对象的状态。使用 spreadsheets.get
方法,直到状态返回 SUCCEEDED
或 FAILED
状态。在大多数情况下,执行会快速完成,但具体取决于数据源的复杂性。通常,执行时间不会超过 10 分钟。
相关主题
- 选择 Google Sheets API 范围
- 开始在 Google 表格中处理 BigQuery 数据
- BigQuery 文档
- BigQuery:使用关联工作表
- “关联工作表”视频教程
- 使用 Looker 关联工作表
- Looker 简介