連結試算表

連結試算表 可讓您直接在 Google 試算表中分析 PB 級資料。您可以將試算表連結至 BigQuery 資料倉儲或 Looker,並使用熟悉的試算表工具 (例如資料透視表、圖表和公式) 進行分析。

管理 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 方法,並視情況提供 UpdateDataSourceRequestDeleteDataSourceRequest 要求。

管理 BigQuery 資料來源物件

將資料來源新增至試算表後,即可從中建立資料來源物件。資料來源物件是 Google 試算表中的一般工具,例如資料透視表、圖表和公式,可與已連結的試算表整合,協助您進行資料分析。

物件分為四種類型:

  • DataSource 個資料表
  • DataSource pivotTable
  • DataSource」圖表
  • DataSource 公式

新增 BigQuery 資料來源資料表

在 Google 試算表編輯器中稱為「擷取」的表格物件,可將資料來源的靜態傾印資料匯入 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。

建立資料來源表格後,系統不會立即提供資料。在 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 帳戶連結與 Looker。

新增 Looker 資料來源

如要新增資料來源,請使用 spreadsheets.batchUpdate 方法提供 AddDataSourceRequest。要求主體應指定 dataSource 欄位,類型為 DataSource 物件。

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

請將 INSTANCE_URIMODELEXPLORE 分別替換為有效的 Looker 執行個體 URI、模型名稱和探索名稱。

建立資料來源後,系統會建立相關聯的DATA_SOURCE工作表,預覽所選探索的結構,包括檢視畫面、維度、指標和任何欄位說明。

AddDataSourceResponse 包含下列欄位:

  • dataSource:建立的 DataSource 物件。dataSourceId 是試算表範圍的專屬 ID。系統會填入並參照這個物件,從資料來源建立每個 DataSource 物件。

  • dataExecutionStatus:將 BigQuery 資料匯入預覽工作表的執行作業狀態。詳情請參閱「資料執行狀態」一節。

更新或刪除 Looker 資料來源

請使用 spreadsheets.batchUpdate 方法,並視情況提供 UpdateDataSourceRequestDeleteDataSourceRequest 要求。

管理 Looker 資料來源物件

將資料來源新增至試算表後,即可從中建立資料來源物件。如果是 Looker 資料來源,您只能從中建立 DataSource pivotTable 物件。

您無法從 Looker 資料來源建立 DataSource 公式、擷取內容和圖表。

重新整理 Looker 資料來源物件

您可以重新整理資料來源物件,根據目前的資料來源規格和物件設定,從 Looker 擷取最新資料。您可以使用 spreadsheets.batchUpdate 方法呼叫 RefreshDataSourceRequest。然後使用 DataSourceObjectReferences 物件,指定要重新整理的一或多個物件參照。

請注意,您可以在單一 batchUpdate 要求中建立及重新整理資料來源物件。

資料執行狀態

建立資料來源或重新整理資料來源物件時,系統會建立背景執行作業,從 BigQuery 或 Looker 擷取資料,並傳回包含 DataExecutionStatus 的回應。如果執行作業順利啟動,DataExecutionState 通常會處於 RUNNING 狀態。

由於這個程序是非同步的,應用程式應實作輪詢模型,定期擷取資料來源物件的狀態。使用 spreadsheets.get 方法,直到狀態傳回 SUCCEEDEDFAILED 狀態為止。一般來說,執行作業很快就會完成,但實際情況取決於資料來源的複雜程度。通常執行時間不會超過 10 分鐘。