使用应用程序脚本在 Big Query 中创建视图 |错误:对 bigquery.tables.insert 的 API 调用失败并出现错误:缺少必需的参数(第 21 行

Posted

技术标签:

【中文标题】使用应用程序脚本在 Big Query 中创建视图 |错误:对 bigquery.tables.insert 的 API 调用失败并出现错误:缺少必需的参数(第 21 行【英文标题】:Creating view in Big Query using apps script | Error : API call to bigquery.tables.insert failed with error: Required parameter is missing (line 21 【发布时间】:2019-11-21 05:09:48 【问题描述】:

我正在尝试从应用程序脚本的大查询中创建一个视图,但我的代码给了我这个错误:

错误:对 bigquery.tables.insert 的 API 调用失败并出现错误:缺少必需的参数(第 21 行...

我不确定我哪里出错了。请帮忙。

注意:我正在使用应用程序脚本创建视图,因为我必须在大查询中将视图从一个项目复制到另一个项目,但传输服务仅复制表而不是视图。我对所有视图都有 SQL 查询,但不想在目标项目中手动运行所有这些 SQL。

脚本:

function create_view() 
  var projectId='MyProjectId';
  var datasetId= 'MyDatasetName';
  var tableID='MyViewName';
  var table=
    view: 
      query:
      'My query here',
      useLegacySql: false
    ,
  tableReference:
    projectId: projectId,
    datasetId: datasetId,
    tableID: tableID,
  ,

;
var queryResults = BigQuery.Tables.insert(table,projectId,datasetId);
  Logger.log(queryResults.status);

【问题讨论】:

【参考方案1】:

您发出的请求是正确的,除了一个小细节:tableID 中的“d”必须像 tableId 中的小写。 您的最终代码如下所示:

function create_view() 
  var projectId = 'MyProjectId';
  var datasetId = 'MyDatasetName';
  var tableId = 'MyViewName';
  var table=
    view: 
      query:
      'My query here',
      useLegacySql: false
    ,
    tableReference:
      projectId: projectId,
      datasetId: datasetId,
      tableId: tableId,
    ,
  ;

  var queryResults = BigQuery.Tables.insert(table,projectId,datasetId);
  Logger.log(queryResults.status);

【讨论】:

以上是关于使用应用程序脚本在 Big Query 中创建视图 |错误:对 bigquery.tables.insert 的 API 调用失败并出现错误:缺少必需的参数(第 21 行的主要内容,如果未能解决你的问题,请参考以下文章

我们可以像在 Hive 中一样在 Big Query 中创建动态分区吗?

Big Query 不允许创建表

将Big Query中的数据自动导入Google表格?

Google Big Query 中的功能

如何从 Google App Script 中的文件运行保存的 Big Query 脚本? [关闭]

将 Firebase Analytics 链接到 Big Query 时,何时导出数据?