cube.js trino driver 使用几个问题
因为目前集成的实际上就是官方推荐的一个presto node client,但是因为node client 的一些问题(查询状态监测基于循环,所以不是很好)
以下是一个解决方法
禁用timezone
这个需要修改cube.js trino 的驱动,很简单(具体参考源码)
constructor(compilers, options){
// diable timezone
delete options.timezone
super(compilers,options)
}
查询默认800ms 的延迟
这个实际上是可以控制的,比如我们调整为50ms,比较合理的方式时间基于线性补偿的机制(可以参考cube.js dremio以及biguquery的驱动 ),后期调整配置延迟时间
cube.js
const {PrestoDriver,PrestodbQuery} = require("@dalongrong/trino-driver") // 注意驱动使用1.0.1 版本
module.exports = {
dialectFactory: (dataSource) => {
// need config datasource for multitenant env
return PrestodbQuery
},
dbType: ({ dataSource } = {}) => {
return "trino"
},
driverFactory: ({ dataSource } = {}) => {
return new PrestoDriver({
checkInterval:50 // 调整一个比较合适的,后期修改为线性补偿的
})
}
};