随笔分类 -  cubejs

cube.js TimeoutError: ResourceRequest timed out 问题
摘要:最近在进行cube.js优化的时候碰到了此问题,实际上后边经过查看官方文档,官方也说明了次问题 主要的原因 redis 并发连接配置的(但是不简单是这样的,经过测试在极端情况下如果连接池可用连接不够的时候会出现整个服务都不可用的问题) 官方的解决方法 结合自己实际的用户查询请求配置连接池 参考配置 阅读全文

posted @ 2021-04-18 17:48 荣锋亮 阅读(275) 评论(0) 推荐(0) 编辑

使用graalvm 运行cube.js
摘要:graalvm 一个瑞士军刀,很强大,希望基于graalvm 增强cube.js 的稳定性以及性能,所以做了一个简单demo 环境 docker-compose 文件 version: "3" services: trino: image: trinodb/trino:355 volumes: - 阅读全文

posted @ 2021-04-17 12:20 荣锋亮 阅读(293) 评论(0) 推荐(0) 编辑

cube.js 自定义checkAuth 响应状态码
摘要:如果阅读源码了,会发现默认是基于UserError 进行处理的,但是默认只有403,解决方法 参考源码 通过以下源码可以看到内部处理 protected checkAuth: RequestHandler = async (req, res, next) => { const token = thi 阅读全文

posted @ 2021-04-16 23:23 荣锋亮 阅读(147) 评论(0) 推荐(0) 编辑

cube.js dremio driver 类型转换bug修改
摘要:主要是为了和官方保持一致,添加了一下方法 castParameter() { if (this.definition().type 'boolean') { return 'CAST(? AS BOOLEAN)'; } else if (this.measure || this.definition 阅读全文

posted @ 2021-04-15 22:55 荣锋亮 阅读(93) 评论(0) 推荐(0) 编辑

cube.js 动态编译问题
摘要:一般官方解决的动态编译使用asyncModule 但是asyncModule 有一些问题(对于join 处理有问题,这个是一个bug) 解决方法 使用repositoryFactory 不是很难,自己实现一个基于文件或者数据api的schemaFactory 使用sqlAlias 好处是cube 的 阅读全文

posted @ 2021-04-15 21:32 荣锋亮 阅读(125) 评论(0) 推荐(1) 编辑

cube.js 通过prepareCompiler获取 meta
摘要:meta 在cube.js 还是比较重要的(尽管当前没有太多的使用介绍),但是我们基于meta 可以进行 代码生成,进行数据分析处理(基于元数据,方便开发数据分析应用),playground 就是集成了次 进行界面开发 参考代码 app.js const {prepareCompiler} = re 阅读全文

posted @ 2021-04-14 22:55 荣锋亮 阅读(100) 评论(0) 推荐(0) 编辑

cube.js 通过require 加载schema
摘要:我们可以通过require 的模式加载配置好的schema,但是需要注意sql 以及drillMembers 必须是一个函数()=> string 或者()=>string[] 几点说明 自己开发的schema 不能再schema文件夹中 sql 以及drillMembers 必须是一个函数()=> 阅读全文

posted @ 2021-04-13 23:36 荣锋亮 阅读(118) 评论(0) 推荐(0) 编辑

cube.js trino driver 使用几个问题
摘要:因为目前集成的实际上就是官方推荐的一个presto node client,但是因为node client 的一些问题(查询状态监测基于循环,所以不是很好) 以下是一个解决方法 禁用timezone 这个需要修改cube.js trino 的驱动,很简单(具体参考源码) constructor(co 阅读全文

posted @ 2021-04-13 22:35 荣锋亮 阅读(161) 评论(0) 推荐(0) 编辑

cube.js trino driver
摘要:主要是因为trino 相比presto 有修改,所以重新开发了一个cube.js 的驱动 参考代码 trino node client 也基于官方的进行了调整,参考以下连接 代码结构 实际与presto 一样,所以代码也就没有太多修改,主要修改了依赖的驱动 参考使用 .env # Cube.js e 阅读全文

posted @ 2021-04-13 00:03 荣锋亮 阅读(128) 评论(0) 推荐(0) 编辑

cube.js playground 使用的一些问题
摘要:playground 是一个很不错的选择,可以方便的为我们生成cube.js schema 但是如果经常使用的话,会发现一些问题 只包含了为string类型的列 当然这个应该是一个bug,具体可以参考 https://github.com/cube-js/cube.js/blob/master/pa 阅读全文

posted @ 2021-04-12 13:44 荣锋亮 阅读(129) 评论(0) 推荐(0) 编辑

cube.js 配置自定义basePath 扩展cube.js 多租户处理
摘要:cube.js 默认的basePath是cubejs-api 我们可以通过配置自定义的basePath提升多租户的处理能力 参考配置 module.exports = { basePath:"/oneservice/:projectid", schemaVersion: ({ securityCon 阅读全文

posted @ 2021-04-11 20:55 荣锋亮 阅读(127) 评论(0) 推荐(0) 编辑

cube.js 测试Query 的方法
摘要:核心还是基于官方的预编译能力,然后构建自己的query 传递参数进行测试 参考代码 app.js const {prepareCompiler} = require("@cubejs-backend/schema-compiler") module.exports = { preCompiler:f 阅读全文

posted @ 2021-04-11 20:14 荣锋亮 阅读(165) 评论(0) 推荐(0) 编辑

cube.js prepareCompiler api 试用
摘要:前边有介绍过prepareCompiler API ,以下是一个项目集成使用简单说明 包装prepareCompiler api 实际上可以不用,但是为了方便使用可以包装一下,比如提供给express 或者类似web 框架 cmd module app.js, 此处的adapter 并不是必须,如果 阅读全文

posted @ 2021-04-10 19:29 荣锋亮 阅读(92) 评论(0) 推荐(0) 编辑

cube.js schema 预编译处理
摘要:在实际开发中,对于schema 检查是很重要的,不然一个异常的schema 会造成整个系统服务的不可用 参考进行schema预编译的处理 参考做法 自己定义一个,同时使用schema 编译包提供的方法 import { prepareCompiler as originalPrepareCompil 阅读全文

posted @ 2021-04-10 13:50 荣锋亮 阅读(110) 评论(0) 推荐(0) 编辑

cube.js driver 开发一些说明
摘要:以前有写过关于driver 开发的说明,实际上官方对于driver开发还是很不明确的,因为我们进行driver开发 包含了driver 以及query,cube.js 提供了BaseDriver 以及BaseQuery,一般我们开发就是基于这两个类进行 扩展,同时还有一个关于filter 的类(Ba 阅读全文

posted @ 2021-04-10 13:27 荣锋亮 阅读(126) 评论(0) 推荐(0) 编辑

cube.js mssql driver 问题
摘要:目前mssql driver 运行的时候会有以下错误 The multi-part identifier "columns.data_type" could not be bound 原因 需要指定别名 解决方法 MSSqlDriver 重写informationSchemaQuery 方法,我已经 阅读全文

posted @ 2021-04-09 17:01 荣锋亮 阅读(97) 评论(0) 推荐(0) 编辑

cube.js s3 FileRepository 新功能
摘要:为了更好的集成cube.js 多租户的能力,进行了一些调整,支持基于配置参数的s3 schema 访问处理 同时加强了数据桶过滤的支持 核心修改的代码 主要是关于构造函数以及minio链接部分 constructor(config) { const { ...restConfig } = confi 阅读全文

posted @ 2021-04-08 20:23 荣锋亮 阅读(204) 评论(0) 推荐(0) 编辑

包装一个cube.js dremio 的驱动
摘要:因为默认cube.js dremio 查询1s 延迟的问题,进行了调整(参考了bigquery driver 的模式) 项目代码说明 代码结构 ├── README.md ├── driver │ ├── DremioDriver.js │ ├── DremioQuery.js │ └── inde 阅读全文

posted @ 2021-04-08 20:22 荣锋亮 阅读(94) 评论(0) 推荐(0) 编辑

cube.js checkAuth 问题记录
摘要:默认cube.js 是基于jwt 进行认证的,当我们没有配置checkAuth 函数的时候,cube.js 的api server 会自动进行jwt 的解码 同时放到securityContext中,但是当我们自己配置了之后就不会自动处理securityContext了 解决方法 自己实现jwt 的 阅读全文

posted @ 2021-04-08 20:21 荣锋亮 阅读(131) 评论(0) 推荐(0) 编辑

开发一个materialize cube.js driver
摘要:因为materialize 是兼容pg 协议的(不是100%,但是常用的是兼容的)所以开发一个materialize driver 还是比较简单的 需要解决的问题 因为materialize不支持,删除就可以了statement_timeout 参考代码 修改的代码 // await client. 阅读全文

posted @ 2021-04-07 22:47 荣锋亮 阅读(83) 评论(0) 推荐(0) 编辑

导航