多数据源一站式入湖

简介: 通过一站式入湖,将不同数据源的数据统一归并到以OSS对象存储为基础架构的集中式数据湖存储中,解决了企业面临的数据孤岛问题,为统一的数据分析打好了基础.

背景

数据湖作为一个集中化的数据存储仓库,支持的数据类型具有多样性,包括结构化、半结构化以及非结构化的数据,数据来源上包含数据库数据、binglog增量数据、日志数据以及已有数仓上的存量数据等.数据湖能够将这些不同来源、不同格式的数据集中存储管理在高性价比的存储如OSS等对象存储中,并对外提供统一的数据分析方式,有效解决了企业中面临的数据孤岛问题,同时大大降低了企业存储和使用数据的成本.

1.png

由于数据湖数据来源的多样性,如何简单高效的将这些异构数据源的数据迁移到中心化的数据湖存储中,是数据湖构建过程面临的问题.为此,我们需要提供完善的一站式入湖的能力,解决我们面临的问题,主要包括以下几点:

  • 支持异构数据源统一的入湖方式

提供一个简单统一的入湖方式,用户可以通过简单的页面配置实现异构数据源的入湖操作.

  • 满足数据入湖的时效性

对于日志、binglog等类型的数据源,需要实现分钟级延迟的数据入湖能力,满足实时交互式 分析场景对时效性的要求.

  • 支持数据源的实时变更

对于数据库、TableStore Tunnel等类型的数据源,源头数据会经常发生变更,比如数据层面的update,delete等操作,甚至schema层面的字段结构变更. 需要利用更好的数据格式来支持这类变更行为.

为此,阿里云新推出了数据湖构建(Data Lake Formation,DLF)服务,提供了完整的一站式入湖解决方案。

整体方案

数据湖构建的入湖技术方案如下图所示:

2.png

数据入湖整体上分为入湖模板、入湖引擎、文件格式以及数据湖存储四个部分:

入湖模板

入湖模板定义了常见的数据源入湖方式,目前主要包括RDS全量模板、DTS增量模板、TableStore模板、SLS模板以及文件格式转换5种模板.

3.png

用户根据不同的数据源选择相应的入湖模板,然后填写源头相关参数信息,即可完成入湖模板的创建,并提交给入湖引擎运行.

入湖引擎

入湖引擎使用了阿里云EMR团队自研的Spark Streaming SQL以及EMR Spark引擎,Streaming SQL基于Spark Structured Streaming,提供了相对完善的Streaming SQL语法,极大简化了实时计算的开发成本。对于实时增量模板,上层入湖模板部分将入湖模板翻译成Streaming SQL,然后提交Spark集群运行。我们在Streaming SQL里面扩展了Merge Into语法来支持update、delete操作。对于RDS等全量模板,则直接翻译成Spark SQL运行。

文件格式

DLF支持的文件格式包括Delta Lake、Parquet、json等,更多文件格式比如Hudi也在接入中。Delta Lake和Hudi等文件格式能很好的支持update、delete等操作,同时支持schema merge功能。可以很好的解决数据源实时变更问题。

数据湖存储

数据湖数据统一放在OSS对象存储中,OSS提供了海量数据存储的能力,同时在可靠性,价格等方面更具优势.

一站式入湖方案在很好的解决了前面提的几个问题:

  • 支持异构数据源统一的入湖方式

通过模板配置,实现了统一简单的数据入湖方式.

  • 满足数据入湖的时效性

通过自研Streaming SQL实现了分钟级延迟的数据实时入湖,满足了时效性要求.

  • 支持数据源的实时变更

通过引进Delta Lake等更优的文件格式,实现了对update、delete等数据实时变更要求.

实时入湖

随着大数据的不断发展,用户对数据时效性的要求越来越高,实时入湖也是我们重点关注的场景,目前我们已经支持了DTS、TableStore以及SLS的实时入湖能力.

DTS增量数据实时入湖

DTS是阿里云提供了高可靠的数据传输服务,支持不同类型数据库增量数据的订阅和消费。我们实现了DTS实时订阅数据的入湖,支持用户已有订阅通道入湖和自动创建订阅通道入湖两种方式,减少用户配置成本。

4.png

在技术上,支持增量数据对历史数据的update、delete变更操作,实现分钟级延迟的数据变更感知能力。技术实现上在Streaming SQL中扩展了merge into语法来对接底层文件格式Delta Lake的相关接口.

