最经济高效的方法是创建一个带过滤器的视图,并使用UNNEST运算符。视图不存储数据,因此没有额外的存储成本,并且BigQuery在查询视图时只会处理满足过滤器条件的数据,从而降低查询成本。UNNEST运算符用于处理嵌套或重复字段,这在BigQuery中很常见。
物化视图虽然可以提高查询性能,但会产生存储成本,并且需要定期刷新,不符合“最经济高效”的要求。使用WITH common table expression(CTE)只是查询语法的一部分,本身不影响成本效率,且如果每次查询都重新计算,可能不如视图经济。使用Dataflow进行批处理并将结果写入新表会产生Dataflow的计算成本和新表的存储成本,远不如视图经济。