如何清理 BigQuery 视图

Posted

技术标签:

【中文标题】如何清理 BigQuery 视图【英文标题】:How to clean up BigQuery views 【发布时间】:2019-01-22 05:09:43 【问题描述】:

我有一个 BigQuery 项目,有超过一百个视图(我们的大部分查询都是作为视图完成的),其中许多已经过时,我正在着手一个项目来清理这些视图并重新组织/重命名视图以方便采用。关于 BigQuery 功能,我有几个问题:

    是否可以对我项目中所有 BQ 视图的查询进行批量导出(仅查询,而不是结果)?这对备份很有用(也可以更轻松地搜索它们,这将有助于回答其他问题)

    有没有办法将视图组织到文件夹中?我知道它们可以组织成不同的数据集(这就是我现在正在做的)但是有没有办法创建一个多级“目录结构”来组织所有视图?

    有没有一种方法可以轻松搜索其查询使用特定其他表(或视图)的所有视图?

    有没有办法“重命名视图”(或表),这可能包括将其移动到新数据集,以便查询包含重命名视图(或表)的所有现有视图都更新以使用新名字?

【问题讨论】:

【参考方案1】:

    您可以很容易地编写脚本,例如使用gcloud。突然想到:列出所有数据集->为每个数据集列出所有表/视图->检查它是否是视图->获取视图后面的 SQL/查询->附加到文件->添加到 git repo

    不,BigQuery 仅支持一级深度的数据集。

    查看#1,然后使用grep

    不,如果重命名或重新定位该视图,则需要更新对该视图的所有引用。

【讨论】:

这很有帮助。想知道#4 现在是否有任何更新(能够在所有查询/视图中重命名视图或表)?现在有能力完成这项工作还是仍然需要手动完成?

以上是关于如何清理 BigQuery 视图的主要内容,如果未能解决你的问题,请参考以下文章

如何安全地为 bigquery 节点插入转义用户输入?可以在 bigquery.insert 节点库上使用参数化查询吗?

如何创建 BigQuery 视图

如何创建使用用户定义函数的 BigQuery 视图?

如何通过 Datalab 查询 BigQuery 视图?

如何从视图 bigquery 中进行选择?

如何使用 UI 从 BigQuery 中的视图创建表?