MERGE INTO delta_tbl AS target
USING (select recordType, pk, ...from {{binlog_parser_subquery}}
) AS source
ON target.pk = source.pk
WHEN MATCHED AND source.recordType='UPDATE' THEN
UPDATE SET *
WHEN MATCHED AND source.recordType='DELETE' THEN
DELETE
WHEN NOT MATCHED THEN
INSERT *

和传统数仓的binlog入仓相比,基于数据湖的方案具有更大的优势. 在传统数仓中,为了实现数据库等变更数据的入仓,通常需要维护两张表,一张增量表用于存放每天新增的数据库变更明细数据,另外一张全量表,存放历史所有的merge数据,全量表每天和增量表更据主键做merge操作. 显然,基于数据湖方案在实现的简单性和时效性上都更优.

TableStore实时入湖

TableStore是阿里云提供的是阿里云自研的NoSQL多模型数据库,提供海量结构化数据存储以及快速的查询和分析服务.它同时支持了通道功能,支持变更数据的实时消费。我们支持TableStore全量通道、增量通道以及全量加增量通道的实现入湖.其中全量通道包含历史全量数据,增量通道包含增量变化的数据,全量加增量通道则包含了历史全量和增量变化的数据.

5.png

SLS日志实时入湖

SLS是阿里云提供的针对日志类数据的一站式服务,主要存放用户日志数据。将SLS中的日志数据实时归档到数据湖中,进行分析处理可以充分挖掘数据中的价值。目前通过SLS入湖模板,填写project、logstore等少量信息,即可完成日志实时入湖的能力。

总结展望

一站式入湖功能极大的降低了异构数据源入湖的成本,满足了SLS、DTS等数据源入湖的时效性要求,同时也支持了数据源实时变更的能力。通过一站式入湖,将不同数据源的数据统一归并到以OSS对象存储为基础架构的集中式数据湖存储中,解决了企业面临的数据孤岛问题,为统一的数据分析打好了基础.

后续一站式入湖一方面将继续完善功能,支持更多类型的数据源,入湖模板方面开放更多能力给用户,支持自定义ETL的功能,提高灵活性。另一方面,将会在性能优化方面不断投入,提供更好的时效性和稳定性。

 

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文说透架构设计的本质

作者 | 猿码架构来源 | 云时代架构头图 | 下载于视觉中国前言:在软件研发领域,程序员的终极目标都是想成为一名合格的架构师。然而梦想很美好,但现实却很曲折。在实际工作中,程序员会分很多种,有的擅长编码实现&#x…

“视频云营业厅”发布,蚂蚁 mPaaS 加速金融机构数字化转型

简介: 线下业务线上办,便民服务不间断 在业务和数据争相“上云”的今天,更多金融机构加速数字化转型进程,将原有的人对人、线下、柜面核心业务进一步线上化,扩充全新的业务触点,开启远程业务办理的新模式。…

被Python「苦虐」的日子太惨了!

Python因为其优越的特性广泛应用于数据分析、人工智能、Web开发、后端开发、自动化测试/运维、爬虫等领域,也得到了很多企业的青睐。甚至连BATZJ的技术大牛,都无可否认Python现在对于一个程序员发展的重要性!最近一两年,我身边也有…

阿里云肖力:原生安全打造云上绿洲

2020年9月17日-18日,一年一度的云栖大会在云上如约而至。疫情加速数字化转型大背景之下,云原生以一种高能见度为各行业带来了一个更动态多变、更具效率和生命力的架构。云原生安全具有什么优势,能否解决线下业务场景的安全困局?作…

Nacos Go 微服务生态系列(一)| Dubbo-go 云原生核心引擎探索

简介: 作为微服务框架的核心引擎--注册中心,是必不可缺少的组件,市面已经有多款注册中心支持 Go 语言,应该如何选择呢?我们可以对目前主流的支持 Go 语言的注册中心做个对比。 作者 | 李志鹏 近几年,随着 …

微软每年豪砸安全研发 10 亿美元,聊聊背后的技术密码

从无序中寻找踪迹,从眼前事探索未来。正值 IT 黄金十年新开端, CSDN 欲以中立技术社区专业、客观的角度,深度探讨中国前沿 IT 技术演进,现在推出年度重磅企划——「拟合」,通过对话企业高管大咖,跟踪报道企…

Chrome浏览器直接下载pdf文件的设置步骤

使用Google Chrome浏览器,在点击网页中的pdf文件时,浏览器会直接将pdf文件打开并显示,要下载pdf文件的话,还需要进行另存操作。 有的时候我们点击pdf文件就是为了直接下载,而不是为了在浏览器中查看pdf文件。可以按以…

Bilibili资深运维工程师:DCDN在游戏应用加速中的实践

