数据分析用它就够了 | 37 个场景告诉你为什么
更新:HHH 时间:2023-1-7
|
【报表查询性能】1. 数据量大或并发多导致的查询性能低下,BI 界面拖拽响应很慢2.T+0 实时全量查询报表涉及数据量大,影响生产系统运行,而分库后又难以实施跨库混合运算
3. 数据关联运算太多,十几甚至几十个表 JOIN,性能恶劣4. 数据源 SQL 复杂,嵌套层次多,数据库优化路径不可控,运算性能低5. 报表从数据库中取数量大,JDBC 传输性能低
6. 清单式大报表难以及时呈现,采用数据库分页方式翻页效率很差【报表查询开发】7. 报表开发没完没了,占用程序员的过多工作量,找不到低成本高效率的应对手段8. 业务人员取数需求多,敏捷 BI 并不管用,技术部门应对这些需求费时费力9. 数据源 SQL 或存储过程过于复杂,嵌套或步骤多,调试开发都很困难10.SQL(存储过程)语法涉及数据库方言,难以移植11. 复杂过程运算用 SQL 很难写,需要大量外部 Java 计算,开发效率低12.Java 和 SQL 编写的数据源与报表模板分开存储,程序耦合性太强,还难以做到热切换13. 涉及 MySQL 等开源数据库,窗口函数等许多高级语法不支持,开发困难14. 某些数据库(如 Vertica)对存储过程支持不好,难以实现复杂过程15. 涉及 NoSQL 数据、文本、Excel 等,无法使用 SQL 运算16. 涉及 Web 或 IOT 等实时数据,有 json/xml 格式需要处理,事先导入数据库不仅效率低又影响实时性【ETL 开发与性能】17.ETL 工具不能直接解决复杂业务逻辑,还要大量编写脚本,而 ETL 工具的脚本功能常常弱于 SQL,开发困难18.SQL(存储过程)缺乏调试机制,开发效率低19. 存储过程步骤多,代码长,几百甚至上千行,大量使用临时表,性能低下而且难以维护相对存储过程需要反复读写磁盘使用中间结果,集算器提供丰富的运算,大量减少中间结果落地,性能更高 集算器采用过程计算,提供丰富函数类库,实现算法短小精悍易于维护 集算器脚本可以脱离数据库编写和运行,减少数据库安全隐患
20. 涉及 NoSQL、文本、Excel 等数据库外数据,无法使用 SQL,只能硬编码,开发效率太低且难以维护21. 涉及多数据库和非数据库的整合,SQL 无法跨数据源计算,需要事先汇总到单库,ETL 做成 ELT 和 LET,数据库臃肿且性能差22. 复杂运算要用库外的 Java 开发或编写 UDF 才能完成,人工成本高昂【数据仓库与部署】23. 生产库和分析库在一起,大数据运算可能影响生产系统运行,分库又难以做到实时全量计算24. 数据量变大,数据仓库性能变低,总要扩容,成本高昂25. 中央数据仓库支撑了过多应用,并发过多导致性能不可控,前端用户体验差26. 数据仓库中有大量非原始数据的中间表,冗余严重,而且年代久远非常难管理27. 很多业务应用中都要部署单独的数据集市或前置数据库,成本高昂【Hadoop 大数据平台】28.Hadoop 集群规模不大,只有几个或十几个节点,管理的数据并不多,难以发挥其优势,但维护却很复杂29.Hadoop 难以完成需要的计算,结果又在旁边部署传统数据库来实施计算,结构累赘且效率低30.Hadoop/Spark 提供的计算接口不够用,复杂运算还要写 UDF,开发效率低31.Hadoop/Spark 存储和调度过于自动化,难以控制数据分布和任务安排以获得最优性能32.Spark 内存耗用太大,硬件成本太高,很多运算超过内存范围还无法实施33. 试图用 HBase 解决大数据查询问题,但效果很差【Python 等桌面数据开发】34.Python 并非专门为结构化数据计算设计,开源包贡献者不同,风格不统一,复杂过程编写并不简单35. 涉及 Excel/json 等非库数据,Python 等开源技术虽然接口丰富,但版本混乱,难以驾驭36.Python 缺乏自有大数据,几乎不能写并行程序,无法充分利用多 CPU 能力37.Python 代码难以和 Java 集成,算法需要嵌入到生产系统时常常还要重写
|