使用Google Apps脚本将查询中的数据加载到Big Query - 缺少必需参数

时间:2015-12-01 15:56:52

标签: google-apps-script google-bigquery

我正在尝试使用以下代码将数据插入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文档,但我看不出问题所在。我有一个更复杂的例子,使用这种方法,它的工作原理,我没有选择。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

检查目的地表格中的以下行:

tableId: tableId+tableDate

尝试在外面定义tableId,然后使用

tableId: tableId

如果这仍然不适合您 - 我建议在Native BG UI中手动执行类似(或相同)查询,然后使用已发出的jobid检查配置。通过这种方式,您可以确定在您的情况下它应该是什么样的