cube.js 新的预聚合层

cube.js 目前扩展了原有pre-aggregation 处理层,基于rust 自己搞了一层新的存储处理,目前还没有ga
但是功能很不错,看到的是cube.js 团队打算自己基于rust 实现一个通用的底层基于apache arrow 的数据
格式处理,以前来说cube.js包含两类聚合处理内部的以及外部的聚合处理

参考

  • 内部处理
 
cube(`Orders`, {
  sql: `select * from orders where completed = true`,
  preAggregations: {
    main: {
      type: `originalSql`
    }
  }
});
  • 外部
cube(`Orders`, {
  sql: `select * from orders`,
  //...
  preAggregations: {
    categoryAndDate: {
      type: `rollup`,
      measureReferences: [Orders.count, revenue],
      dimensionReferences: [category],
      timeDimensionReference: createdAt,
      granularity: `day`,
      partitionGranularity: `month`,
      external: true
    }
  }
});

说明

目前从代码上来看,cube.js 基于 rust 的新预聚合处理是基于mysql 协议包装的,底层基于apache arrow
进行存储,sql 解析基于sqlparser,同时依赖了msql-srv这样就可以包装成为一个mysql 引擎了

参考资料

https://github.com/cube-js/cube.js/tree/master/rust

posted on 2020-12-30 21:05  荣锋亮  阅读(262)  评论(0编辑  收藏  举报

导航