写点什么

基于云的技术架构设计实践 - 第 5 篇

作者:hackstoic
  • 2021 年 12 月 09 日
  • 本文字数:1857 字

    阅读完需:约 6 分钟

业务分析

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

数据沉淀

如上图所示,我们的数据沉淀这块用了 4 个云产品。

首先我们的业务数据都是沉淀到关系型数据 MySQL(关于云数据库的介绍可以参考下面链接什么是云数据库[1]),至于为什么选择云数据库,还不是自建 MySQL,我觉得还是运维成本的考虑,如果真的要建设一个高可用的 MySQL 数据库集群,先不说要招聘专业的人来做,需要投入的人力物力还不少,最终的成本并不会比直接用云数据库高,功能没有云数据库全,可用性没有云数据库好,评估了投入产出比,果断选择了云数据库。阿里云这边有一篇文章介绍了使用云数据库的优势,可以作为参考RDS与自建数据库对比优势

我们的数据通过 DTS,即数据传输服务这个产品直接同步到 ADS,即分析型数据库,进入分析型数据库的数据是用于数据分析和生成报表的。这里为什么用分析型数据库,而不是直接连 RDS 呢? 原因是分析型数据库更快,性能是 MySQL 产品的几十倍。 另外一个原因是为了做读写隔离。数据报表用分析型数据库,对数据的读取量比较大,即使把数据库搞崩了,也不会影响到主业务。

数据管理服务 DMS 可以同时管理 RDS 和 ADS。

【我们遇到的坑】

  1. 我们有一次遇到分析型数据库性能不足的情况(QPS 其实不高,扫描的表行数超过千万行,结果直接把分析型数据库的 CPU 打爆了),要进行升级,结果升级后,ADS 死活连不上,特别不稳定,一问对方工程师,说是部署 ADS 的机器出问题,磁盘满了,导致 ADS 服务也不稳定。经过积极的沟通之后,折腾了一天才把这个问题搞定。感觉 ADS 的可用性和 RDS 还是不能比,对实时性和稳定性高的业务建议还是用 RDS。对实时性要求不高,读取数据量大的任务,比如报表分析,用 ADS 还是不错的。

  2. RDS MySQL 同步数据到 AnalyticDB MySQL,一直有一个问题没有解决,就是当 RDS 这边的数据库表里增加了 tinyint 和 double 类型的字段后,就同步不到 ADS 上,同步任务就会中断,导致数据不一致。 目前每次都要登录到 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 官方文档[2]

Davinci 是支持容器化部署的,我们通过改造将 Davinci 部署到 kubernetes 平台上。 方便进行资源调度。在部署和使用 Davinci 的时候也遇到了一些坑,社区支持这块还是不够及时,不过对于一个免费的工具来讲也不能过多奢求快速响应。总体来说我们用了有将近 1 年,还是比较稳定的,而且整体的消耗的资源的成本是 QuickBI 的 50 分之一不到。

最近 Davinci 的开发团队又对 Davinci 做了重构,重新做了一个功能更强的开源可视化平台: Datart(访问链接可视化平台 Datart[3]),给初创公司的一个福利,可谓是业界良心。

小结

我在这里谈到的这些都是一些相对简单的实践,但对我们而言目前是已经适用了。 当然大公司对数据分析和数仓建立有一套更为复杂的方法论,有兴趣的可以在网上找到文章去探索。

参考资料

[1]

什么是云数据库: https://help.aliyun.com/document_detail/26092.html

[2]

可视化平台 Davinci 官方文档: https://edp963.github.io/davinci/

[3]

可视化平台 Datart: https://github.com/running-elephant/datart

发布于: 2 小时前阅读数: 11
用户头像

hackstoic

关注

还未添加个人签名 2017.11.24 加入

还未添加个人简介

评论

发布
暂无评论
基于云的技术架构设计实践-第5篇