cube.js driver 开发一些说明
以前有写过关于driver 开发的说明,实际上官方对于driver开发还是很不明确的,因为我们进行driver开发
包含了driver 以及query,cube.js 提供了BaseDriver 以及BaseQuery,一般我们开发就是基于这两个类进行
扩展,同时还有一个关于filter 的类(BaseFilter)进行一些过滤查询的处理
BaseDriver 说明
扩展BaseDriver可以提供不通数据库的访问处理,不如连接同时也包含了information_schmea 的处理,需要实现query
testConnection,同时也推荐实现release方法
- infromation 扩展
很多时候因为数据库的原因对于schema 信息的支持不一样我们可以基于informationSchemaQuery() 方法扩展 - 数据类型处理
很多时候数据类型也需要进行调整,fromGenericType() 方法是一个比较方便的
一般会使用一个json 对象配置
const MySqlToGenericType = {
mediumtext: 'text',
longtext: 'text',
mediumint: 'int',
smallint: 'int',
bigint: 'int',
};
- 数据预聚合处理
此次可以定义自己的规则,包含了loadPreAggregationIntoTable以及downloadQueryResults&&downloadTable
都是比较方便的方法,同时也提供了索引的处理可以加速处理 - 只读Driver
包含了一个readOnly 方法,可以方便的控制数据源的读写情况(方便加速以及缓存处理)
BaseQuery 说明
扩展BaseQuery可以实现强大的sql生成处理,同时也是cube.js 比较核心的一个功能,日常开发中主要是关于时间的处理
说明
关于大数据driver 都是比较值得学习参考的代码,我们可以方便的学习关于driver以及query 的开发,hive
说明
cube.js 关于sql 的处理部分还是比较多的,同时也是比较方便的,强大的同时我们需要扩展的话也需要花更多的时间
后续如果有时间会详细介绍下关于cube.js 的设计
参考资料
https://cube.dev/docs/
https://github.com/cube-js/cube.js/blob/master/CONTRIBUTING.md
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2019-04-10 nomad 0.9 新特性
2019-04-10 goaccess geoip 测试
2018-04-10 elixir 几种安装方式
2018-04-10 一张elixir生产环境部署的图
2017-04-10 基于jquery 的ajax 文件下载
2014-04-10 无法对 数据库'XXXXX' 执行 删除,因为它正用于复制