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   // 调整一个比较合适的,后期修改为线性补偿的
        })
    }
}; 

参考资料

https://github.com/rongfengliang/cubejs-trino-driver

原文地址:https://www.cnblogs.com/rongfengliang/p/14655707.html