傻大方


首页 > 人文 >

多数据源一站式入湖



按关键词阅读:

简介:通过一站式入湖 , 将不同数据源的数据统一归并到以OSS对象存储为基础架构的集中式数据湖存储中 , 解决了企业面临的数据孤岛问题 , 为统一的数据分析打好了基础.
背景
数据湖作为一个集中化的数据存储仓库 , 支持的数据类型具有多样性 , 包括结构化、半结构化以及非结构化的数据 , 数据上包含数据库数据、binglog增量数据、日志数据以及已有数仓上的存量数据等.数据湖能够将这些不同、不同格式的数据集中存储在高性价存储如OSS等对象存储中 , 并对外统一的数据分析方式 , 有效解决了企业中面临的数据孤岛问题 , 同时大大降低了企业存储和使用数据的成本.
多数据源一站式入湖
文章图片

由于数据湖数据的多样性 , 如何简单高效的将这些异构数据源的数据迁移到中心化的数据湖存储中 , 是数据湖构建过程面临的问题.为此 , 我们需要完善的一站式入湖的能力 , 解决我们面临的问题 , 主要包括以下几点:
支持异构数据源统一的入湖方式
一个简单统一的入湖方式 , 用户可以通过简单的页面配置实现异构数据源的入湖操作.
满足数据入湖的时效性
对于日志、binglog等类型的数据源 , 需要实现分钟级延迟的数据入湖能力 , 满足实时交互式 分析场景对时效性的要求.
支持数据源的实时变更
对于数据库、TableStore Tunnel等类型的数据源 , 源头数据会经常发生变更 , 比如数据层面的update , delete等操作 , 甚至schema层面的字段结构变更. 需要利用更好的数据格式来支持这类变更行为.
为此 , 阿里云新推出了数据湖构建(Data Lake Formation , DLF)服务 , 了完整的一站式入湖解决方案 。
整体方案
多数据源一站式入湖
文章图片

数据入湖整体上分为入湖模板、入湖引擎、文件格式以及数据湖存储四个部分:
入湖模板
入湖模板定义了常见的数据源入湖方式 , 目前主要包括RDS全量模板、DTS增量模板、TableStore模板、SLS模板以及文件格式转换5种模板.
多数据源一站式入湖
文章图片

用户根据不同的数据源选择相应的入湖模板 , 填写源头相关参数信息 , 即可完成入湖模板的创建 , 并提交给入湖引擎运行.
入湖引擎
入湖引擎使用了阿里云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运行 。
文件格式
数据湖存储
【多数据源一站式入湖】数据湖数据统一放在OSS对象存储中 , OSS了海量数据存储的能力 , 同时在可靠性 , 价格等方面更具优势.
一站式入湖方案在很好的解决了前面提的几个问题:
支持异构数据源统一的入湖方式
通过模板配置 , 实现了统一简单的数据入湖方式.
满足数据入湖的时效性
通过自研Streaming SQL实现了分钟级延迟的数据实时入湖 , 满足了时效性要求.
支持数据源的实时变更 分页标题#e#
通过引进Delta Lake等更优的文件格式 , 实现了对update、delete等数据实时变更要求.
实时入湖
DTS增量数据实时入湖
多数据源一站式入湖
文章图片

【多数据源一站式入湖】在技术上 , 支持增量数据对历史数据的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全量通道、增量通道以及全量加增量通道的实现入湖.其中全量通道包含历史全量数据 , 增量通道包含增量变化的数据 , 全量加增量通道则包含了历史全量和增量变化的数据.
多数据源一站式入湖
文章图片

SLS日志实时入湖
SLS是阿里云的针对日志类数据的一站式服务 , 主要存放用户日志数据 。 将SLS中的日志数据实时归档到数据湖中 , 进行分析处理可以充分挖掘数据中的价值 。 目前通过SLS入湖模板 , 填写project、logstore等少量信息 , 即可完成日志实时入湖的能力 。
总结展望
一站式入湖功能极大的降低了异构数据源入湖的成本 , 满足了SLS、DTS等数据源入湖的时效性要求 , 同时也支持了数据源实时变更的能力 。 通过一站式入湖 , 将不同数据源的数据统一归并到以OSS对象存储为基础架构的集中式数据湖存储中 , 解决了企业面临的数据孤岛问题 , 为统一的数据分析打好了基础.
本文相关词条概念解析:
数据源
数据源(DataSource)顾名思义 , 数据的来源 , 是提供某种所需要数据的器件或原始媒体 。 在数据源中存储了所有建立数据库连接的信息 。 就像通过指定文件名称可以在文件系统中找到文件一样 , 通过提供正确的数据源名称 , 你可以找到相应的数据库连接 。 用户DSN允许单个用户在单个计算机上访问数据库 , 系统DSN允许在某个计算机上的多个用户访问数据库 。 C3P0是一个开放源代码的JDBC数据源实现项目 , 它在lib目录中与Hibernate一起发布 , 实现了JDBC3和JDBC2扩展规范说明的Connection和Statement池 。


    来源:(未知)

    【】网址:/a/2020/0925/kd536065.html

    标题:多数据源一站式入湖


    上一篇:正在全力生产苹果A14,预计将命名为骁龙875系列,不知道三星5nm,Cortex-X1超大核+3

    下一篇:5G和新基建的蓬勃发展,96届中国电子展,连接器行业面临新阶段


    人文

    兴旺投资独家领投挂耳咖啡隅田川咖啡

    阅读(29)

    隅田川咖啡自成立以来一直致力于品质优良、价格亲民、包装便携的快消咖啡产品。追求更精致、便捷、舒适的生活是90后普通的生活理念,隅田川的产品适合不便使用复杂咖啡器具的场景,让90后足不出户即可享受高品质咖啡生活。公司咖啡产品上线以来,一直以品质取...

    人文

    spacex|SpaceX重启西海岸发射,飞天与落地同框

    阅读(22)

    今天猎鹰9号火箭迎来第99次发射,就在阔别一年半的西海岸发射场。新箭首飞,成功陆地回收,并顺利部署新一代哨兵星座海洋版卫星。发射速览发射时间:美国太平洋时间11月21日9:17,北京时间11月22日1:17发射地点:加州范登堡空军基地4E发射位运载火箭:编号B10...