InsertAll与templateSuffix失败

时间:2016-10-29 00:26:34

标签: google-bigquery

我尝试使用templateSuffix将数据流式传输到BigQuery中的表。

有效载荷:

{
    'rows': [{
        'insertId': u '47669460689243',
        'ignoreUnknownValues': True,
        'json': {
            'city': u 'jarinu',
            'cookies': [],
            'remote_addr': u '1.1.1.1',
            'country': u 'BR',
            'region': u 'sp',
            'publishTime': u '2016-10-29T00:04:03.280Z',
            'publishTimeUTC': u '2016-10-29T00:04:03.280Z',
            'cityLatLong': u '-23.103663,-46.728509',
            'user_agent': u 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36',
            'messageId': u '47669460689243',
            'path': u '/hit/ga',
            'arguments': []
        },
        'templateSuffix': '20161029'
    }]
}

当我提交此流媒体作业时,我看到了无错误的回复:

{"kind": "bigquery#tableDataInsertAllResponse"}

但是永远不会创建表:(

我用于创建模板原始表的架构:

{
  'fields': [{
    'name': 'messageId',
    'type': 'STRING',
    'mode': 'REQUIRED'
  }, {
    'name': 'publishTimeUTC',
    'type': 'TIMESTAMP',
    'mode': 'REQUIRED'
  }, {
    'name': 'publishTime',
    'type': 'STRING',
    'mode': 'REQUIRED'
  }, {
    'name': 'remote_addr',
    'type': 'STRING',
    'mode': 'REQUIRED'
  }, {
    'name': 'user_agent',
    'type': 'STRING',
    'mode': 'REQUIRED'
  }, {
    'name': 'cookies',
    'type': 'RECORD',
    'mode': 'REPEATED',
    'fields': [{
      'name': 'name',
      'type': 'STRING',
      'mode': 'REQUIRED'
    }, {
      'name': 'value',
      'type': 'STRING',
      'mode': 'NULLABLE'
    }, ]
  }, {
    'name': 'country',
    'type': 'STRING',
    'mode': 'NULLABLE'
  }, {
    'name': 'region',
    'type': 'STRING',
    'mode': 'NULLABLE'
  }, {
    'name': 'city',
    'type': 'STRING',
    'mode': 'NULLABLE'
  }, {
    'name': 'cityLatLong',
    'type': 'STRING',
    'mode': 'NULLABLE'
  }, {
    'name': 'path',
    'type': 'STRING',
    'mode': 'REQUIRED'
  }, {
    'name': 'arguments',
    'type': 'RECORD',
    'mode': 'REPEATED',
    'fields': [{
      'name': 'name',
      'type': 'STRING',
      'mode': 'REQUIRED'
    }, {
      'name': 'value',
      'type': 'STRING',
      'mode': 'REPEATED'
    }, ]
  }, ]
}

但是当我在没有模板后缀的情况下运行此代码时,请输入"传统的"桌子,马上就好了!

我的架构,我的有效负载有任何问题吗?我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

您的要求是什么样的? template_suffix应该是插入请求的一部分而不是行,请在此处查看:https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables

要通过BigQuery API使用模板表,请将insertSuffix参数添加到insertAll请求中。

答案 1 :(得分:0)

“缺失”表的问题可能是因为您以前删除了一个具有相同名称的表。

如果我创建一个名为foobar的表,然后将其删除,则似乎没有显示另一个名为foobar的表。我似乎记得这已记录在某处,但现在找不到。