我尝试使用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'
}, ]
}, ]
}
但是当我在没有模板后缀的情况下运行此代码时,请输入"传统的"桌子,马上就好了!
我的架构,我的有效负载有任何问题吗?我错过了什么吗?
答案 0 :(得分:0)
您的要求是什么样的? template_suffix应该是插入请求的一部分而不是行,请在此处查看:https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables
要通过BigQuery API使用模板表,请将insertSuffix参数添加到insertAll请求中。
答案 1 :(得分:0)
“缺失”表的问题可能是因为您以前删除了一个具有相同名称的表。
如果我创建一个名为foobar
的表,然后将其删除,则似乎没有显示另一个名为foobar
的表。我似乎记得这已记录在某处,但现在找不到。