在BigQuery Web UI中自动刷新派生表

时间:2016-08-31 14:16:25

标签: google-bigquery

我使用BigQuery Web UI从我们的firebase应用事件数据(一个大杂乱的表)中派生出几个自定义表。这允许其他显示服务(在本例中为Google Data Studio)显示动态仪表板和报告。

问题在于我无法让我的派生表每天早上自动更新。相反,我必须手动重新运行查询才能刷新数据。有没有办法配置这些作业在界面中运行?或者我是否必须在其他地方配置工作?感谢。

1 个答案:

答案 0 :(得分:1)

虽然没有预定的表格实现那么简单,但您可以在Google App Engine中设置一个cron来启动每日查询作业。我相信这应该很容易保持在免费等级内。

PythonJava都有文档。

您似乎也可以使用Apps Script安排日常任务。

这是我尝试的一个简单示例。

  • 转到:script.google.com
  • 启用高级服务(菜单>资源>高级服务...,然后启用BigQuery)。
  • 将默认函数命名为更具描述性的函数,我选择了“rebuildTables”。
  • 点击“触发器”按钮(看起来像一个粘着它的大头钉的时钟)。
  • 为您的项目命名。我选择了“BigQuery - 构建每日表”。
  • 现在您可以添加触发器。例如:时间驱动的白天计时器,早上5点到早上6点
  • 编辑脚本。从这里借来:https://developers.google.com/apps-script/advanced/bigquery
function rebuildTables() {
  // Replace this value with the project ID listed in the Google
  // Developers Console project.
  var projectId = 'EXAMPLE_PROJECT';

  var request = {
    configuration: {
      query: {
        query: 'SELECT 17;',
        destinationTable: {
          "projectId": "EXAMPLE_PROJECT",
          "datasetId": "EXAMPLE_DATASET",
          "tableId": "EXAMPLE_TABLE"
        },
        writeDisposition: "WRITE_TRUNCATE"
      }
    }    
  };

  // Fire-and-forget.
  BigQuery.Jobs.insert(request, projectId);
}