BigQuery 在创建实体化视图时出现“缺少空格”错误

Posted

技术标签:

【中文标题】BigQuery 在创建实体化视图时出现“缺少空格”错误【英文标题】:BigQuery gives "Missing whitespace" error when creating a Materialized View 【发布时间】:2021-12-16 13:54:12 【问题描述】:

错误

在尝试创建实体化视图时,我收到错误 Syntax error: Missing whitespace between literal and alias at [1:42]。到目前为止,我运行的任何查询都没有在 FROM 中标记相同的错误。问题似乎是我的(自动生成的)项目 ID 的数字部分之后的字符。

项目 ID 更改以保护我的真实 ID,但格式相同

我的代码

CREATE MATERIALIZED VIEW  my-project-1234a.firestore_export.viewTestBQ
AS SELECT name, SUM(clicks) AS sum_clicks
FROM  my-project-1234a.firestore_export.TestBQ_raw_changelog
GROUP BY 1

我尝试过的

在项目 ID 周围加上单引号、双引号和反引号 在整个 $projectId.$dataset.$view_name 字符串周围加上单引号、双引号和反引号

【问题讨论】:

【参考方案1】:

BigQuery 在选择对象时使用特殊背光。考虑方法:

CREATE MATERIALIZED VIEW  `my-project-1234a.firestore_export.viewTestBQ` AS 
SELECT name, SUM(clicks) AS sum_clicks
FROM  `my-project-1234a.firestore_export.TestBQ_raw_changelog`
GROUP BY 1

如果这似乎不起作用,还请考虑以下方法:

CREATE MATERIALIZED VIEW `my-project-a1234.firestore_export.viewTestBQ` AS
SELECT name, SUM(clicks) AS sum_clicks 
FROM  `my-project-a1234.firestore_export.TestBQ_raw_changelog`
GROUP BY 1

如您所见,我的两个建议之间的区别在于,在您的项目中,您需要以字母后跟数字而不是数字后跟字母开头。

【讨论】:

我必须创建一个新项目并确保在 GCP 中创建它,然后将其添加到 Firebase,而不是反过来。这让我可以更严格地控​​制项目 ID。 BQ 无法处理这种命名格式似乎很疯狂,即使被引号或反引号包围。

以上是关于BigQuery 在创建实体化视图时出现“缺少空格”错误的主要内容,如果未能解决你的问题,请参考以下文章

从 BigQuery 中的 .avro 文件创建表时出现“resourcesExceeded”错误

Automl SDK 代码具有来自 bigquery 的文件位置,但在预测时出现问题

STRUCT 的 BigQuery 具体化视图

将时间戳转换为特定时区然后在 bigquery 中将其转换为日期时出现问题

查询 MySql 视图时出现 SQLGrammar 错误

使用 Pandas 或命令行上传到 BigQuery 时出现奇怪的重复字段错误。所有字段唯一