我有一系列名为{YYYYMM}_{id}
的表,我有名为{groupid}_cost_model
的ML模型。我正在尝试使用以下查询整理所有表中的一些数据:
SELECT * FROM `mydataset.20*`
我的问题是,我有一个名为200_cost_model
的模型,它导致以下错误:
Wildcard table over non partitioning tables and field based partitioning tables is not yet supported, first normal table myproject:mydataset.200_cost_model, first column table myproject:mydataset.202001_4544248676.
是否有一种方法可以从通配符查询中过滤出模型,或者我是否将所有表连接在一起?
当使用通配符表时,您可以使用psuedo列来过滤结果:
通配符表的查询支持_TABLE_SUFFIX伪列WHERE子句中。属性匹配的值通配符,以便查询可以过滤哪些表是访问。例如,下面的WHERE子句使用比较过滤匹配表的操作符
我已经在我这边测试了,虽然只是在标准的新创建的表上,它应该像这样工作:
SELECT *
FROM
`mydataset.20*`
WHERE
_TABLE_SUFFIX like '%cost_model' ;
以及检查所有可能的_TABLE_SUFFIX
选择,它对我来说是这样的:
select DISTINCT _TABLE_SUFFIX as suffix from `mydataset.20*`
但我不确定这是否适用于你的情况。