数据分析之37 个场景使用到集算器

可阅读原文:http://c.raqsoft.com.cn/article/1534732238335?r=alice

1、清单式大报表难以及时呈现,采用数据库分页方式翻页效率很差

  • 集算器将计算和呈现做成两个异步线程,取数线程发出 SQL 将数据缓存到本地,然后交给呈现线程快速展现报表
  • 取数线程只涉及一个事务不会出现数据不一致,保证数据准确性

2、查询报表从数据库中取数量大,JDBC 传输性能低

  • 集算器通过(多线程)并行计算与数据库建立多个连接并行取数提升取数性能
  • 可将量大的冷数据事先存储在库外文件系统中,集算器基于文件直接查询计算,避免通过 JDBC 取数

3、T+0 实时全量查询涉及数据量大,影响生产系统运行,而分库后又难以实施跨库混合运算

  • 将冷热数据分离,仅将当期热数据存放在数据库中,冷数据存储在文件系统或数据库中,通过集算器完成跨源(库)计算,完成多源数据汇总、复杂计算,实现 T+0 全量数据实时查询
  • 集算器提供不同数据库的 SQL 翻译功能,数据分库(同构异构均可)后,仍然可以使用通用 SQL 进行跨库查询

4、SQL 复杂,嵌套层次多,数据库优化路径不可控,运算性能低

  • 集算器采用过程计算,分步实施计算简化实现代码,无需嵌套
  • 过程中可以复用中间结果,性能更高

5、存储过程步骤多,代码长,使用临时表落地中间数据,性能低下

  • 相对存储过程需要反复读写磁盘使用中间结果,集算器提供丰富的运算方案,大量减少中间结果落地,性能更高
  • 集算器采用过程计算,提供丰富函数类库,实现算法短小精悍易于维护
  • 集算器脚本可以脱离数据库编写和运行,减少数据库安全隐患

6、数据关联运算太多,十几甚至几十个表 JOIN,性能恶劣

  • 集算器重新定义关联运算,可以根据计算特征选用不同且高效的关联算法提升多表关联性能
  • 一对多的主外键表可采用指针式连接提高性能
  • 一对一的同维表和多对一的主子表可采用有序归并提升性能

7、巨大数据量中按条件查询或用批量键值取数,无法建索引或简单索引效果很差

  • 集算器提供高性能压缩存储及遍历技术,再配合以并行手段,可以从巨量数据中快速获得查询结果
  • 对于批量键值取数,集算器提供多级索引缓存,可以复用多次取数的索引信息,从而提高性能

8、SQL 难以实现的运算只能在外部应用程序或用 UDF 开发,高性能算法实现难度大

导致效率低下
* 集算器采用全新的离散数据集理论,基于该理论实现的 SPL 具备语法简洁、计算完备的特点,通过 SPL 更容易实现低复杂度、简单灵活的高效算法,从而获得更高性能

9、使用了内存数据库或内存计算技术仍然不能满足性能要求,占用内存过大,硬件成本太高

  • 集算器采用非关系数据库理论,计算过程中有效减少数据复制,不仅占用内存更少,而且运算性能更好
  • 通过指针引用机制可以进一步提升内存利用率和定位效率

10、中央数据仓库支撑了过多应用,并发过多导致性能不可控,前端用户体验差

  • 集算器易于应用集成,可将数据仓库中的部分计算和数据移植到应用层借助集算器计算能力实施数据存储和计算,分担数据仓库压力

繁,累,以及Hadoop的使用场景分析,请看原文:http://c.raqsoft.com.cn/article/1534732238335?r=alice


作者:lisongbo
链接:http://c.raqsoft.com.cn/article/1534732238335?r=alice
来源:乾学院
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/Alice_656/article/details/84637906