使用 Google Apps 脚本将查询中的数据加载到 Big Query - 缺少必需参数
Posted
技术标签:
【中文标题】使用 Google Apps 脚本将查询中的数据加载到 Big Query - 缺少必需参数【英文标题】:Loading data from a query to Big Query with Google Apps Script - Required Parameter is missing 【发布时间】:2015-12-01 15:56:51 【问题描述】:我正在尝试使用以下代码将数据插入 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 文档,但我就是看不到问题所在。我有一个更复杂的例子,它使用这种方法并且它有效,所以我没有选择。任何帮助将不胜感激。
【问题讨论】:
您上面的代码似乎有些奇怪...... 'var bigQueryQuery ' 行有一个左大括号,但我没有看到相应的右大括号。看起来它正在设置一个“查询”字段,但它应该只是一个字符串。 谢谢@JordanTigani。我通过添加右大括号修改了上面的代码错误。我现在尝试只使用一个字符串。 你是如何创建 projectId 的? 【参考方案1】:检查目标表中的以下行:
tableId: tableId+tableDate
尝试在外面定义tableId然后使用
tableId: tableId
如果这仍然对您不起作用 - 我建议在 Native BG UI 中手动执行类似(或相同)的查询,然后使用发布的 jobid 检查配置。这样您就可以确定您的情况应该是什么样子
【讨论】:
以上是关于使用 Google Apps 脚本将查询中的数据加载到 Big Query - 缺少必需参数的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在仅附加模式下使用 Google Apps 脚本将数据从 BigQuery 加载到 Google 表格?
Google Apps 脚本 - 将 gmail 中的数据提取到电子表格中
如何通过 Google 表格中的二维数组通过 Apps 脚本插入 Big Query?
为啥通过 Google Apps 脚本向 Bigquery 加载的数据仅限于 513 行数据?