此问题是previous one I have asked的扩展名。
我有一张表(2014_05_31_transformed.Video),其架构看起来像这样。我已经提出了BigQuery API返回的JSON,在this gist中描述了它的模式。
我正在尝试使用如下所示的API调用来创建针对此表的视图:
{
'view': {
'query': u 'SELECT deleted_mod_time FROM [2014_05_31_transformed.Video]'
},
'tableReference': {
'datasetId': 'latest_transformed',
'tableId': u 'Video',
'projectId': 'redacted'
}
}
但是,BigQuery API正在返回此错误:
HttpError:https://www.googleapis.com/bigquery/v2/projects/124072386181/datasets/latest_transformed/tables?val = json返回“无效字段名称”deleted_mod_time.usec“。字段必须只包含字母,数字和下划线,以字母或下划线开头,最多128个字符。“
BigQuery API没有对TIMESTAMP
数据类型和常规可为空INTEGER
数据类型进行任何区分的架构,因此我想不出以编程方式纠正此问题的方法。有什么我可以做的,或者这是BigQuery的视图实现的错误?
答案 0 :(得分:2)
您需要取消引用视图的嵌套记录类型字段:
SELECT utm.campaign as utm_campaign ...
你需要写为:
select FORMAT_UTC_USEC(timestamp) as timestamp ...
时间戳在内部存储/选择为嵌套类型,并且视图当前不允许嵌套结果。 BQ团队正在努力修复,但不幸的是,它并不简单。