应用脚本/制造商和大查询
Posted
技术标签:
【中文标题】应用脚本/制造商和大查询【英文标题】:App script/maker and Big Query 【发布时间】:2018-06-01 10:32:18 【问题描述】:我有一个谷歌应用程序(应用程序制造商),我在其中编写以下代码:
function runQuery()
var projectId = 'projekte-123425512';
var request =
query: 'SELECT title FROM [bigquery-public-data:samples.wikipedia] where title contains "olimpic" LIMIT 100'
;
var queryResults = BigQuery.Jobs.query(request, projectId);
var jobId = queryResults.jobReference.jobId;
var names = queryResults.schema.fields.map(function(field) return field.name; );
return queryResults.rows.map(function(row)
var obj = ;
for( var i = 0, len = names.length; i < len; ++i )
obj[names[i]] = row.f[i].v;
return obj;
);
所以我基本上尝试从 Big Query 中获取一些数据并将其存储在一个数组中。后来我希望它作为我的应用程序中的计算模型和数据源:
我已经尝试过了,并在我的记录器中得到了结果:
有效!但仅在应用程序脚本调试器中,我想测试整个应用程序我收到以下错误:
函数 queryRecords 必须返回一个记录数组,但该数组包含一个不是记录的元素。错误:函数 queryRecords 必须返回一个记录数组,但该数组包含一个不是记录的元素。
编辑
我更新了我的代码
function runQuery()
var projectId = 'nifty-stage-155512';
var request =
query: 'SELECT title FROM [bigquery-public-data:samples.wikipedia] where title contains "olimpic" LIMIT 100'
;
var queryResults = BigQuery.Jobs.query(request, projectId);
var jobId = queryResults.jobReference.jobId;
var names = queryResults.schema.fields.map(function(field) return field.name; );
//var records = [];
return queryResults.rows.map(function(row)
var record = app.models.Test.newRecord();
for (var i = 0, len = names.length; i < len; ++i)
// Calculated model should contain correspondent fields
// all non-defined fields will be ignored
record[names[i]] = (row.f[i].v);
return record;
);
它现在可以正常工作,但我的网格仍然没有数据:
我在网格或数据源的配置中缺少什么吗??
【问题讨论】:
似乎数据源需要一个数组作为大查询输出。但是我返回的对象应该是一个数组... 【参考方案1】:应用制作工具不允许通过其数据源返回任意对象。所有结果都应该是强类型:
...
return queryResults.rows.map(function(row)
var record = app.models.CalcModelName.newRecord();
for (var i = 0, len = names.length; i < len; ++i)
// Calculated model should contain correspondent fields
// all non-defined fields will be ignored
record[names[i]] = row.f[i].v;
return record;
);
这里有一些示例供参考 https://developers.google.com/appmaker/samples/calculated-model/ https://developers.google.com/appmaker/samples/jdbc/
【讨论】:
它现在可以正常工作了 :) 谢谢,但我的网格中仍然没有显示任何数据,有什么我没有想到的吗?我在上面编辑了我的答案。 是的,谢谢,我发布了另一个问题,因为它是一个不同的主题以上是关于应用脚本/制造商和大查询的主要内容,如果未能解决你的问题,请参考以下文章
蓝牙设备制造商的 OSX CoreAudio 查询返回 NULL - 我有啥办法可以参考此设备的 AudioComponentFindNext?