ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

cube.js 0.30.30 配置的一些变动

2022-07-14 00:34:52  阅读:295  来源: 互联网

标签:cube CUBEJS DB 30 driver 0.30 process env config


好久没关注cube.js 最近0.30.30 有一个比较大的变动就是driverFactory

新配置

  driverFactory: (context: DriverContext) => DriverConfig | BaseDriver | Promise<BaseDriver>;

此配置的影响

此配置会对于开发的自定义驱动有一些影响,推荐的是自己开发的driver 也添加一个type 的定义

const PostgresDriver = require('@cubejs-backend/postgres-driver');
module.exports = {
  driverFactory: ({ dataSource }) =>
    new PostgresDriver({ database: dataSource }),
  dbType: ({ dataSource }) => 'postgres',
};

一个参考dremio 的driver, 详细源码参考github

constructor(config = {}) {
super();
// for cube.js latest version, if we write one custome driver should add this 
this.type="mydremio";
this.config = {
  host: config.host || process.env.CUBEJS_DB_HOST || 'localhost',
  port: config.port || process.env.CUBEJS_DB_PORT || 9047,
  user: config.user || process.env.CUBEJS_DB_USER,
  password: config.password || process.env.CUBEJS_DB_PASS,
  database: config.database || process.env.CUBEJS_DB_NAME,
  ssl: config.ssl || process.env.CUBEJS_DB_SSL,
  ...config,
  pollTimeout: (config.pollTimeout || getEnv('dbPollTimeout') || getEnv('dbQueryTimeout')) * 1000,
  pollMaxInterval: (config.pollMaxInterval || getEnv('dbPollMaxInterval')) * 1000,
};
 
const protocol = (this.config.ssl === true || this.config.ssl === 'true') ? 'https' : 'http';
 
this.config.url = `${protocol}://${this.config.host}:${this.config.port}`;
}

说明

新版本的cube.js 对于调度也有依一些调整了,默认是共享的,如果需要,自定义可以扩展

module.exports = {
  contextToAppId: ({ securityContext }) =>
    `CUBEJS_APP_${securityContext.tenantId}`,
  contextToOrchestratorId: ({ securityContext }) =>
    `CUBEJS_APP_${securityContext.tenantId}`,
};

新版本变动还是不少的,值得深入学习研究下(目前测试,性能提升也是不少, 推荐开发自定义driver 严格使用-cubejs-driver

参考资料

https://cube.dev/docs/config#options-reference-driver-factory
https://github.com/rongfengliang/cubejs-dremio-driver.git

标签:cube,CUBEJS,DB,30,driver,0.30,process,env,config
来源: https://www.cnblogs.com/rongfengliang/p/16476123.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有