“万里牛”实时数仓的演进之路-阿里云开发者社区

开发者社区> May-Hologres> 正文

“万里牛”实时数仓的演进之路

简介: 望通过本次分享,与大家分享 “万里牛”实时数仓的演进之路,希望可以借此经验帮助其他企业。
+关注继续查看

湖畔1.jpeg

分享人:陈晓亮,湖畔网络大数据平台负责人

本文为读者介绍湖畔网络(万里牛)从用户的数据痛点和诉求出发,基于公司实际情况,如何采用阿里云大数据组件一步步建设数据中台。重点通过两个具体的应用实例分享基于Hologres来建设实时数仓的经验。

一、万里牛介绍

湖畔网络成立于2011年,创业在湖畔花园,是业内最早的SaaS ERP服务商,在杭州和上海两地设有研发中心,服务范围覆盖国内400多座城市。万里牛作为公司的产品品牌形象透出给用户。


客户主要是从事电商、跨境电商和实体门店的企业客户。万里牛致力于帮助客户实现“一站式对接全球电商平台”,助力商家“一盘货,卖全球”。万里牛为客户提供了以ERP、跨境ERP和WMS(仓储管理系统)为核心,搭配融合商业智能BI、新零售、订货系统等产品组成的一站式产品矩阵。目前数据中台已经全面支撑整个公司的产品闭环,并且在BI上有独立的数据产品透出。

湖畔2.png

10年行业深耕,万里牛对接了200多家各类电商平台,连续9年平稳的为双11保驾护航,为客户提供稳定值得信赖的产品和服务,因此也收获了30万+的商家用户的信任。


服务用户的过程中,万里牛总结了用户在业务过程中的一些数据痛点首先,业务数据没有通过数据分析来反哺业务;其次,人工统计的数据,既难以保证准确性,时效性也很差,往往会与市场节奏脱节;再者,辛苦做出的数据分析被用于改进业务流程后,却无法快速评估实际产生效果。


基于这些痛点,总结得出用户对数据的诉求是希望积累的数据能够持续产生价值,形成有助于业务发展的循环推进力;也就是要求大数据服务做得更高,更快,更强。这也是建设数据中台的原动力。

湖畔3.png

上图可以看到,目前数据中台起到了承上启下的作用,融合了万里牛内外的各类型数据,经过数据建模分析加工后,通过数据服务和应用,反哺业务。

二、万里牛的数据中台之路

(1) 数据中台 v1.0

首先是选型的问题,做第一版时,万里牛大数据团队只有5位同学,考虑到要把有限时间精力放到数据建模和业务开发中去,而且阿里云的大数据组件能够帮助万里牛搭建起大数据平台,公司的兄弟团队也有使用阿里云产品的成功经验,所以万里牛选择了阿里云。

湖畔4.png

数据源是阿里云的RDS,数据同步采用DataWorks的数据集成拉取。用维度建模方式搭建的离线数仓放在MaxCompute里,同时MaxCompute也承担离线数据计算引擎的角色。数仓任务的编辑和调度,以及数据质量的监控由DataWorks承担。我们会把一部分ADS表同步到Hologres内表,所以Hologres起到了ADS缓存和MaxCompute外表查询加速的作用。数据资产管理系统是做的类似OneData的指标管理系统。最上面是数据服务,数据应用(在系统中主要体现为交互式数据分析,CRM,和为业务系统提供的决策数据支持)。当时数据中台承载的数据量50TB,表数量2000多,调度的任务数1000+。

湖畔5.png

数据中台完成后,BI的产品服务体系也随之搭建起来了。类似于QuickBI,万里牛搭建了一系列分析数据域,与数据资产管理系统和可视化搭配,提供了自由度很高的交互式数据分析,同时也为客户公司的不同角色提供了预制的主题看板。


完成第一版数据中台之后,解决了公司内部各个应用数据之间的融合,消除了数据孤岛,同时构建了基础的离线数据仓库,实现了零代码交互式数据分析能力。当然也接受到了客户的反馈意见,主要集中在两方面:1.希望能够得到时效性更高的数据,满足分析和监控的需求;2.交互式分析对于没有运营经验的客户来说学习成本比较高。


