问题描述
我们目前正在使用cube.js 作为其数据基础架构、查询和API 功能。
但是,作为我们要求的一部分,我们需要执行统计计算,例如对某些度量进行显着性检验和相关性。在cube.js 中是否有内置的方法来执行此操作?
我们已经尝试使用 Postgresql 内置的关联函数,方法是从 cube.js 模式中的 sql 字段调用它,它可以工作(代码如下所示),但是还有其他替代方法吗?
measures: {
testCorrelation: {
title: 'Test Correlation',sql: `corr(${CUBE}.col1,${CUBE}.col2)`,type:`number`
}
}
对于显着性测试,我们还没有找到任何解决方案。
我们考虑创建一个 python 统计微服务,它会向 cubejs 服务器(也就是一个立方体客户端)发出请求,处理计算,然后将结果集连同附加到反应客户端的计算一起发送。此流程/架构是否有效?是否已在该领域进行过类似的工作?
希望得到任何回应/想法。谢谢。
解决方法
cube.js 中是否有内置的方法来执行此操作?
不会,也可能不会。
Cube.js 提供了在度量内定义 SQL 的能力。有些任务可以在内置函数之上解决。另一部分可以在用户定义的过程/函数或已安装的扩展之上完成。
对于显着性测试,我们还没有找到任何解决方案。
PostgreSQL 本身只有有限的内置统计功能,但 PL/R 扩展支持更多的统计测试和其他功能,超出您的想象。
我们考虑创建一个 python 统计微服务,它会向 cubejs 服务器(也就是一个多维数据集客户端)发出请求
最好在数据库中进行聚合,因为:
- 您将无法使用预聚合
- 数据传输可能需要大量时间和内存
- 某些数据库可以使用列格式进行存储和 SIMD 执行。
谢谢