google-bigquery - 在 BigQuery 中使用 _TABLE_SUFFIX 时无法识别名称“列”
问题描述
我有以下 BigQuery 数据集:
一组名称为keywords_ab
, keywords_ac
, ...,的表keywords_zz
。
另一组名称为keywords_different_schema_ab
, keywords_different_schema_ac
,...
这两组表具有不同的架构。我想对第一组表运行查询,其中包含一个名为的列,而该列term
不包含在其中keywords_different_schema_*
。
我通常使用语法运行这类查询,FROM 'keywords_*'
但这Unrecognized name 'term'
当然给了我一个,因为该term
列不是所有keywords_different_schema_*
表的一部分。
我也尝试在我的查询中输入类似LENGTH(_TABLE_SUFFIX) = 2
但似乎无法正常工作的内容。有没有办法让通配符适用于这种情况?或者我真的应该UNION
手动选择我感兴趣的所有关键字吗?
解决方案
事实证明,有一种方法可以解决这个问题,而无需重命名表(尽管这是一种相当老套的方法)。
显然,BigQuery 正在查看您创建的最后一个与通配符匹配的表。
我所做的是创建一个名为的新表,并为它们提供所有属性keywords_dummy
的 UNION 。keywords
keywords_different_schema
那时,我的查询SELECT term FROM 'keywords_*' WHERE LENGTH(_table_suffix)=2
有效,因为 BigQuery 正在检查keywords_dummy
包含该term
列的表。
推荐阅读
- excel - 在 VLOOKUP 中使用 INDIRECT 的替代方法
- c# - Google Cloud Vision API - 创建 Grpc.Core.Channel 时出错
- python - 我们如何在 Python 中的轮廓/边界之间绘制曲线?
- python - 使用 OpenPyxel 在 Excel 中插入多个图像不起作用
- python - tkinter 和 urllib 检查网站的问题
- python - 在 Django 中覆盖保存导致无限递归错误
- java - 如何访问字符串 json 有效负载并将其映射到 Spring 休息控制器中的对象?
- python - Google App Engine - 应用无法发送日志
- javascript - 合并快速排序时间结果异常
- unit-testing - 如何使用 Moq.Dapper 模拟 QueryMultiple