使用odbc 提升cube.js 查询dremio 的性能
主要是一个技术说明,后续开发相关的driver
原理
dremio 是支持obdc 访问的,odbc 是比直接的http 访问有更快的性能,而且可以使用更加标准的sql 查询
参考处理
社区已经有了完整的实现node-odbc 我们可以使用来使用
参考demo
dremio 的odbc 需要先安装,具体参考官方文档,对于mac 需要先安装unixodbc然后安装dremio的odbc,注意目前对于linux 没有debian包,只有rpm包
- 参考代码
const odbc = require('odbc');
const username = "<>";
const password = "<>"
const host= "<>"
const port = 31010
async function connectToDatabase() {
// 此处对于driver的路径是mac 的linux 具体结合实际调整
const connectionConfig = {
connectionString:`DRIVER=/Library/Dremio/ODBC/lib/libdrillodbc_sbu.dylib;Host=${host};ConnectionType=Direct;Port=${port};UID=${username};PWD=${password}`,
connectionTimeout: 10,
loginTimeout: 10,
}
const connection2 = await odbc.connect(connectionConfig);
let result = await connection2.query(`select * from "@dalong".gitlab`)
console.log(result)
}
connectToDatabase();
说明
基于odbc 我们可以一个cube.js driver 对于dremio的性能来说会有不少的提升的