一. 建设思路
在原有平台基础上,融合数据湖技术,提供统一、完善的湖仓能力,逐步实现湖仓一体、流批一体的最终模式。其中具体工作主要包括:
- 适配不同的计算引擎、存储引擎等
- 集成具体的数据湖技术,接入、元数据管理、数据处理等能力形成平台化
- 安全保障机制:
- 监控告警保障:任务监控、文件监控、性能监控等能力
- 小文件自动处理能力、任务自动恢复能力
- 数据安全方面保障
二. 核心功能建设
融合数据湖技术,形成湖仓一体化平台,主要需要考虑建设以下几个核心功能:第一个是数据集成方面,需要形成统一化的数据集成平台能力,自动化接入,不增加业务接入成本, 让业务接入便捷。第二个是元数据管理方面,需要打通湖仓元数据,提供统一化、安全稳定的元数据管理服务,不增加维护和应用的复杂性。第三个是对底层不同存储方案提供统一的开发接口能力等,方便对齐数据交互模式以及完善适配能力。第四个是提供一站式、托管化、智能化数据平台管理能力,主要是相关的一些服务管理能力建设,比如说湖仓任务管理、权限管理、数据探查等等。最后一个是平台稳定性和可靠性保障方面,需要保证服务的安全稳定才能达到上线的基本要求,才能开展后续的业务应用落地相关的推动工作。
2.1 数据集成
数据集成平台主要能力包括,数据采集、数据存储、数据分发。具体建设一般是复用原大数据平台的数据集成能力,在原有基础上去简单扩展数据类型的支持,形成一建入湖,低成本接入的集成能力。 引入一种技术类型整体代价较低,不需要做过多的开发,比如mysql-binlog数据的集成,和之前模式一致,将binlog数据抽取到kafka topic上,下游具体应用通过flinksql入湖任务进行湖仓层面。
2.2 元数据管理
元数据管理方面需要解决的核心问题主要有:
- 如何实现统一管理,标准统一的schema格式
- 如何保证元数据服务安全稳定
- 如何实现湖仓联动
针对于问题1,可以用hive metasotre服务对数据湖库表元数据进行管理,接入封装的catalog接口实现元数据的增删改查。元数据schema用统一标准:catalog.database.table. 针对于问题2,hivemetastore服务部署多实例,保证元数据服务的高可用和安全性。针对于问题3,打通计算引擎对不同catalog的支持,通过不同catalog进行联动,达到湖仓数据相互访问的目的。
2.3 存储管理能力
整体如下图所示,底层针对不同存储封装不同catalog行为接口,同时数据湖引擎适配了高版本spark、flink等,上层管理借助catalog能力实现对不同数据存储的管理,比如说hdfscatalog、s3catalog等等,非常方便对存储方面进行管理。
三. 总结
本篇文章主要介绍了湖仓平台建设的前三个主要工作:数据集成能力、元数据管理能力、存储管理能力。从整体上看湖仓平台建设比较方便,成本不高。可以达到湖仓平台的易扩展、安全稳定目标,后续会继续介绍剩余的建设工作。