使用BigQuery命令行工具,如何在创建数据集之前检查数据集是否存在?
bq mk dataset
如果您尝试在现有数据集上调用它,会报告错误。
答案 0 :(得分:3)
列出项目中的所有数据集,并使用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
答案 1 :(得分:3)
一个简短的解决方案:
bq show $dataset || bq mk $dataset
答案 2 :(得分:0)
对@Lak 的回答稍作修改以在安全的 bash 环境中工作
#!/bin/bash
# safer bash: check for errors and unset variables
set -Eeuo pipefail
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
}
bq_safe_mk adatasetname