04 2021 档案

使用map 解决cube.js 默认title 显示的问题
摘要:默认cube client sdk 提供了比较完整的处理展示,但是因为titile 比较长,或者就不是我们应该显示的,造成一些问题 参考解决方法 使用map 进行以下数据转换就可以了 const columns = resultSet.tableColumns().map((item)=>{ ret 阅读全文

posted @ 2021-04-28 22:29 荣锋亮 阅读(133) 评论(0) 推荐(0) 编辑

cube.js 自定义日志处理
摘要:cube.js 的日志处理部分是可以扩展的, 参考机制 const winston = require('winston'); const { loggly } = require('winston-loggly-bulk'); winston.add( new loggly({ token: 'L 阅读全文

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

tendis nodejs 连接问题
摘要:经过测试node-redis 客户端与tendis 连接是有点问题的(golang 以及java 是没有问题的) 原因分析 因为node-redis 支持debug模式,通过分析发现还是tendis兼容的问题与redis还是有差异的 具体分析方法 参考代码 const redis = require 阅读全文

posted @ 2021-04-26 13:05 荣锋亮 阅读(196) 评论(0) 推荐(0) 编辑

nodejs 异步转同步整理
摘要:主要是集中参考使用方法,可以结合自己的场景解决问题 参考代码 const co =require("co") const AsyncUtil = require('async-utility').default; async function demo(){ return { name:"dalon 阅读全文

posted @ 2021-04-26 00:10 荣锋亮 阅读(644) 评论(0) 推荐(0) 编辑

使用async-utility 转换异步请求为同步
摘要:nodejs 的回调,async,promise 都是解决实际异步问题,但是很多时候异步转为同步也是一个实际的需求 参考解决方法 使用async-utility(依赖了deasync) 参考代码 const AsyncUtil = require('async-utility').default; 阅读全文

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

cube.js schemaVersion npm 包
摘要:为了方便使用,包装了一个npm包可以直接使用,具体代码参考连接 npm 使用 yarn add @dalongrong/cubejs-schemaversion-cache cube.js // Cube.js configuration options: https://cube.dev/docs 阅读全文

posted @ 2021-04-24 19:59 荣锋亮 阅读(80) 评论(0) 推荐(0) 编辑

开发一个cube.js schemaVersion 包装
摘要:默认dev环境schema 是不cache,所以会每次执行,生成环境是必须cache的,但是cache就有schemaversion 的问题 所以基于cache-manager 包装了一个cache处理的,代码很简单,但是可以减少对于schemaversion的时间消耗 参考包装代码 schemav 阅读全文

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

cube.js 多租户参考设计说明
摘要:下图是参考官方文档以及源码,整理的一个简单的说明,可以参考 参考图 阅读全文

posted @ 2021-04-24 14:06 荣锋亮 阅读(111) 评论(0) 推荐(0) 编辑

cube.js 调度&&查询队参考参数
摘要:参考参数 packages/cubejs-query-orchestrator/src/orchestrator/QueryQueue.js 构造函数 constructor(redisQueuePrefix, options) { this.redisQueuePrefix = redisQueu 阅读全文

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

cube.js 自定义首页显示信息
摘要:实际上是一个简单的问题,就是依赖了initApp 参数 参考使用 index.js module.exports = function(app){ if(process.env.NODE_ENV=="production"){ app.get("/",function(req,res){ res.s 阅读全文

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

cube.js data-blending一些说明
摘要:cube.js 的data-blending 理论上是可以支持多种查询的的聚合的,但是因为目前有一些限制,使用起来不是很方便 参考代码 gateway.ts 文件 async getNormalizedQueries(query, context) { query = this.parseQuery 阅读全文

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

cube.js 新版本的一些特性
摘要:最近版本(0.26.100)包含一个很不错的特性支持在checkAuth进行自定义异常以及状态码的返回处理 自定义状态码参考使用 const {CubejsHandlerError} = require("@cubejs-backend/api-gateway") module.exports = 阅读全文

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

cube.js TimeoutError: ResourceRequest timed out 问题参考解决方法
摘要:查看最近官方提交了一个pr进行了此问题的修复(这个问题官方提交了两个pr) 参考pr https://github.com/cube-js/cube.js/pull/2576 https://github.com/cube-js/cube.js/pull/2575 核心解决说明 主要是2576 这个 阅读全文

posted @ 2021-04-20 09:43 荣锋亮 阅读(181) 评论(0) 推荐(0) 编辑

使用k6 压测cube.js 请求接口
摘要:参考js 脚本 app.js // Creator: WebInspector 537.36 import { sleep, group,check } from "k6"; import http from "k6/http"; export const options = { vus: 2000 阅读全文

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

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

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

streamsets http client 请求过大问题
摘要:http 请求body 过大问题 现象 com.streamsets.pipeline.api.ext.io.OverrunException: Reader exceeded the read limit '1048576' 解决 in version 2.6 and before - add t 阅读全文

posted @ 2021-04-17 22:07 荣锋亮 阅读(542) 评论(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) 编辑

使用presto-gateway 进行trino 扩展
摘要:类似presto我们可以基于presto-gateway 进行扩展 参考使用 lfyt玩法 pinterest 玩法 说明 目前presto-gateway 将会进行新版本的扩展,已经在预览了,对于trino 的扩展我们可以基于协议兼容处理 protocol.v1.alternate-header- 阅读全文

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

trino 兼容presto 的方法
摘要:因为从trino 351修改了协议,但是官方也是提供了兼容方法的,以下是解决方法 客户端协议兼容 配置协议可选请求头名 一般为etc/trino/config.properties protocol.v1.alternate-header-name=Presto 参考资料 https://trino 阅读全文

posted @ 2021-04-17 09:14 荣锋亮 阅读(763) 评论(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) 编辑

xfs 磁盘扩容
摘要:主要是一个记录 需要执行的命令 先growpart growpart /dev/xvda 1 然后 xfs_growfs -d /dev/xvda1 参考资料 https://stackoverflow.com/questions/25262518/xfs-grow-not-working 阅读全文

posted @ 2021-04-15 22:45 荣锋亮 阅读(181) 评论(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) 编辑

trino nodejs 驱动
摘要:因为trino 与presto还是有差异的,所以fork 原有presto clinet进行了调整,同时发布了一个npm包 参考修改的代码 lib/presto-client/headers.js var Headers = exports.Headers = function(){ }; Head 阅读全文

posted @ 2021-04-13 00:07 荣锋亮 阅读(205) 评论(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) 编辑

apache kylin 大数据olap 方案
摘要:参考图 生态 因为kylin提供了jdbc,rest api 所以我们可以方便的进行集成使用(我们可以开发一个cube.js 的驱动,可以方便的进行数据分析)后边尝试开发一个cube.js driver 集成测试下 参考资料 http://kylin.apache.org/http://kylin. 阅读全文

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

k6 如何进行api 测试(demo)
摘要:内容来自官方文档,一个简单的基于postman 进行api 测试 参考图 使用说明 编写测试脚本 转换api (har,以及postman 请求到测试脚本) 执行测试k6提供了har 转换工具以及postman 2 k6 的工具可以简化脚本的生成 参考资料 https://k6.io/docs/te 阅读全文

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

k6 运行大规模测试
摘要:主要内容来自官方文档,介绍k6关于大规模测试的系统配置以及使用 一些说明 k6 能够利用所有的cpu资源,同时单实例可以提供3-4 万的vus,同时可以生成30-40万的rps 推荐的主机配置 内核 sysctl -w net.ipv4.ip_local_port_range="1024 65535 阅读全文

posted @ 2021-04-11 00:07 荣锋亮 阅读(687) 评论(0) 推荐(0) 编辑

k6 常见测试模式说明
摘要:k6 对于常见的测试进行了多种说明,同时也有比较详细的讲解还是很不错的 常见参考测试类型 简单说明 (smoke test) 冒烟测试, 验证系统的最小负载,而不会出现任何问题 (load tet)负载测试, 主要根据并发用户以及每秒请求评估系统性能 (stress test,spike test) 阅读全文

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

k6 使用参考
摘要:以下进行一些k6负载测试工具使用的一些说明 提供负载测试文件 实际上就是一个js文件 参考js 文件格式 // init code export default function() { // vu code } 一些说明 js 文件,可以自己编写,同时也可以基于har 文件生成,k6提供了har 阅读全文

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

dremio 开发测试简单说明
摘要:目前官方关于如何进行相关开发测试的明确的文档说明,但是我们基于官方提供的测试用例可以基本了解 官方提供的测试用例 sabot/kernel/src/test/java/com/dremio 目录 ├── ArrowDsUtil.java ├── BaseDecimalFunctionTests.ja 阅读全文

posted @ 2021-04-10 23:26 荣锋亮 阅读(238) 评论(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) 编辑

npm的package.json中的dependencies版本号
摘要:今天在碰到cube.js 关于一个版本bug 的问题的时候,发现npm 版本是一个比较重要的概念所以整理下关于npm 依赖版本号的说明 version 必须完全和version一致 >version 必须比version大 >=version 同上 <version 同上<=version 同上 ~ 阅读全文

posted @ 2021-04-07 22:50 荣锋亮 阅读(469) 评论(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) 编辑

lerna &&yarn 开发流程
摘要:参考使用流程 独立版本 lerna.json { "packages": [ "packages/*" ], "version": "independent", // 此处比较重要,推荐基于独立版本模式 "npmClient": "yarn", "useWorkspaces": true // 使用 阅读全文

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

haproxy 支持fix 协议
摘要:haproxy2.4(社区版)支持fix 协议的处理,包含以下特性 lb 多个fix server 加密fix 消息(tls) 校验fix 消息 基于tag 的路由 基于tls 客户端证书的认证 客户端ip 匹配 说明 fix 在金融领域使用的比较多,后边可以尝试下此特性 参考资料 https:// 阅读全文

posted @ 2021-04-05 11:28 荣锋亮 阅读(108) 评论(0) 推荐(0) 编辑

dremio arp connector 开发
摘要:主要是为了实现类似数据联邦的功能的 参考图 代码 package com.dalong.dremio; import com.dremio.common.AutoCloseables; import com.dremio.common.util.CloseableIterator; import c 阅读全文

posted @ 2021-04-05 10:03 荣锋亮 阅读(185) 评论(0) 推荐(0) 编辑

dremio 连接dremio 扩展dremio 集群规模
摘要:将dremio 串联到dremio 可以扩展dremio 的能力提供一种联邦的能力,扩展数据查询以及数据虚拟层的能力 参考图 说明 就是类似一种联邦的模式,dremio 可以串联dremio,核心方法是开发一个dremio 的arp connector,具体的开发方式与cratedb 的模式是一样的 阅读全文

posted @ 2021-04-05 09:13 荣锋亮 阅读(152) 评论(0) 推荐(0) 编辑

开发一个dremio cratedb arp connector
摘要:以前有介绍过如何基于arp模式开发一个dremio cratedb 的connector,但是当时的开发还是有点问题的 以下是一个参考官方jdbc plugin 开发的cratedb connector (支持schema 获取) 参考源码 package com.dremio.exec.store 阅读全文

posted @ 2021-04-05 01:06 荣锋亮 阅读(146) 评论(0) 推荐(0) 编辑

dremio 自定义arp 开发的几个细节
摘要:官方关于arp的开发说明比较简单,如果需要支持一个兼容jdbc 的数据库开发还是有一些问题需要解决的 标准格式 conf 类 主要包含了关于UI,以及方言类的定义,同时也包含了数据源的管理,schema 的处理也比较重要 参考格式 @SourceType(value = "SNOWFLAKE", l 阅读全文

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

protostuff java 序列化&&proto 编译&&生成器
摘要:特性 高效-性能以及内存 灵活-支持插件化的格式 场景 rpc 的消息层 数据存储以及cache的存储格式 参考资料 https://github.com/protostuff/protostuffhttps://protostuff.github.io/docs/ 阅读全文

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

dremio 15一些新特性简单说明
摘要:以下进行一个特性说明 新特性 utf-8编码支持 以前我们需要特殊处理(env 以及函数),现在可以直接查询了(测试可行) 启动清理有异常的物化视图 这个是早期dremio 版本存在的问题(当异常操作的时候,造成加速有问题,自动清理可以解决类似问题,因为依靠定时刷新还是有问题的) join 查询的性 阅读全文

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

dremio 15 发布
摘要:几天前dremio 发布了15,有了好多性能提升以及bug修复,具体可以参考官方文档,后边试用下 参考资料 https://docs.dremio.com/release-notes/1500-release-notes/ 阅读全文

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

cube.js dremio driver基于补偿机制提升查询速度
摘要:默认cube.js 的dremio driver 在设计的时候,为了进行状态处理的请求使用了循环处理,同时添加了一个1s的延迟处理 原始参考代码 async query(query, values) { const queryString = applyParams( query, (values 阅读全文

posted @ 2021-04-01 20:49 荣锋亮 阅读(118) 评论(0) 推荐(0) 编辑

导航