2. 数据计算层
数据计算采用YARN作为各种计算框架部署的执行调度平台,计算框架有MapReduce、Spark及Spark SQL、Flink、Spark MLlib等 。
MapReduce是最早开源的大数据计算框架,虽然现在性能相对较差,但它的资源占用比较小,尤其是内存方面 。因此在部分数据量过大,而其他计算框架由于硬件资源的限制(主要是内存限制)而无法执行的场景,可以将MapReduce作为备选框架 。
Spark及Spark SQL是在批处理方面拥有出色性能的成熟技术方案,适合大部分的离线处理场景 。特别是在离线数据建模方面,建议使用Spark SQL进行数据处理,既能保证易用性,又能保证处理的性能 。Flink是实时数据处理方面的首选,在处理的时效性、性能和易用性方面都有很大优势 。
而机器学习一般采用Spark家族的Spark MLlib为技术底座 。Spark MLlib内置了大量的常规算法包,如随机森林、逻辑回归、决策树等,可以满足大部分数据智能应用场景 。
同时,数据中台不断进化,也逐渐融入AI能力 。如人脸识别、以图搜图、智能客服等能力的实现就需要AI平台 。目前较为成熟的AI平台有TensorFlow及PyTorch 。为实现物体的检测和识别,可使用SSD、YOLO和ResNet等深度学习模型,而在人脸检测和识别中则主要使用MTCNN、RetinaNet和ResNet,人脸检索可使用Facebook开源的针对人脸检索的Faiss框架 。
3. 数据存储层
数据存储层所有的存储引擎都基于Hadoop的HDFS分布式存储,从而达到数据多份冗余和充分利用物理层多磁盘的I/O性能 。在HDFS上分别搭建Hive、HBase作为存储数据库,在这两个数据库的基础上再搭建Impala、Phoenix、Presto引擎 。
Hive为大数据广泛使用的离线数据存储平台,用于存储数据中台的全量数据,在建模阶段可以使用Hive SQL、Spark SQL进行数据处理和建模 。
HBase为主流的大数据NoSQL,适合数据的快速实时读写 。在实时数据处理时,可将数据实时保存到HBase中,并且可以从HBase中实时读取数据,从而满足数据的时效性 。
Impala可以对Hive、HBase等大数据数据库进行准实时的数据分析,能满足对分析结果速度有一定要求的场景 。
Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC API而不是HBase客户端API来创建表、插入数据和对HBase数据进行查询 。
Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询 。Presto支持Hive、HBase、MySQL等多种关系型和大数据数据库的查询,并且支持join表 。对于对接自助分析和统一数据服务的场景,可以通过Presto来统一访问具体存储的数据库,从而达到语法统一和数据源统一 。
4. 数据服务层
数据服务层采用的技术与业务应用类似,主要基于开源Spring Cloud、Spring Boot等构建,使用统一的服务网关 。
关于作者:陈新宇,云徙科技联合创始人兼首席架构师,中国软件行业协会应用软件产品云服务分会“数字企业中台应用专家顾问团”副主任专家,香港中文大学计算机科学与工程学博士,领导云徙科技数字中台系统的规划、建设并赋能企业落地实施 。本文摘编自《中台实践:数字化转型方法论与解决方案》,经出版方授权发布 。
罗家鹰,云徙科技副总裁,上海交通大学学士,中山大学MBA 。近四年来,一直致力于阿里中台赋能数字商业的研究与布道 。拥有20年的企业咨询及服务经验,先后主导了数十家大型企业的数字化转型咨询方案 。
江威,云徙科技地产事业部总经理,领导中台在地产方面的建设与落地,长期从事阿里中台赋能地产行业的研究与布道,拥有丰富的地产项目实施经验 。
邓通,云徙科技汽车事业部总经理,香港中文大学信息工程硕士,专注于汽车行业数字化营销研究 。
推荐阅读
- 朗多|朗多职业生涯数据有多奇葩?6+11+11+8不算什么,这个数据才可怕
- 翡翠|鉴赏翡翠到底需不需要打灯?这要看自身,对这一行的了解有多透彻
- SQLite 简介
- 冰岛到底有多大,听冰岛老寨村长讲2018冰岛茶价
- 数据结构不迷茫
- C#Core下,窗体Winform和WPF如何配置数据库连接
- 每位开发者都应了解的数据库一致性
- 996到底是什么意思?
- 数据与分析领域的十大技术趋势
- 我们的数据存在固态硬盘上安全吗?