这个问题是
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?alt=json returned “Invalid field name “deleted_mod_time.usec”. Fields must contain only letters, numbers, and underscores, start with a letter or underscore, and be at most 128 characters long.”
BigQuery API没有对TIMESTAMP数据类型和常规可空的INTEGER数据类型进行任何区分的模式,所以我想不出以编程方式纠正这个问题的方法.有什么我可以做的,或者这是BigQuery的视图实现的错误?
最佳答案 您需要取消引用视图的嵌套记录类型字段:
选择utm.campaign as utm_campaign …
你需要写作:
选择FORMAT_UTC_USEC(时间戳)作为时间戳…
时间戳在内部存储/选择为嵌套类型,并且视图当前不允许嵌套结果. BQ团队正在努力修复,但不幸的是,它并不简单.