BigQuery:无法创建视图。意外。请再试一次

时间:2014-09-11 04:47:41

标签: google-bigquery

我正在尝试在BigQuery中保存视图,并不断收到同样的错误:

Failed to create view. Unexpected. Please try again.

查询如下:

SELECT
interaction.id AS Interaction.ID,
interaction.author.name AS Interaction.Author.Name,
interaction.author.username AS Interaction.Author.Username,
interaction.content AS Interaction.Content,
interaction.created_at_timestamp AS Interaction.Created_At_Timestamp,
klout.score AS Klout.Score,
twitter.geo.latitude AS Twitter.Geo.Latitude,
twitter.geo.longitude AS Twitter.Geo.Longitude,
twitter.media.expanded_url AS Twitter.Media.ExpandedUrl,
twitter.media.type AS Twitter.Media.Type,
twitter.place.country AS Twitter.Place.Country,
twitter.user.followers_count AS Twitter.User.Followers,
twitter.user.friends_count AS Twitter.User.Friends,
twitter.user.listed_count AS Twitter.User.Listed,
twitter.retweet.count AS Twitter.Retweet.Count
FROM
[**DATASET_NAME_OMITTED**.main_table]
WHERE
(interaction.id IS NOT NULL)
AND (interaction.created_at_timestamp IS NOT NULL)
AND (interaction.created_at_timestamp >= DATE_ADD(USEC_TO_TIMESTAMP(UTC_USEC_TO_HOUR(NOW())), -1, "DAY"))
AND (interaction.created_at_timestamp < USEC_TO_TIMESTAMP(UTC_USEC_TO_HOUR(NOW())))

查询验证并运行没有任何问题:

Valid: This query will process 203 MB when run.

我注意到twitter.media的类型是REPEATED RECORD。也就是说,删除twitter.media。*字段并不能解决问题。

我能够使用相同的时间戳限制和命名约定成功保存其他视图。试图一直保存这个失败。

对于上下文:此表由DataSift通过其BigQuery连接器填充(默认为catch-all架构)。

1 个答案:

答案 0 :(得分:1)

这真的很奇怪。 我运行了一个实验并取出了每个别名操作,并且它有效。 然后我慢慢地将其中的一些重新添加回来;它继续工作。然而,似乎某些别名不想工作(我不知道为什么)。 我最终得到了以下内容,其中包含大部分别名,并且似乎按预期工作:

SELECT
interaction.id AS Interaction.ID,
interaction.author.name AS Interaction.Author.Name,
interaction.author.username AS Interaction.Author.Username,
interaction.content AS Interaction.Content,
interaction.created_at_timestamp AS Interaction.Created_At_Timestamp,
klout.score AS Klout.Score,
twitter.geo.latitude AS Twitter.Geo.Latitude,
twitter.geo.longitude AS Twitter.Geo.Longitude,
twitter.media.expanded_url,
twitter.media.type AS Twitter.Media.Type,
twitter.place.country AS Twitter.Place.Country,
twitter.user.followers_count,
twitter.user.friends_count,
twitter.user.listed_count,
twitter.retweet.count AS Twitter.Retweet.Count
FROM [**DATASET_NAME_OMITTED**.main_table] 
WHERE
(interaction.id IS NOT NULL)
AND (interaction.created_at_timestamp IS NOT NULL)
AND (interaction.created_at_timestamp >= DATE_ADD(USEC_TO_TIMESTAMP(UTC_USEC_TO_HOUR(NOW())), -1, "DAY"))
AND (interaction.created_at_timestamp < USEC_TO_TIMESTAMP(UTC_USEC_TO_HOUR(NOW())))

看起来真的很奇怪的是,什么会有效,哪些无效。 twitter.user.*字段是整数,但不接受别名,但整数字段klout.score字段确实接受整数。