我正在尝试使用以下代码将数据插入Big Query。但是,我收到错误“缺少必需参数”。
function runQuery() {
var projectId = 'xxxxxxx';
var datasetId = 'Registration_Funnel_Test';
var tableId = 'reg_funnel_test_';
var date = '2015-11-05';
var tableDate = date.split('-').join('');
var bigQueryQuery = {
query: 'SELECT'+
'date,'+
'CONCAT([fullVisitorId], STRING([visitId])) as sessionId,'+
'hits.eventInfo.eventAction as event_action,'+
'FROM (TABLE_DATE_RANGE([82514188.ga_sessions_],TIMESTAMP("'+date+'"),'
TIMESTAMP("'+date+'"))) '+
'WHERE hits.eventInfo.eventAction IN ("Started Registration",'+
"Completed Registration","Made First Deposit")'+
'GROUP EACH BY date, sessionId, event_action;'
};
var job = {
configuration: {
query: {
query: bigQueryQuery,
destinationTable: {
projectId: projectId,
datasetId: datasetId,
tableId: tableId+tableDate
},
'allowLargeResults': true,
'createDisposition': 'CREATE_IF_NEEDED',
'writeDisposition': 'WRITE_TRUNCATE'
}
}
};
var jobResult = BigQuery.Jobs.insert(job, projectId);
Logger.log(jobResult.status.state);
Logger.log(jobResult.status);
}
抛出错误的代码行是var jobResult = BigQuery.Jobs.insert(job, projectId);
可以在https://cloud.google.com/bigquery/docs/reference/v2/jobs/insert找到Google文档,但我看不出问题所在。我有一个更复杂的例子,使用这种方法,它的工作原理,我没有选择。任何帮助将不胜感激。
答案 0 :(得分:0)
检查目的地表格中的以下行:
tableId: tableId+tableDate
尝试在外面定义tableId,然后使用
tableId: tableId
如果这仍然不适合您 - 我建议在Native BG UI中手动执行类似(或相同)查询,然后使用已发出的jobid检查配置。通过这种方式,您可以确定在您的情况下它应该是什么样的