对于时效性的问题,在做第二版数据中台的时候,增加了实时数仓能力,重点关注了联邦查询问题和实时数仓运营成本问题。调研后发现,Hologres作为一站式实时数仓,能在不怎么增加技术架构复杂度的情况下完成目标,同时成本大约只有应用Flink的1/2。所以最终选择了Hologres。


(2) 数据中台 v2.0

下图为第二版数据中台的技术架构图,相对于第一版没有太大的变化。数据同步部分多了Binlog通道,实时将数据传输到Hologres,建立实时数仓。同时Hologres还承担联邦查询和实时数据引擎的任务。从下图可以清楚的看到Hologres作为一站式实时数仓的角色定位。

湖畔6.png

目前第二版的数据中台承载的数据量60TB,表数量近3000,调度的任务数1700+。

改进成第二版数据中台架构后,能够为客户提供实时和准实时数据分析能力,同时也开始接手部分场景下业务系统的数据查询服务,利用Hologres的能力开放ODS层数据访问。不足自然也是有的。目前的实时数仓由于没有Flink,是缺少流计算能力的。

三、万里牛与Hologres

(1) 为什么选Hologres

那么为什么会选择Hologres呢?通过调研发现它有几个特点,比较适合实际情况。最重要的是Hologres的实时能力,一站式实时数仓,满足目前万里牛的实时数仓需求,能够支持OLTP、OLAP 的数据查询,内表查询性能可以达到亚秒级。维护成本低,既可以用于离线加速,又可以作为实时数仓。同时作为实时数仓存储成本大约是RDS的1/3。资源灵活性高,可以像MaxCompute一样灵活的升降配置,与阿里云大数据组件兼容性高,不会对技术架构带来很大负担。

(2) Hologres扮演的角色

在面向分析系统OLAP里面Hologres是承担了实时和离线数据的查询以及查询加速、实时,准实时计算引擎,在TP这边为万里牛提供了一个低QPS低并发下冷热数据混合查询服务。

湖畔7.png

实时的数据从Binlog被解析到Hologres ods层内表中,同时微批任务将小时级别(范围可调)的统计数据计算到ADS层的小时表里,加上T+1的离线数仓数据,就可以构建出一个实时全量数据的视图,其中H-0和H-1来自实时计算,H-2到H-n的数据来自微批计算出的准实时数据,T-2及后续更早的数据来自Hologres外表离线数据。目前实际应用场景是监控ERP作业单的运行状态,还有类似统计某平台某店铺的订单量,订单金额。


通过视图结构和Hologres的配合,得到了联邦查询的能力,目前在万里牛的应用中带外表数据查询时长<10s,如果只涉及内表查询运行时长<1s。当然由于没有流计算的参与,目前的维度表是从离线同步到Hologres的,这部分时效性就比较差,同时实时,准实时的统计直接从ODS层走,计算效率会成为问题。

湖畔8.png

下一步改进的方向是,增加Flink流计算,建立实时数仓的DWD和DIM层。Hologres采用LSM树,支持细粒度的实时更新,同时内表支持主键,能够保证准确一致性。我们可以将Hologres内表作为Source送入Flink做流计算,再把Hologres内表作为Sink存储计算结果。通过Flink流计算得到DWD和DIM层。

湖畔9.png

低QPS,低并发下的冷热数据混合查询服务的业务场景是万里牛有类似库存流水查询这样的应用,特点是数据是日志型的,数量很大,基本都是读操作;放在RDS或者ES里很浪费,目前万里牛的做法是把数据实时同步到数仓,利用Hologres和MaxCompute冷热分层,既能保证热数据的查询效率,又可以节约成本,能够让一份数据多点应用。

(3) Hologres目前的不足

在使用Hologres期间也发现的一些不满足实际需求的地方:多数据源实时同步的问题,StreamX的同步任务,无法灵活的配置多数据源;资源隔离的问题,无法像MaxCompute一样做资源隔离,链接数控制需要自己来做;Java API要求版本和费用过高。

holo公共云用户群.jpg

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2827 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
10972 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10438 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
2280 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11930 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
8789 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
21709 0
+关注
100
文章
3
问答
来源圈子
更多
本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--交互式分析Hologres交流群32314975
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载