简介: bilibili资深运维工程师李宁分享《DCDN在游戏应用加速中的实践》从bilibili游戏应用的效果和成本入手,深入浅出地分享DCDN全站加速在游戏加速场景中的应用。 日前,云栖大会新一代CDN的技术突破与应用实践专场中,bilibili资…

Gartner:云安全的未来——中国的安全访问服务边缘架构

作者 | Gartner高级研究总监 Evan Zeng 编辑 | 宋 慧 头图 | 付费下载于东方IC Gartner最新的“安全领域新兴技术及趋势影响雷达”(Emerging Technologies and Trends Impact Radar: Security)显示,安全服务及接入边缘技术具有极高重要性&am…

springboot word excel ppt 图片aspose 转换PDF 在线预览

文章目录1. 引入依赖2. 注册工具类3. 文件转换工具类4. 文件预览工具类5. 文件处理实现类6. 文件处理入口7. 配置类8. 配置文件9. 依赖目录文件列表10. 图片转换工具类11. 测试连接12. 效果图12. 执行shell命令工具类补充1. 引入依赖 下载 Aspose 的依赖 Jar 包可以通过一下仓…

架构制图:工具与方法论

简介: 软件工程也是工程,因此传统工程制图的一些基本理论,在软件行业同样适用。但另一方面,软件与实体制造业之间还是有着本质区别,所以在制图方面的需求和方式也大相径庭,无法直接套用。作为软件行业的从业…

Gartner:云安全的未来,是安全访问服务边缘架构

作者 | Gartner高级研究总监 Evan Zeng编辑 | 宋 慧头图 | 付费下载于东方ICGartner最新的“安全领域新兴技术及趋势影响雷达”(Emerging Technologies and Trends Impact Radar: Security)显示,安全服务及接入边缘技术具有极高重要性&#x…

奥哲孟凡俊:低代码平台对当代企业智能管理的支撑

简介: 导读:在数字化时代,业务拓展快,迭变快将成为常态和主流,企业数字化转型除了企业内部协同提效之外,基于多项底层技术框架的低代码平台更是智能协作不可或缺的底层支持,奥哲高级副总裁兼奥哲…

yarn 不是内部或外部命令,也不是可运行的程序(亲测可用)

这个时候报 yarn 不是内部或外部命令 相信你的npm已经安装好了 方法一(网上大多数是这个): npm install -g yarn方法二(我的是这个):配置环境变量(你的yarn地址直接复制上去就好了&#xff09…

基于 Flink + Hive 构建流批一体准实时数仓

简介: 想要搭建流式链路就必须得抛弃现有的 Hive 数仓吗?并不是,借助 Flink 可以实现已有的 Hive 离线数仓准实时化。本文整理自 Apache Flink Committer、阿里巴巴技术专家李劲松的分享,文章将分析当前离线数仓实时化的难点&…

腾讯云~kafka伪集群搭建

文章目录一、zookeeper伪集群搭建1. 下载安装包2. 解压安装包3. 创建目录4. 修改配置文件5. 修改dataDir,clientPort两个配置项5. 在data目录下创建myid文件6. 复制多个zookeeper7. 修改内存大小8. 启动zookeper9. 查看zookeeper运行状态二、kafka 伪集群搭建2.1. 下…

脚本征集大赛开启啦!100%有奖!

对一个程序爱好者来说,最酷的事情莫非就是用你喜欢的语言一步步实现你的idea, 现在用 CSDN 浏览器助手插件, 不仅能提升浏览器效率,还能在上面开发黑科技脚本,帮助你实现各种 idea~

蚂蚁御术:我的前端十年成长之路

我是御术,10年北邮毕业参加工作至今,刚好10年。一直觉得自己特别幸运,一路走来遇到了那么多好人好事,有机会一同做了点事情,由衷感激家人朋友们的支持和帮助。 自以为每一个人的发展轨迹都是不可复制的,过…

看动画学算法之:排序-基数排序

简介 之前的文章我们讲了count排序,但是count排序有个限制,因为count数组是有限的,如果数组中的元素范围过大,使用count排序是不现实的,其时间复杂度会膨胀。 而解决大范围的元素排序的办法就是基数排序。 基数排序…

mPaaS-RPC 拦截器各种场景下的使用指南

简介: RPC拦截器机制在preHandle、postHandle、exceptionHandle以及H5等场景中的应用 mPaaS 移动网关服务(Mobile Gateway Service,简称 MGS)作为 mPaas 最重要的组件之一,连接了移动客户端与服务端,简化了…