使用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的性能来说会有不少的提升的

参考资料

https://github.com/markdirish/node-odbc

posted on 2022-03-21 23:27  荣锋亮  阅读(100)  评论(0编辑  收藏  举报

导航