一、什么是数据湖?
在探讨数据湖技术或如何构建数据湖之前,我们需要先明确,什么是数据湖?
数据湖的起源,应该追溯到 2010 年 10 月。基于对半结构化、非结构化存储的需求,同时为了推广自家的 Pentaho 产品以及 Hadoop,2010 年 Pentaho 的创始人兼 CTO James Dixon 首次提出了数据湖的概念。
数据湖概念一经提出,便受到了广泛关注,人们发现此概念代表了一种新的数据存储理念,海量异构数据统一存储可以很好地解决企业数据孤岛问题,方便企业数据管理与应用。
「技术概念的提出,本质都是为了业务场景服务的,是为解决某类特定场景的问题。」
随着新一代信息技术的发展,以及数字化转型的深入推进,数据作为一种 “无形资产” 的重要性变得比以往更为凸显。物联网、直播、医疗等各种业务场景每天都会生成几 GB、几百 GB,甚至 TB 级的原始数据。面对海量数据的存储以及结构化数据、文本、二进制(图片、音频、视频)等数据的存储应用,传统架构的离线数据仓库越来越 “力不从心”。
与此同时,随着大数据技术的融合发展,数据湖不断演变,当前我们所讨论的数据湖,已经远远超过了当初 James Dixon 所定义的数据湖。
根据维基的定义,数据湖是一个以原始格式 (通常是对象块或文件) 存储数的系统或存储库。数据湖通常是所有企业数据的单一存储,用于报告、可视化、高级分析和机器学习等任务。数据湖可以包括来自关系数据库的结构化数据 (行和列)、半结构化数据 (CSV、日志、XML、JSON)、非结构化数据 (电子邮件、文档、pdf) 和二进制数据 (图像、音频、视频)。
二、袋鼠云数据湖平台
数字经济时代,如何有效利用不同来源、规模巨大的数据,从而加快数据价值化的呈现,把数据用活,成为很多企业的难题。
秉承「让数据创造价值」的使命,袋鼠云进一步夯实企业数字化转型的数据基座。今年 7 月的 2022 年产品发布会上,袋鼠云首发数据湖平台 ——DataLake。
DataLake, 提供面向湖仓一体的数据湖管理分析服务,基于统一的元数据抽象构建一致性的数据访问,提供海量数据的存储管理和实时分析处理能力,可以帮助企业快速构建湖仓一体化平台,完成数字化基础建设。
DataLake 让业务响应更加及时,让企业运转更加高效。
三、DataLake 的核心特性
下文为大家着重介绍 DataLake 的核心特性:
1. 高效数据入湖
通过⾃研批流⼀体数据集成框架 ChunJun,可视化的任务配置,将外部数据高效入湖,让数据具备更高的新鲜度。同时也可对已有表 hive 结构进行快速扫描,一键生成湖表信息,节省 10x 倍数据的传输时间和 50% 磁盘空间。
・引入 ChunJun,提供数据同步效率实现秒级快速入湖
・全数据同步量 / 增量一体化,链路短组件少开发维护成本低
・不影响在线业务的稳定
2. 统一元数据管理
支持物理表、虚拟元数据的统一管理,支持表结构变更、时间旅行、数据文件自动治理能力。
袋鼠云数据湖 DataLake 提供统一的在线数据目录和离线数据治理能力,主要由以下四个部分构成:
・元模型定义:是对元数据的抽象描述,定义了通用元模型和 Iceberg 元模型
・元数据采集:支持基于 PULL 定时拉取和 PUSH 主动上报的两种方式采集元数据,保证元数据的实时同步
・元数据存储:根据不同元数据的数据结构和用途,形成以 Hive Metastore 为主,关系型数据库为辅的存储架构
・元数据应用:提供线数据目录和离线数据治理能力。在线数据目录可为数据湖的计算引擎提供 Schema 管理功能;离线数据治理包括,小文件合并、快照清理、孤儿文件清理能治理能力,可以有效降低数据存储提高数据查询效率。同时还支持表结构变更、时间旅行的能力,可以快速对湖表进行加列改列删列,而数据无需重写,支持对数据和 Schema 进行版本管理一键回滚
3. 多级索引加速
高效 Data Skipping 方案,支持多种索引模式,如 bloom index,data skipping index ……
4. 高性能联邦查询
内置多种数据连接器,并在开源基础上提供更高效的索引结构,极大提高了数据的跨源联合分析查询能力,可快速完成各类分析需求,带来极致的交互式数据分析体验。
支持 MySQL、Oracle、Hive、Iceberg、ClickHouse、MongoDB 等 30 + 异构数据源连接器,满足市场 95% 客户需求。进行 Connector 整合统一 SQL,对外提供标准数据 API 服务,极大简化用户多数据源数据查询的复杂度,一个标准接口可以同时查询 30 + 数据库。
5. 事务支持
支持所有 ACID 语义,T+0 数据更新。
・基于 Iceberg 架构数据湖支持 Merge On Read 模式,数据实际应用时进行 Merge 操作,可以支持近实时的数据导入和实时数据读取
・支持 ACID,保证了多任务数据同步的写入和查询的隔离性,不会产生脏数据
・支持行级别快速数据更新,极大提高数据更新效率
6. 流批一体
基于数据存储层的统一逻辑,支持流和批的一体化分析,一套架构同时满足流批业务操作,降低学习、使用、维护成本。
异构数据源数据通过 ChunJun 同步到数据湖平台,历史数据存储 Iceberg 湖内,可以提供更高效的查询同时具备廉价存储。增量数据运用消息队列提供低延时的写入和消费能力,存储于 kafka,同时 kafka 内数据自动同步到 Iceberg 内,并记录 kafka 偏移,以保证数据一致性。
数据进行流式消费时,湖内会自动根据数据读取情况判断读取 Kafka 还是 Iceberg 内数据,系统进行自动切换,以实现秒级毫秒级的数据实时查询。
7. 多种底层存储
湖仓平台支持 HDFS、S3、OSS、MInio 等多种底层存储,灵活满足客户不同数据存储需求。
四、一起体验 DataLake
结合这些核心特性,接下来一起玩转袋鼠云数据湖平台 DataLake 吧~
创建 CalaLog
首先创建一个 Calalog, 一个 Calalog 只允许绑定一个 Hive MetaStore,Calalog 与 Hive MetaStore 是一一对应,用户可以使用 Calalog 进行业务部门数据隔离。
创建 Database
创建一个 Database 绑定到 Calalog 上。
创建一张 Table
选择 Table 所在的 Catalog、Database,创建一张 Iceberg 湖表,设置表普通列。支持对普通列字段设置主键,可以用作表的唯一标识。
选择普通列字段作为分区字段,设置分区字段的转换函数,袋鼠云数据湖平台支持时间字段按照年、月、日和小时粒度划分区,支持行组级索引设置和自定义高级参数设置。
快照管理
袋鼠云数据湖平台支持快照历史管理,支持多版本间快照变更对比,支持湖表时间旅行,一键回滚到指定数据版本。
数据入湖
创建入湖任务,选择一张 Hive 进行转表入湖,一键生成湖表信息。对比数据同步入湖,可以节省 10x 倍数据的传输时间。
数据文件治理
创建数据文件治理任务模板,支持小文件合并、快照清理、孤儿文件清理等数据文件治理任务,支持立即支持、预约治理、周期治理多种数据治理方式。
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szalykfz
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术 qun」,交流最新开源技术信息,qun 号码:30537511,项目地址:https://github.com/DTStack/chunjun