使用应用程序脚本在 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 中创建动态分区吗?