Google bigquery bigquery备份所有视图定义

Google bigquery bigquery备份所有视图定义,google-bigquery,views,backup,Google Bigquery,Views,Backup,我正在使用bigquery,已经创建了几百个视图。其中大部分未使用,应删除。然而,有一个机会,一些被使用,我不能只是盲目地删除所有。因此,我需要以某种方式备份所有视图定义,然后再删除它们 有人知道一个好方法吗?我不想保存数据,只想保存视图定义查询及其名称 谢谢你的阅读 第一部分。 发出bq ls命令。--format标志可用于控制输出。如果您正在列出默认项目以外的项目中的视图,请按以下格式将项目ID添加到数据集:[project\u ID]:[dataset] bq ls --format=pr

我正在使用bigquery,已经创建了几百个视图。其中大部分未使用,应删除。然而,有一个机会,一些被使用,我不能只是盲目地删除所有。因此,我需要以某种方式备份所有视图定义,然后再删除它们

有人知道一个好方法吗?我不想保存数据,只想保存视图定义查询及其名称


谢谢你的阅读

第一部分。

发出
bq ls
命令。
--format
标志可用于控制输出。如果您正在列出默认项目以外的项目中的视图,请按以下格式将项目ID添加到数据集:
[project\u ID]:[dataset]

bq ls --format=pretty [PROJECT_ID]:[DATASET]
其中:

[PROJECT\u ID]
是您的项目ID。
[DATASET]
是数据集的名称

运行命令时,类型字段显示
表格
视图
。例如:

+-------------------------+-------+----------------------+-------------------+
|         tableId         | Type  |        Labels        | Time Partitioning |
+-------------------------+-------+----------------------+-------------------+
| mytable                 | TABLE | department:shipping  |                   |
| myview                  | VIEW  |                      |                   |
+-------------------------+-------+----------------------+-------------------+
第2部分。

发出
bq show
命令。
--format
标志可用于控制输出。如果您正在获取有关默认项目以外的项目中的视图的信息,请按以下格式将项目ID添加到数据集:
[project\u ID]:[dataset]
。要将视图属性写入文件,请将
[PATH\u To\u file]
添加到命令中

bq show --format=prettyjson [PROJECT_ID]:[DATASET].[VIEW] > [PATH_TO_FILE]
其中:

[PROJECT\u ID]
是您的项目ID。
[DATASET]
是数据集的名称。
[VIEW]
是视图的名称。
[PATH\u TO\u FILE]
是本地计算机上输出文件的路径

示例:

输入以下命令以在mydataset中显示有关myview的信息。mydataset位于默认项目中

bq show --format=prettyjson mydataset.myview
输入以下命令以在
mydataset
中显示有关
myview
的信息。mydataset位于myotherproject中,而不是默认项目中。视图属性被写入本地文件-
/tmp/myview.json

bq show --format=prettyjson myotherproject:mydataset.myview > /tmp/myview.json
在构建的基础上,您可以通过使用
jq
解析
bq
的输出,自动备份所有视图:

#/bin/bash
数据集=$(bq ls--格式=稀疏|尾-n+3)
数据集中的d;做
TABLES=$(bq ls--format=prettyjson“$d”| jq.[]|“\(.id),\(.type)”)
IFS=$'\n'
对于$TABLES中的table;做
[!“$table”==*查看*]&继续(&C)
视图=$(echo“$table”| sed-e's/“//g'| cut-d,-f 1)
query=$(bq show--format=prettyjson“$view”| jq-r'.view.query')
echo-e“$query”>“$view.sql”
完成
完成

您可以尝试使用,这是一个python脚本,我和一些同事一直在使用它定期备份BigQuery视图和表模式。

不再可以通过“pip bqup”安装,以及git克隆和尝试安装fails@LucasZamboulis它应该是
pip安装bqup
。您到底遇到了什么错误?我的错,需要使用
pip安装升级pip——首先升级pip