Cube是无界面商业智能平台。它帮助数据工程师和应用程序开发人员从现代数据存储中访问数据,将其组织为一致的定义,并将其交付给每个应用程序。Cube 旨在与所有支持 SQL 的数据源一起工作,包括像 Snowflake 或 Google BigQuery 这样的云数据仓库、像 Presto 或 Amazon Athena 这样的查询引擎,以及像 Postgres 这样的应用程序数据库。Cube 内置关系缓存引擎,为 API 请求提供亚秒级延迟和高并发。
Cube 拥有实现高效数据建模、访问控制和性能优化所需的基础架构和功能,因此每个应用程序(如嵌入式分析、仪表板和报告工具、数据笔记本和其他工具)都可以通过 REST、SQL 和GraphQL API。
您可以在本地开始使用 Cube,也可以使用 Docker 自行托管它,我们选择使用Docker的方式
请记住使用PowerShell或 WSL2运行以下命令。在新建文件夹中,运行以下命令:
docker run -p 4000:4000 -p 3000:3000 \
-v ${PWD}:/cube/conf \
-e CUBEJS_DEV_MODE=true \
cubejs/cube
前往 http://localhost:4000 ,如果是服务器部署把localhost换成相应的机器IP。
单击应用后,您应该会看到配置的数据库中可供您使用的表。选择一个以生成数据模式。生成架构后,您可以在“构建”选项卡上执行查询。
这些教程是开始学习 Cube.js 的好地方:
以下教程涵盖了 Cube.js 的高级概念:
特征 | 故事 | 案例 |
---|---|---|
向下钻取 | 引入向下钻取表 API | 演示 |
比较日期范围 | 比较不同时间段的数据 | 演示 |
数据混合 | 引入数据混合 API | 演示 |
实时数据获取 | 实时仪表板指南 | 演示 |
动态模式创建 | 使用 asyncModule 生成模式 | — |
验证 | Auth0 集成 | — |
验证 | AWS Cognito 集成 | — |
探索如何将 Cube.js 与数据可视化工具集成:
工具 | 教程 | 演示 |
---|---|---|
D3.js | D3仪表板教程 | 演示 |
谷歌图表 | 谷歌图表仪表板 | 演示 |
Highcharts | React Highcharts 示例 | 演示 |
Material UI | 带有React的MaterialUI仪表板 | 演示 |
Material UI | 使用Materia UI 反应数据表 | 演示 |
Material | 带Materia的角度仪表板 | 演示 |
AG网格 | 使用 AG Grid 反应数据透视表 | 演示 |
地图盒 | 使用 Mapbox 构建基于地图的数据可视化 | 演示 |
Retool | 使用 Retool 构建内部仪表板 | 演示 |
Cube.js是一个用于构建分析web应用程序的开源框架,主要用于构建内部的商业智能工具或将面向客户的分析添加到现有的应用程序当中。大多数情况下,构建此类应用程序的第一步是分析仪表板。通常从“在管理面板中添加一个分析仪表板”开始,然后就像软件开发中经常发生的那样,事情会变得更加复杂。
当开始使用Cube.js时,会想要构建一个工具,它起初很简单,但在功能,复杂性和数据量方面很容易扩展.Cube.js为未来的分析系统奠定坚实的基础,无论是独立的应用程序还是嵌入到现有的分析系统中。
大多数现代web应用程序都是作为单页面应用程序构建的,前端与后端分离。遵循微服务架构,后端通常也会分成多个服务。通常,Cube.js的后端作为服务运行,管理与数据库的连接,包括查询队列,缓存,预聚合等。同时为前端应用程序公开一个API,用于构建仪表板和其他分析功能。
目前很多的低代码的兴起和各种BI的开源项目,也为分析提供了很多的便利,但是很多公司为了能够满足自己的个性化的需求,也在寻求在开源的基础上进行二次开发,那么Cube.js也是个不错的选择。
参考资料: [1] https://github.com/cube-js/cube.js