基于云的技术架构设计实践-第5篇
业务分析
如果说运维和监控保障了业务系统的稳定,而数据分析是可以帮助业务做增长的。那如何利用云产品做业务数据沉淀和分析呢? 下面我们讲讲关于数据的沉淀,展示和分析的一些简单实践。
数据沉淀

如上图所示,我们的数据沉淀这块用了4个云产品。
首先我们的业务数据都是沉淀到关系型数据MySQL(关于云数据库的介绍可以参考下面链接
我们的数据通过DTS,即数据传输服务这个产品直接同步到ADS,即分析型数据库,进入分析型数据库的数据是用于数据分析和生成报表的。这里为什么用分析型数据库,而不是直接连RDS呢? 原因是分析型数据库更快,性能是MySQL产品的几十倍。 另外一个原因是为了做读写隔离。数据报表用分析型数据库,对数据的读取量比较大,即使把数据库搞崩了,也不会影响到主业务。
数据管理服务DMS可以同时管理RDS和ADS。
【我们遇到的坑】
数据可视化和分析
数据存储了,接下来就要想怎么分析,怎么展示,来挖掘和体现数据的价值了。 云厂商通常都会提供一些BI工具,搭配数据库进行使用。 以阿里云为例,它提供了一个功能强大的产品叫QuickBI。以下是QuickBI的产品能力:

当然这个产品的定价也不便宜,专业版的定价打完折都要12万。

相信这个定价可以直接劝退很多初创企业,当然也包括我们。 数据分析又是刚需需求,怎么办呢? 困难总比办法多,我调研了一圈之后,发现还是有不少的开源替代品的,目前对比的产品有几个: superset,redash和davinci。 直接上结论: davinci体验最好,功能最全,虽然接入的数据源不如前面两个多得多,但是能接入mysql对我们来说已经能够覆盖90%的场景了。
redash我们早期也用,但是自从发现了davinci这个宝藏级软件,我们就果断弃坑redash。 这里重点介绍davinci。
这里引用下Davinci官网的一段对Davinci定位的介绍
Davinci 是一个 DVaaS(Data Visualization as a Service)平台解决方案,面向业务人员/数据工程师/数据分析师/数据科学家,致力于提供一站式数据可视化解决方案。既可作为公有云/私有云独立部署使用,也可作为可视化插件集成到三方系统。用户只需在可视化 UI 上简单配置即可服务多种数据可视化应用,并支持高级交互/行业分析/模式探索/社交智能等可视化功能。(更多介绍见 Davinci官方文档 )
Davinci是支持容器化部署的,我们通过改造将Davinci部署到kubernetes平台上。 方便进行资源调度。在部署和使用Davinci的时候也遇到了一些坑,社区支持这块还是不够及时,不过对于一个免费的工具来讲也不能过多奢求快速响应。总体来说我们用了有将近1年,还是比较稳定的,而且整体的消耗的资源的成本是QuickBI的50分之一不到。
最近Davinci的开发团队又对Davinci做了重构,重新做了一个功能更强的开源可视化平台: Datart(访问链接
小结
我在这里谈到的这些都是一些相对简单的实践,但对我们而言目前是已经适用了。 当然大公司对数据分析和数仓建立有一套更为复杂的方法论,有兴趣的可以在网上找到文章去探索。
参考资料
[1]
什么是云数据库:
[2]
可视化平台Davinci官方文档:
[3]
可视化平台Datart: