cube.js 自定义驱动 static dialectClass 方法说明
实际上官方文档有过描述关于此方法的作用,可以进行自动query 方言的转换处理,同时官方不少插件也使用了此功能
以下做一个简单的说明
作用
- 主要是对于dbtype 可以方便的找到数据库查询方言
参考开发
export class OceanBaseDriver extends BaseDriver implements DriverInterface {
/**
* Returns default concurrency value.
*/
public static getDefaultConcurrency(): number {
return 2;
}
public static dialectClass() {
return OceanBaseQuery;
}
一些问题
- 直接通过dbtype 可以方便的找到query 转换处理(一般是通过环境变量传递的,通过cube.js 的会有问题)
CUBEJS_DB_TYPE=oceanbase
- 对于多租户模式的数据库以及其他模式的推荐还是通过cube.js 定义明确方言处理
参考
module.exports = {
dialectFactory: (dataSource) => {
return OceanBaseQuery
},
dbType: ({ dataSource } = {}) => {
return "oceanbase"
- 对于基于ts 开发的,建议对于query 以及driver 都导出(或者参考官方的玩法, 入口重新export 了)
参考如下(ts 模式)
import { OceanBaseDriver } from './OceanBaseDriver';
import { OceanBaseQuery } from './OceanBaseQuery';
export * from "./OceanBaseDriver"
export * from "./OceanBaseQuery"
export default OceanBaseDriver
export {
OceanBaseQuery,
OceanBaseDriver
}
官方手工重新导出模式
const fromExports = require('./dist/src');
const { QuestDriver } = require('./dist/src/QuestDriver');
const toExport = QuestDriver;
// eslint-disable-next-line no-restricted-syntax
for (const [key, module] of Object.entries(fromExports)) {
toExport[key] = module;
}
module.exports = toExport;
说明
static dialectClass 是一个比较方便的静态方法,可以简化driver 的开发,但是实际上也是有问题的,对于自己开发的driver 推荐还是都暴露处理,为了
方便也可以提供static dialectClass 实现
参考资料
https://github.com/cube-js/cube.js/blob/master/CONTRIBUTING.md
https://github.com/cube-js/cube.js/blob/cfa4b4780f0b1549544bf26e2fb843d69ccdc981/packages/cubejs-questdb-driver/src/QuestDriver.ts
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2022-03-01 minio 支持移除server pool
2022-03-01 Metriql 无头bi 工具
2022-03-01 dremio arrow flight 协议server实现——DremioFlightProducer代码简单介绍
2022-03-01 dremio arrow flight 协议实现——简单说明
2022-03-01 haproxy dataplaneapi 2.5 发布
2020-03-01 pgspider 集成hypopg 虚拟索引扩展
2018-03-01 goreman 多进程管理工具