网站 二. 支助 文档 二. 支助 实例 二. 支助 博客 二. 支助 偷懒 二. 支助 微博
立方体存储器
立方体预聚合存储层.
动机
在过去的一年里,我们积累了 有关各种用法的反馈 预汇总和如何储存. 我们得知有一套 关系数据库作为存储层具有显著意义的问题 业绩和功能问题.
这些问题包括:
- 业绩问题,主要股价高(1B及以上)
- 缺少超日志支持
- 大项的退化性能
UNION ALL查询 - 穷
JOIN各个滚动表格的业绩 - 不同数据库类型的表格/名称长度问题
- SQL 来源和外部数据库之间的类型差异
随着时间的推移,我们意识到,如果我们试图用现有数据库来解决这些问题 引擎,我们最终会修改 这些数据库的代码库 的方式或那样.
我们决定采取另一种方式,写出我们自己实现的OLAP缓存 存储,仅用于存储和提供规模的滚动表.
方针
为了尽可能优化性能,我们采取了本土方法 正在使用 Rust 开发 Cube Store, 使用一系列技术,例如 RocksDB, Apache Parquet, 和箭头, 已经证明有效的解决方案 数据访问问题.
Cube Store完全开源,并以Apache 2.0许可证发布.
计划
我们打算开始发行 Cube Store 与 Cube,并最终制作 Cube 存储 Cube 的默认预聚合存储层 。 支助 MySQL和Postgres作为外部数据库将继续下去,但优先程度较低.
我们还将更新所有关于预汇总的文件,并包括使用情况 和Cube Store的部署指令.
支助的架构和平台
如果您的平台/ architecture 不支持, 您可以启动 Cube Store 使用多克语.
linux-gnu | linux-musl | darwin | win32 | |
|---|---|---|---|---|
x86 | 不详 | 不详 | 不详 | 不详 |
x86_64 | ✅ | ✅ | ✅ | ✅ |
arm64 | ✅ | [1] |
[1] 可以使用Rosetta 2通过 x86_64-apple 二进制.
使用量
与立方体
从开始 v0.26.48,当 CUBEJS_DEV_MODE=true。 。 。 .
你不需要设置任何 CUBEJS_EXT_DB_* 环境变量或
externalDriverFactory 在你体内 cube.js 配置文件 .
之前的版本 v0.26.48,您应该将您的项目升级到最新的
版本并安装 Cube Store 驱动程序 :
yarn add @cubejs-backend/cubestore-driver
启动后, Cube 会打印一个消息 :
🔥 Cube Store (0.26.64) is assigned to 3030 port.
与 Docker 关系
在多克容器中启动 Cube Store并绑定端口 3030 改为 127.0.0.1数字 :
docker run -d -p 3030:3030 cubejs/cubestore:edge
配置 Cube 以通过
.env 文件 :
CUBEJS_EXT_DB_TYPE=cubestore
CUBEJS_EXT_DB_HOST=127.0.0.1
用多克编曲
创建一个 docker-compose.yml 包含以下内容的文件 :
version: '2.2'
services:
cubestore:
image: cubejs/cubestore:edge
cube:
image: cubejs/cube:latest
ports:
- 4000:4000 # Cube API and Developer Playground
- 3000:3000 # Dashboard app, if created
env_file: .env
depends_on:
- cubestore
links:
- cubestore
volumes:
- ./schema:/cube/conf/schema
配置 Cube 以通过
.env 文件 :
CUBEJS_EXT_DB_TYPE=cubestore
CUBEJS_EXT_DB_HOST=cubestore
构建
docker build -t cubejs/cubestore:latest .
docker run --rm cubejs/cubestore:latest
发展
Debian 先决条件( 不完整 ) : apt-get install lld libssl-dev pkg-config cmake
当更改数据化或箭头时 :
检查出来 https://github.com/cube-js/arrow-rs/tree/cube 页面存档备份,存于互联网档案馆 财务报告和审定财务报表
https://github.com/cube-js/arrow-datacumpation/tree/cube 互联网档案馆的存檔,存档日期2013-12-22 并添加
跟随当前目录 Cargo.toml. (但记住:
把这个排除在公关之外!)
[patch.'https://github.com/cube-js/arrow-rs']
parquet = { path = "../../../arrow-rs/parquet" }
arrow = { path = "../../../arrow-rs/arrow" }
[patch.'https://github.com/cube-js/arrow-datafusion']
datafusion = { path = "../../../arrow-datafusion/datafusion" }
当然,你可以使用绝对路径或调整路径 选择了退出地点.
箭头数据化的解说
.cargo/config.toml 路径线对你也有用,但如果
您正在修改箭头.
许可证
立方体存储器 Apache 2.0 许可。 。 。 .
