【发布时间】:2020-08-17 19:17:08
【问题描述】:
我正在为 Google Datastudio 开发一个自定义连接器,它按照Google Data Studio Community Connectors 文档和关于Building a custom Google Data Studio 的非常好的文章连接到特定的 API 服务。
通过 API 密钥进行身份验证有效。数据模式和数据字段的处理也可以正常工作。我正在检索和显示数据。
剩下的问题之一是数据类型转换。我的原始数据带有一个以分钟为单位的持续时间字段。 Google 提供了一种以秒为单位的持续时间数据类型。因此,我将分钟转换为秒。
function getFields(request) {
var fields = cc.getFields();
var types = cc.FieldType;
var aggregations = cc.AggregationType;
fields.newDimension().setId('id').setName('ID').setType(types.NUMBER);
fields.newDimension().setId('date').setName('Date').setType(types.YEAR_MONTH_DAY);
fields.newDimension().setId('user_id').setName('User ID').setType(types.NUMBER);
fields.newDimension().setId('user').setName('User').setType(types.TEXT);
//fields.newMetric().setId('time').setName('Time').setType(types.DURATION).setAggregation(aggregations.SUM);
fields.newMetric().setId('time').setName('Time').setType(types.NUMBER).setAggregation(aggregations.SUM);
fields.newMetric().setId('revenue').setName('Revenue').setType(types.CURRENCY_EUR).setAggregation(aggregations.SUM);
fields.setDefaultDimension('user');
fields.setDefaultMetric('time');
return fields;
}
持续时间以秒为单位的documentation on data types。因此,原始数据有 180 分钟转换为 10.800 秒。如果我将该数据返回为NUMBER,那么它会正确显示。如果我随后将 UI 中的数据类型切换为持续时间,它会自动转换并显示为 03:00:00(三小时 = 180 分钟 = 10.800 秒)。但是当我将原始数据返回为DURATION 时,连接器将失败,UI 将无法工作。
知道如何正确转换和设置DURATION 类型的数据吗?
【问题讨论】:
标签: google-apps-script google-data-studio timespan