Google bigquery BigQuery—每天滚动数据,如何减少过程中对DataStudio仪表板的中断

Google bigquery BigQuery—每天滚动数据,如何减少过程中对DataStudio仪表板的中断,google-bigquery,google-data-studio,Google Bigquery,Google Data Studio,我有一个大查询表。整张桌子每天都会刷新。所以我现在要做的是 将最新数据加载到云存储中 删除当前表 创建具有相同名称的新表 将数据从云存储加载到新表(同名) 问题是我的DataStudioDashboard使用了与数据源相同的表。在上述过程中,仪表板将被中断,例如在刚删除但未完成新数据加载时显示空数据或更少数据 我应该做什么简单的好实践来避免对DataStudioDashboard的中断 谢谢 试试下面 不要删除初始表 将数据从云存储加载到新表(使用不同的名称) 使用覆盖/截断将新表复制到初始

我有一个大查询表。整张桌子每天都会刷新。所以我现在要做的是

  • 将最新数据加载到云存储中
  • 删除当前表
  • 创建具有相同名称的新表
  • 将数据从云存储加载到新表(同名)
问题是我的DataStudioDashboard使用了与数据源相同的表。在上述过程中,仪表板将被中断,例如在刚删除但未完成新数据加载时显示空数据或更少数据

我应该做什么简单的好实践来避免对DataStudioDashboard的中断

谢谢

试试下面

  • 不要删除初始表
  • 将数据从云存储加载到新表(使用不同的名称)
  • 使用覆盖/截断将新表复制到初始表

  • 这可能是一个微不足道的答案,但为什么不能向表中添加DateTimeAdded列之类的内容呢。然后,不用删除当前表并重新创建它,只需从云存储中添加新数据,并使用较新的DateTimeAdded值,完成后,删除所有不是当前DateTimeAdded的数据

    这样,仪表板中就不会出现中断,因为数据总是存在的,尽管可能会有一段时间不稳定,因为新旧数据都用于度量


    是否有一段时间不使用仪表板?此时是否刷新数据。

    为什么要删除该表

    您完全可以使用truncate运行负载

    $ bq help load
    
    --[no]replace: If true erase existing contents before loading new data.
        (default: 'false')
    
    如果您正在使用API:

    写移位

    [可选]指定目标表已存在时发生的操作。支持以下值:WRITE_TRUNCATE:如果表已经存在,BigQuery将覆盖表数据。[……]


    确保打开BI引擎以获得真正快速的结果。测试版。谢谢!现在,就像Jon在下面建议的那样,我在清晨运行刷新,当时几乎没有人使用仪表板。不过,最好不要打断别人。截断和从云存储加载仍然会有中断,对吗?但我假设它比我现在使用的删除和加载要快。或者正如Mikhail所建议的,截断覆盖和截断BigQuery将是最少的中断,对吗?我的老方法是删除和流式传输(中间没有云存储)新数据。中断时间太长。如果加载时启用truncate,这是一个1步原子操作