问题是这实际上不是一个分区表。如果你使用
partitioned table
,您有一个跨所有分区具有一致模式的表,而如果您使用多个共享公共前缀和后缀模式的表,则没有这样的保证。如果可以的话,我强烈建议将现有的表转换成分区表。
INFORMATION_SCHEMA
views
这将使一次分析多个表变得更容易,但目前,假设您使用的是Bash终端,下面是一种查找不兼容的方法:
DATASET=<dataset name here>
COLUMN_NAME=<column name here>
for table_name in `bq ls -n 1000 $DATASET | tail -n +3 | grep -Eo "t[^ ]+"`; do
bq --format=json show $DATASET.$table_name | \
sed -r "s/.*\{([^\{]*\"name\":\"$COLUMN_NAME\"[^\}]*)\}.*/\1/g" | \
sed -r 's/.*\"type\":\"([^\"]+)\".*/\1/g' | \
xargs echo $table_name | \
sort;
done
输出结果如下:,
tableName20180101 STRING
tableName20180102 STRING
tableName20180103 TIMESTAMP
...