BigQuery 中的表函数和 FLATTEN

Posted

技术标签:

【中文标题】BigQuery 中的表函数和 FLATTEN【英文标题】:Table Functions and FLATTEN in BigQuery 【发布时间】:2014-05-14 10:49:54 【问题描述】:

FLATTENTABLE_QUERY 函数可以一起使用吗?

看起来TABLE_QUERY 只返回表名,FLATTEN 也需要数据集。

FROM 子句:

FROM FLATTEN(TABLE_QUERY(nbr_pcrf, 'table_id CONTAINS "dump_"'), quotas) d

错误:

查询失败 错误:无法解析表名:缺少数据集名称。 作业 ID:nbr-data-storage:job_44jU_diWnh4tk27UxDxFP-I5Rbg

【问题讨论】:

【参考方案1】:

这实际上有点误导:正在发生的事情是 FLATTEN() 与不只是表名的任何内容都需要一组额外的括号来区分您正在展平的字段与表。换句话说,如果你这样做了

SELECT ... FROM FLATTEN(TABLE_QUERY(...), foo)

foo 字段被解释为联合表名(如SELECT * from bar,foo)。

解决此问题的方法很简单:添加另一组括号。那就是:

SELECT ... FROM 
FLATTEN((TABLE_QUERY(nbr_pcrf, 'table_id CONTAINS "dump_"')), quotas)

【讨论】:

没问题,我尝试使用 CONCAT() 但不幸的是它没有被接受,所以我将把表合并到一个表中。错误跟踪工具是公开的吗?可以给我网址吗?谢谢 BigQuery 团队使用的错误数据库不是公开的,但有一个公开的问题跟踪器,您可以使用它来报告问题并检查其状态。 code.google.com/p/google-bigquery/issues/list 现在解决了吗?我只是在这里遇到了同样的问题,想知道如何解决它

以上是关于BigQuery 中的表函数和 FLATTEN的主要内容,如果未能解决你的问题,请参考以下文章

访问 BigQuery RECORD - 在 Tableau 中重复

使用 Flatten 从包含多个嵌套变量的 bigquery 表中选择 where var1 (non-repeated) = "abc"?

BigQuery 中是不是有与标准 SQL 等效的表通配符函数?

如何使用 Python BigQuery API 追加到 BigQuery 中的表

在 BigQuery 中展平嵌套层次结构

BigQuery 中的表视图是不是受益于分区/集群优化?