代码之家  ›  专栏  ›  技术社区  ›  Woody1193 Nimmi Rashinika

对具有BigQuery中的模型的数据集使用通配符查询

  •  0
  • Woody1193 Nimmi Rashinika  · 技术社区  · 3 年前

    我有一系列被命名为 {YYYYMM}_{id} 我有一些名为 {groupid}_cost_model .我正在尝试使用以下查询整理所有表中的一些数据:

    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.
    

    有没有办法从通配符查询中过滤出模型,或者我是被困在将所有表连接在一起?

    0 回复  |  直到 3 年前
        1
  •  0
  •   vitooh    3 年前

    使用时 Wildcard tables 您可以使用psuedo列筛选结果:

    带有通配符表的查询支持_TABLE_后缀伪列 在WHERE子句中。此列包含与 通配符,以便查询可以筛选哪些表是 访问。例如,以下WHERE子句使用比较 运算符来筛选匹配的表

    我已经在我这方面进行了测试,尽管只在标准的新创建的表上进行了测试,例如:

    SELECT *
    FROM
      `mydataset.20*`
    WHERE
        _TABLE_SUFFIX like '%cost_model' ;
    

    以及检查所有可能的 _TABLE_SUFFIX 选择它对我来说是这样的:

    select  DISTINCT   _TABLE_SUFFIX as suffix from  `mydataset.20*`
    

    但我不确定这是否适用于你的情况。