google-bigquery - bigquery 备份所有 View 定义

我正在使用 bigquery,已经创建了数百个 View 。其中大部分未使用,应删除。但是,有可能使用了一些,我不能盲目地全部删除。因此,我需要在删除它们之前以某种方式备份所有 View 定义。

谁知道有什么好方法吗?我不是要保存数据,只是保存 View 定义查询及其名称。

感谢阅读!

最佳答案

构建existing answer ,您可以通过使用 jq 解析 bq 的输出来自动备份所有 View :

#!/bin/bash

DATASETS=$(bq  ls --format=sparse | tail -n+3)
for d in $DATASETS; do
  TABLES=$(bq ls --format=prettyjson "$d" | jq '.[] | "\(.id), \(.type)"')
  IFS=$'\n'
  for table in $TABLES; do
    [[ ! "$table" == *VIEW* ]] && continue
    view=$(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"
  done
done

https://stackoverflow.com/questions/49248326/

相关文章:

python - BeautifulSoup- find_all- 订单保存

asynchronous - 使用 async/await 进行异步 mocha 测试时遇到问题

apache-flink - 在不重启作业的情况下在 Apache Flink 中动态添加模式

google-app-engine - 如何在 objectify 中通过嵌套 Refs 进行查询

android - 在 test.Jar 中启动 startActivity() ,Cordova

jenkins - 如何在多分支管道项目中为每个分支级别的用户提供访问权限?

python - 如何对 Pandas RE .str.extract() 使用 RE OR 操作数

google-apps - 迄今为止的 Google 表格查询字符串

amazon-web-services - 在 Looker 中可以进行分页吗?

python - 如何使用 R 按列将 .csv 拆分为多个 .csv?