关联工作表

关联工作表 让您可以直接在 Google 表格中分析 PB 级的数据。您可以 将电子表格与 BigQuery 相关联 数据仓库或Looker进行分析 使用熟悉的表格工具创建 例如数据透视表、图表和公式

管理 BigQuery 数据源

本部分使用 BigQuery Shakespeare 公共数据集展示如何使用关联工作表。数据集 包含以下信息:

字段 类型 说明
字词 STRING 从语料库中提取的单个唯一单词(其中空格是分隔符)。
word_count INTEGER 该字词在该语料库中出现的次数。
corpus STRING 从中提取此字词的作品。
corpus_date INTEGER 此语料库的出版年份。

如果您的应用请求任何 BigQuery 关联工作表数据, 必须提供 OAuth 2.0 令牌,用于授予 bigquery.readonly 范围 常规 Google Sheets API 请求所需的其他范围。对于 有关详情,请参阅选择 Google Sheets API 范围

数据源指定数据的外部位置。数据 就会连接到电子表格

添加 BigQuery 数据源

要添加数据源,请提供 AddDataSourceRequest 使用 spreadsheets.batchUpdate 方法。请求正文应指定 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 方法,并提供一个 UpdateDataSourceRequestDeleteDataSourceRequest 请求。

管理 BigQuery 数据源对象

将数据源添加到电子表格后,即可创建数据源对象 由其创建。数据源对象是常规的表格工具 例如数据透视表、图表和 关联工作表可为您的数据分析提供支持。

对象有以下四种类型:

  • DataSource 个表
  • DataSource pivotTable
  • DataSource图表
  • DataSource公式

添加 BigQuery 数据源表

称为“提取”表格编辑器中,表格对象 将来自数据源的静态转储数据导入到 Google 表格中。 与数据透视表类似,该表格已指定并固定在左上角 单元格。

以下代码示例展示了如何使用 spreadsheets.batchUpdate 方法和 UpdateCellsRequest 创建一个最多 1000 行、两列(wordword_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, 用于标识数据源

创建数据源表后,数据并非立即可用。在 就会显示为预览您需要刷新 数据源表以提取 BigQuery 数据。您可以指定 RefreshDataSourceRequest 在同一个 batchUpdate 内。请注意,所有数据源对象的工作方式相似。 如需了解详情,请参阅 刷新数据源对象

刷新完成并提取 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 账号关联 Looker。

添加 Looker 数据源

要添加数据源,请提供 AddDataSourceRequest 使用 spreadsheets.batchUpdate 方法。请求正文应指定 dataSource 类型字段 DataSource 对象。

"addDataSource":{
   "dataSource":{
      "spec":{
         "looker":{
            "instance_uri":"INSTANCE_URI",
            "model":"MODEL",
            "explore":"EXPLORE"
         }
      }
   }
}

INSTANCE_URIMODEL 和 将 EXPLORE 替换为有效的 Looker 实例 URI、模型名称和 名称。

创建数据源后,系统会 DATA_SOURCE 创建工作表来提供所选探索的结构的预览, 包括视图、维度、测量和任何字段说明。

通过 AddDataSourceResponse 包含以下字段:

  • dataSource:创建的 DataSource 对象。通过 dataSourceId是 电子表格范围的唯一 ID。系统会填充并引用该字段 DataSource 对象。

  • dataExecutionStatus:导入 BigQuery 数据的执行的状态 粘贴到预览表格中有关详情,请参阅数据执行 状态部分。

更新或删除 Looker 数据源

使用 spreadsheets.batchUpdate 方法,并提供一个 UpdateDataSourceRequestDeleteDataSourceRequest 请求。

管理 Looker 数据源对象

将数据源添加到电子表格后,即可创建数据源对象 由其创建。对于 Looker 数据源,您只能创建DataSource 数据透视表对象。

无法从DataSource Looker 数据源。

刷新 Looker 数据源对象

您可以刷新数据源对象以从 Looker 提取最新数据 根据当前数据源规范和对象配置进行微调。您可以使用 spreadsheets.batchUpdate 方法调用 RefreshDataSourceRequest。 然后使用 DataSourceObjectReferences 对象。

请注意,您既可以创建和刷新单个 batchUpdate 请求。

数据执行状态

创建数据源或刷新数据源对象时,背景 执行以从 BigQuery 或 Looker 提取数据并返回 包含 DataExecutionStatus。 如果执行成功开始, DataExecutionState 通常处于 RUNNING 状态。

由于该过程是异步进行的,因此您的应用应实现轮询 模型来定期检索数据源对象的状态。使用 spreadsheets.get 方法 直到状态返回 SUCCEEDEDFAILED 状态。执行 但这取决于数据的复杂程度 来源。执行时间通常不会超过 10 分钟。