我想将google-api-nodejs-client用于stream rows到Google BigQuery。
深入研究source code我发现我需要一个"资源"参数。我尝试了几种组合并转到apirequest的来源,但我总是收到错误No rows present in the request.
我终于设法一次上传一行npm module,但这个模块不支持tabledata.insertAll()。
您能举例说明如何使用"资源"流插入的参数?
bigquery.tabledata.insertAll({
auth: oauth2Client,
'projectId': config.google.projectId,
'datasetId': config.google.datasetId,
'tableId': config.google.tableId,
'resource ': {
"kind": "bigquery#tableDataInsertAllRequest",
"rows": [
{
"insertId": 123456,
"json": '{"id": 123,"name":"test1"}'
}
]
}
}, function(err, result) {
if (err) {
return console.error(err);
}
console.log(result);
});
答案 0 :(得分:3)
资源后你有一个额外的空间,你试过删除它吗?
'resource ': {
答案 1 :(得分:2)
看起来你正在对插入的行进行额外的编码。它们应该作为原始json发送,而不是将整行编码为字符串。就是这样:
'rows': [
{
'insertId': 123456,
'json': {'id': 123,'name':'test1'}
}
]
(请注意,与上述内容的不同之处仅在于未引用{'id': 123,'name':'test1'}
行。