cube-js/cube
在 GitHub 查看Pre-aggregations with elasticsearch as datasource are not timezone aware
Open
#7,700 创建于 2024年1月29日
driver:elasticsearchhelp wanted
仓库指标
- Star
- (19,563 star)
- PR 合并指标
- (平均合并 5天 16小时) (30 天内合并 138 个 PR)
描述
When creating pre-aggregations with different time zones and elasticsearch as a data source, the time dimension of the results is not converted to each applicable time zone because 'convertTz' is not implemented in the "ElasticSearchQuery" adapter. The convertTz function code can be as follows:
public convertTz(field: string): string {
const tz = moment().tz(this.timezone);
// TODO respect day light saving
const [hour, minute] = tz.format('Z').split(':');
const [hourInt, minuteInt] = [parseInt(hour, 10), parseInt(minute, 10) * Math.sign(parseInt(hour, 10))];
let result = field;
if (hourInt !== 0) {
result = `TIMESTAMPADD('hour', ${hourInt}, ${result})`;
}
if (minuteInt !== 0) {
result = `TIMESTAMPADD('minute', ${minuteInt}, ${result})`;
}
return result;
}