BQ 命令行工具——如何在创建 BigQuery 数据集之前检查它是否存在?

Lak*_*Lak 2 google-bigquery

使用 BigQuery 命令行工具,如何在创建数据集之前检查数据集是否存在?

bq mk dataset
Run Code Online (Sandbox Code Playgroud)

如果您尝试在已经存在的数据集上调用它,则会报告错误。

jer*_*oko 7

更短的解决方案:

bq show $dataset || bq mk $dataset
Run Code Online (Sandbox Code Playgroud)


Lak*_*Lak 5

列出项目中的所有数据集,并使用 grep -w 检查您想要的数据集是否已经存在。仅当数据集不存在时才发出“bq mk”:

#!/bin/bash
bq_safe_mk() {
    dataset=$1
    exists=$(bq ls -d | grep -w $dataset)
    if [ -n "$exists" ]; then
       echo "Not creating $dataset since it already exists"
    else
       echo "Creating $dataset"
       bq mk $dataset
    fi
}

# this is how you call the function
bq_safe_mk someowenwoiertw
Run Code Online (Sandbox Code Playgroud)