1 规划
(BI系统经典架构)
BI系统经典架构,由数据源层、数据仓库层、数据展现层构成,数据源层提供基础数据,数据仓库层存放各种聚合数据,数据展现层按业务场景展示数据。此处的数据仓库层,采用数据分层的设计理念,相对来说实时计算复杂度要求不高的数据放到开源数据库中(如MySQL),实时计算复杂度要求高的数据放到高性能数据库中(如SAP HANA One)。
注:数据仓库层采用数据分层,主要是基于成本考虑。阿里云上的SAP HANA One 64G版,软件每月要4000多大洋,再加上ECS费用,每月就8000多啦。且HANA One的64G容量,远远不够。
2 实现
2.1 数据源
数据分析基础数据来源,系统支持多种数据来源,包括外部数据文件(如Excel、TXT、XML等),常用数据库(如Oracle、MySQL、SQL Server、DB2等),其它JDBC、ODBC、JNDI数据源,也支持把Hadoop HDFS中的文件作为数据源,甚至一些常用软件系统(如SAP ERP、SAS、Salesforce)直接作为数据源。
2.2 ETL
采用开源软件Kettle作为ETL工具,从数据源抽取原始数据,做数据转换后导入数据模型。数据抽取周期,根据实际需求从几分钟到月不等。实际应用中,最短数据抽取周期我们曾经到30秒,但这种情况对数据源性能压力较大。幸好HANA有SDI,通过SDI建虚拟表,直接访问数据源。
2.3 数据建模
直接用HANA计算视图建模,建模基础数据来自HANA One、开源聚合数据层(如MySQL)、甚至直接是业务数据表(业务数据表做读写分离,从只读表中取数)。为实现这种跨系统、跨数据库建模,采用了HANA的虚拟表功能(借助SDI,SDI真是个好东西)。
2.4 数据展现
数据展现平台,主要是PC端的浏览器和移动端的微信。Excel方式,对云端应用来说,性能不理想。PC端数据展现基于SAPUI5做专门开发:常规拖拽方式的OLAP灵活分析;保存灵活分析格式,形成固定格式的格式化主题分析;串联多个格式化主题分析,做一定扩展形成管理驾驶舱。
2.5 数据挖掘
采用经典的机器学习算法(如:DBSCAN、K-Means、C4.5决策树、逻辑回归、随机森林、朴素贝叶斯等),对数据进行挖掘分析。可应用的实际业务场景,包括地理位置分析、文本分析、相关性分析等。对需进行训练的监督学习,可根据实际训练需求,定制数据训练平台。
3 成果
3.1 产品示例
- 地图应用
- OLAP灵活分析
- 文本分析
- 格式化分析与驾驶舱