摘要:2021云栖大会云原生企业级数据湖专场,阿里云智能高级解决方案架构师周皓为我们带来《企业级数据湖最佳实践》的分享。
本文主要分享了数据湖的核心能力及几个最佳实践案例。
以下是精彩视频内容整理:
一、统一数据存储,多引擎对接,运存分离
在这一节开始之前,先回顾一下数据湖几个核心的能力:
- 集中存储、多种引擎对接
各种类型的数据用集中方式统一存储在OSS,无缝对接如 EMR 等各类计算引擎,支持开源计算生态
- 数据无需处理、直接存储
对接多种数据输入源,提供便捷的数据接入和数据消费通道,多种类型数据都可以按照原始产生的形态直接存储,随需再进行处理,对比传统数仓 schema 限制结构,更适配业务快速发展的应用场景
- 更灵活架构、运存分离
存算分离架构带来非常好的灵活性,通过计算与存储解耦合提供更灵活的系统架构设计空间,让计算、存储资源具备更好的扩展性,充分提高资源利用率,极大降低运维管理难度、优化 TCO。这也是本文介绍案例中,客户选择数据湖方案的一个重要原因。
二、最佳实践案例
Yeahmobi- 移动互联网广告实践案例
Yeahmobi,作为一家技术驱动发展的企业国际化智能营销服务公司,主要涉及到的就是智能营销业务,每天的业务波动非常大。如果采用传统的架构,势必要按照业务的峰值准备资源,就会造成很多 CPU 资源无法得到最大化的利用。这也是许多智能营销互联网公司的痛点。基于此,大多企业选择了数据湖方案。
- 存储与计算解耦合,让计算资源使用量可以按照线上业务量的变化动态增减,减少常驻资源量
- 多种不同类型计算引擎,轻松对接在线广告各种场景所需要的分析要求
- 通过数据湖方案,整体TCO优化达到30%,让业务形态更具竞争力
只要将数据存储在数据湖中,计算资源可以按照业务的变化实现动态的伸缩与创建,只需维护一个最小的常驻计算资源就足够了。在这种情况下,再结合兼具半托管和全托管模式的 EMR 动态伸缩计算及分析的能力,可以极大地降低运维的难度。这也是许多智能营销公司选择这套数据湖方案的原因。Yeahmobi 选择这套数据湖方案后,TCO 降低了30%。
数禾科技-互联网金融实践案例
数禾科技是一家互联网金融科技公司,因其所在行业的特性及本身的业务场景需求,对数据的安全可靠性,以及数据访问控制的细粒度都有很高的要求。数禾服务了大量内部和外部用户,数据安全敏感,要求严格的数据权限隔离。其次,整个业务变化也需要非常强劲的吞吐能力来支撑计算及存储。
其实在数禾的发展过程中,最早采用的是最常见最通用的大数据集群构建方式既通过服务器搭建,然而很快就发现这种方式无法跟上业务的快速发展:一是存储成本显著增长,一个标准的 HDFS 集群是三个冗余备份,在考虑到水位,整个文件系统的开销等因素后,存储成本是显著增加的。二是因为业务的快速扩容, 如果频繁增加 HDFS 集群节点,会影响业务的可用性。
基于以上原因,数禾选择了阿里云数据湖方案。数据湖采用 对象存储 OSS 作为底座,无需担心容量的扩展或是小文件的增加。文件数量的快速增加会对 HDFS 集群的 NameNode 造成比较大的压力,但是对象存储结构无需担心文件数量增加,哪怕是到万亿级的 object 的数量,也没有任何压力。采用了数据湖方式以后,多 bucket 切分搭配阿里云的 RAM 体系,可以做到非常细腻度的访问控制。再通过例如 OSS 与 EMR 在软件层合作优化的 JindoFS 方案,能够输出超过 TBS 的吞吐能力,以支撑整个业务的需求,实际操作体验超越自建HDFS。此外,通过云上弹性资源能力,任务可以随需进行千台规模节点的弹性伸缩,达到降本增效的效果。
数据湖经典使用场景-冷热数据分层
模式特点
- 应用与业务系统的长期运行积累了大量的冷数据,不断增长的冷数据对现有集群的存储空间压力大
- 需要解决冷数据存储空间,同时为访问频繁的热数据留出性能优化空间
- 优化冷数据的长期存储成本,要能远低于热数据存储成本,并且冷数据要能便于读取
冷热数据分层是数据湖的一个经典使用方式。应用与业务系统的长期运行会产生大量冷数据,对整个集群的运维产生非常大的压力。一方面是规模上的压力,通用的大数据集群里面的服务器架构比较同构导致冷数据的优化的空间不大,如果通过增加高密度的或者异购的机型,在实践中会导致集群运维管理难度的大幅度提升。另外一方面是在 IDC 环境中,要想快速扩容,物理集群会受限于很多因素。这也是很多数据湖客户从传统的大数据集群架构往数据湖迁移的原因。目前已经有很多客户拥抱了数据湖,全面使用 OSS。无法一步到位的时候,客户会先将温数据和冷数据先沉降到 OSS。早在2016年,OSS 就已经与 Hadoop 生态充分融合,Hadoop 3.0可以直接访问 OSS,写好的任务不用做任何修改就可以直接运行,大幅减少了迁移的难度。迁移过来之后,OSS 上的智能生命周期管理简单地配置一个生命周期策略,就可以按照规则把冷数据进一步沉降到归档和冷归档类型中,进一步降低成本。
教育科技平台实践案例
客户价值
- 通过 OSS 多存储类型和数据生命周期管理,实现冷数据长期存储的成本优化,通过云上承载冷数据,IDC 自建集群无需扩容,解决机房空间难题
- 通过 OSS 数据湖的高可扩展性,有效的帮助客户解决了大数据存储的性能吞吐问题,规避了自建 HDFS 文件系统在元数据节点的性能瓶颈
- 客户已经在规划进一步通过云上弹性资源去扩容计算资源,减小一次性资源投入
这是一个冷热分层的实际案例。教育平台涉及到的业务场景包含各种日志的采集,通过使用的日志帮助学生改进学习。这个客户也面临一个问题,大量日志采集以后对于空间占用会造成非常大的压力。客户又是自建 IDC,很难在一段时间内就完成物理空间的扩容,所以最后选择了数据湖方案。通过专线打通了 IDC 和阿里云的连接,使用阿里云的资源扩容现有 IDC ,再通过专线将线下的冷数据迁移到了数据湖中,为线下的业务腾出了空间,压力释放以后,空间就非常灵活了。然后进一步将很多应用日志直接入湖,通过对象存储及多版本能力,为数据可靠性提供更多的保障,同时也使用了冷归档能力将温数据进一步沉降以降低成本。入湖的数据则通过专线拉到本地计算,但是在数据湖的使用过程中,客户想进一步使用云上的计算资源以扩容计算能力,就无需一次性采购线下的计算服务器,进一步降低成本。
全球化在线游戏实践案例
客户价值
- 通过日志服务,打通应用日志的采集、投递,贯通实时计算引擎,为后续的用户热力图 ,用户轨迹,用户登陆,在线人数统计提供数据支撑
- 通过 OSS 数据湖承载所有日志数据的长期存储,与离线分析引擎结合,能够更深入对日志数据进行分析
- 全球统一化架构部署,对于一款面向全球化的游戏,可以保证在全球任何一个区域都可以使用相同的部署方式,简化运维部署难度
一款全球化的游戏一般要服务全球玩家,这就要求全球统一化架构部署以降低运维难度,而阿里云数据湖在全球任何一个区域都可以使用相同的部署方式,可以完全匹配客户的需求。此外,游戏行业日志的采集非常关键,比如游戏在线人数的大屏展示,就是通过采集应用服务器的日志去做分析。针对这个客户,我们采用了阿里云的日志服务,从千台万台机器规模的应用服务器中实时采集日志,推送到 Flink 中做实时计算,并将结果实时写入到 ClickHouse,提供实时性的查询。OSS 在这个场景中,作为了日志的的永久存储。SLS 把采集的日志定期投递到 OSS ,并且通过 OSS SDK 和一些命令行工具,直接将一些应用日志传到 OSS ,存储到 OSS 的日志可以进一步通过离线分析,如通过 Spark、Hive 做更大规模的分析,并将深度分析的结果再写入到 ClickHouse,提供更多的分析查询。
小鹏汽车-自动驾驶实践案例
数据湖与各种存储产品之间是无缝打通的。在这个自动驾驶案例中,我们提供了一套完整的从采集到存储到分析的方案。闪电立方提供了车载的部署能力,解决了自动驾驶场景下每天采集的大量路面数据的存储问题,采集完以后通过就近的接入点快速地存储到 OSS 数据湖中去,解决了最后一公里的问题,把数据上传到 OSS 以后,可以直接使用阿里云的各项计算引擎,包括 EMR、MaxCompute 等对数据进行各种各样的清洗标注和分析。CPFS 是阿里云上的一款支持大规模并行计算的存储产品,它有非常高的吞吐能力,并且是 posix 语义的。OSS 数据湖与 CPFS 无缝的数据流动,使得训练数据也能传递到 CPFS中,对数据 GPU 进行分析,并将最终的结果写回到 OSS 做长期的存储。
不光在互联网领域,包括自动驾驶、高性能计算等都已经广泛的应用数据湖。希望有更多的用户可以在生产业务中引入阿里云数据湖。
⭐数据湖构建DLF 官网
https://www.aliyun.com/product/bigdata/dlf
⭐EMR 官网
https://www.aliyun.com/product/emapreduce
探讨更多数据湖相关技术问题,欢迎扫码加入钉钉交流群!