簡體   English   中英

如何通過 Apps 腳本安排 BigQuery 運行

[英]How to schedule a BigQuery run through Apps Script

我有一個連接表,其中包含 bigquery 查詢(提取表)的結果。 我創建了結果表的預覽。 我如何編寫一個 appscript 函數來刷新提取和預覽表中的結果? 請幫忙。

我嘗試使用此代碼刷新連接表查詢,但它給了我一個錯誤消息:“異常:數據 object 不存在。” 如果可能的話,我想寫一個應用程序腳本 function。

function refresh() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('test'), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData();
  //DriveApp.getFiles()
};

在此處輸入圖像描述

解決方案,一個宏

1.錄制一個來刷新你的數據

  • 在 Google 表格中打開包含連接到 BigQuery 的數據的電子表格。
  • 從不同的選項卡錄制宏,然后再從要刷新的選項卡錄制宏。
  • 開始錄制后,切換到要刷新的選項卡。
  • 在左下角,單擊“刷新”。
  • 單擊保存。

2.安排你的宏

  • 在頂部,單擊工具 > 腳本編輯器。
  • 在頂部,單擊“編輯”>“當前項目的觸發器”。
  • 在右下角,單擊添加觸發器和 select 您的選項。
  • 單擊保存。

如果您錄制一個宏,它會生成一個您可以使用或編輯的腳本。 例如,它為我制作了這個腳本。 隨着谷歌應用程序腳本 function 名稱隨時間變化,宏方式始終創建最新的腳本。

function Refreshdatamacro() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('sheet_1'), true);
  SpreadsheetApp.enableAllDataSourcesExecution();
  spreadsheet.refreshAllDataSources();
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM