如何创建包含时间戳列的表的视图?

时间:2014-06-04 21:14:28

标签: google-bigquery

此问题是previous one I have asked的扩展名。

我有一张表(2014_05_31_transformed.Video),其架构看起来像这样。我已经提出了BigQuery API返回的JSON,在this gist中描述了它的模式。

2014_05_31_transformed.Video schema

我正在尝试使用如下所示的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的视图实现的错误?

1 个答案:

答案 0 :(得分:2)

您需要取消引用视图的嵌套记录类型字段:

SELECT utm.campaign as utm_campaign ...

你需要写为:

select FORMAT_UTC_USEC(timestamp) as timestamp ...

时间戳在内部存储/选择为嵌套类型,并且视图当前不允许嵌套结果。 BQ团队正在努力修复,但不幸的是,它并不简单。