You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何通过Google Sheets API为BigQuery数据源设置定时刷新

设置Google Sheets BigQuery数据源定时刷新的Python实现

核心方法说明

你需要调用Google Sheets API的spreadsheets.batchUpdate方法,在请求体中添加UpdateDataSourceRefreshScheduleRequest配置来实现定时刷新。

具体代码示例

假设你已通过授权创建了Sheets服务对象service,以下是添加定时刷新的代码片段:

def set_data_source_refresh_schedule(spreadsheet_id, data_source_id):
    request_body = {
        "requests": [
            {
                "updateDataSourceRefreshSchedule": {
                    "dataSourceId": data_source_id,
                    "refreshSchedule": {
                        "schedule": {
                            # 示例:每日凌晨2点(上海时区)刷新
                            "dailySchedule": {
                                "hour": 2,
                                "timeZone": "Asia/Shanghai"
                            }
                        },
                        "refreshScope": "DATA_SOURCE",
                        "isEnabled": True
                    },
                    "fields": "*"
                }
            }
        ]
    }

    response = service.spreadsheets().batchUpdate(
        spreadsheetId=spreadsheet_id,
        body=request_body
    ).execute()
    return response

关键参数解释

  • dataSourceId: 你之前添加BigQuery数据源时返回的ID,可通过spreadsheets.get接口查询dataSources字段获取。
  • schedule: 支持三种类型:
    • dailySchedule: 配置固定小时数的每日刷新
    • weeklySchedule: 指定每周某几天的固定时间刷新
    • customSchedule: 使用CRON表达式自定义刷新规则(需符合Google Sheets支持的格式)
  • refreshScope: 固定设为DATA_SOURCE,代表刷新整个数据源
  • isEnabled: 设为True启用定时刷新,False则禁用

注意事项

  • 确保授权账号拥有https://www.googleapis.com/auth/spreadsheets权限
  • CRON表达式需遵循Google Sheets的语法规范,比如0 2 * * *代表每日UTC时间2点刷新
  • 调用前务必确认dataSourceId的正确性,否则会返回数据源不存在的错误

内容的提问来源于stack exchange,提问作者Peter Jančok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 14:25:07