如今,面对数字化快速发展带来的挑战,现代化企业需要打破以往数据的孤岛,让数据从采集、加工、管理到应用,是统一的数据存储和数据处理,甚至是作为全栈式的湖仓一体数据平台,以支撑各类数据赋能业务,进而创造更多价值。

为了帮助数据分析相关的业务与技术人员更深入地了解湖仓一体,数据智能服务商滴普科技联合 CSDN,发起了 DEEPNOVA 技术荟系列公开课。第四期公开课中,滴普科技 DataFacts 产品负责人刘波在上一期数据入湖技术解析之后,进一步为开发者分享湖仓一体架构设计与湖上建仓技术实践。

湖仓一体技术架构与建仓流程

在数据智能时代,湖仓一体是否会成为每个企业构建大数据栈的必要选项?答案几乎是肯定的。对于高速增长的企业来说,选择湖仓一体架构来替代传统的数据仓和数据湖,将成为不可逆转的趋势。

刘波首先分享了滴普科技的湖仓一体技术架构,分为存储层、数据管理与加速层、计算层与资源管理、数据应用层四部分。

湖仓一体架构图

其中,数据存储层支持 OSS、S3、Minio 等对象存储和 Hadoop HDFS。对象存储存储非结构化、原始数据、冷数据,提供高性价比,HDFS 存储结构化数据,提供高性能存储。使用 Iceberg、Hudi、Delta 作为数据存储中间层,能够基于 HDFS、对象存储等底层存储,支持 ACID 语义、实现快速更新能力;通过 Alluxio 进行数据缓存,加速 Spark、Flink、Trino(原 Presto)等计算引擎对数据湖的读写。

计算层支持多引擎,Spark、Trino、Flink 等均实现 Serverless 化,跑在 K8S 中,即开即用,满足不同查询场景,并可以通过 K8S、Yarn 进行统一资源访问/调度。

滴普科技湖仓一体架构中最重要的一个设计——智能元数据,是基于特定的规则,可以智能识别结构化、半结构化文件的元数据,构建数据目录,并转化成内置存储中的一个Hive表,统一进行元数据管理,提供类HiveMeta API针对不同计算引擎访问底层数据。

另外,架构中统一了编程模型,使用 Apache Beam 作为统一的编程模型,提供统一的 IDE,统一流和批,抽象出统一的 API 接口,并且生成的数据处理任务应该能够在各个计算引擎上执行,使得用户可以自由切换数据处理任务的执行引擎与执行环境。

湖仓一体另一个重要的实现方案是以 Hive 外部表的形式。数据源的数据被采集到对象存储如 S3、OSS、OBS 中,然后创建 Hive 外部表,与对象存储建立连接,通过 Spark SQL 读取 Hive 外部表的数据,写入湖中。通过 Spark SQL 读取湖的数据,按照贴源层的规范,写入 Hive 外部表,最后通过 Hive SQL 或者 Spark SQL 进行数据仓库与数据集市数据的加工,以 Hive 外部表的方式进行管理。

流程示意图:第二步数据模型设计

滴普科技的 DataFacts 平台进行湖上建仓的流程分为基础配置、数据模型设计、项目配置、ETL 工程开发、发布与运维、数据服务开发。

  • 首先,进行数据开发之前,用户需先完成计算、存储引擎配置及连通性测试,以及相关账号与权限的配置工作。

  • 接下来,需要进行数据模型设计,包括模型分层、所属主题、模型数据、模型关系等信息的逻辑数据模型设计,以及数据库类型、表物理参数,创建的数据源等的物理数据模型设计。

  • 第三步,创建项目空间实现权限隔离,项目空间中可配置项目基础信息、开发环境&生产环境、成员管理、权限管理、数据源信息等。

  • 第四步,进入项目空间进行 ETL 工程开发,产品具备离线/实时开发能力,适配多种任务类型(Spark SQL、Hive SQL、Impala SQL、Flink SQL、Python、Jar 包等),支持资源管理、函数管理、变量管理等功能。ETL 工程在开发环境完成开发及测试后,可通过“发布”功能经过审核后,提交至生产环境。在运行中,DataFacts 平台在运维模块对生产环境任务进行运维、监控、错误重试、补数据、流程管理、告警配置等自动化运维操作。

  • 最后,用户进行数据服务的开发工作时,DataFacts 平台为企业上层应用提供统一的、标准的数据共享接口,提高数据利用效率和质量。

FastData湖仓一体关键技术

作为一个新兴的数据架构,湖仓一体正成为兵家必争之地。滴普科技通过技术架构的融合与创新,让湖仓一体化的技术优势在应用中得到了充分体现。这也是滴普科技的技术“杀手锏”。

在整体的架构设计介绍之后,刘波重点介绍了 DataFacts 中重要的技术思路与实现方法。

DataFacts 数据集成模块

在数据入湖中,DataFacts数据集成模块,包含 ETL 任务脚本、任务管理、告警、项目管理、组件管理,组件管理可以通过自定义灵活使用,资源调度管理目前支持 Yarn、K8S,还可以本地化的资源调度管理方式,通过 MasterNode、WorkNode 去实现资源调度管理。在平台完成配置后,通过 Connectors 组件,例如通过 Flink CDC 抓取日志,实时采集数据,采用Spark 或复用 SeeTunnel 的Connector 离线采集数据,还可以集成自研的组件,支持实时和离线的数据采集。

DLink统一元数据管理架构设计

FastData一个重要的技术点是统一元数据管理,保证数据湖与数仓数据的互通。详细来说,元数据的交互流程和管理分为:

1. 创建 Catalog

客户端通过 rpc 调用统一元数据服务,提供 Catalog 名称、租户、数据源连接地址等信息,元数据服务持久 Catalog 名称、租户、数据源连接地址等信息到 Catalogs 表。(对于 HMS,需额外提供版本号;对于 HMS 3.x,除了在 Catalogs 表中插入记录,还需要在 HMS 的 CTLGS 表中插入记录,目的是在一个 HMS 实例中细化到 database 的权限隔离。)

2. 创建数据库

客户端通过 rpc 调用统一元数据服务,提供 Catalog 名称、租户、数据库等信息,元数据服务在已经创建 Catalog 的基础上,将数据库信息持久化到 DBS 表,同时调用相应的底层数据源创建数据库。由于创建的数据库信息跟 Catalog 关联,因此权限隔离能够细化到数据库级别。

3. 查询元数据

客户端通过 rpc 调用统一元数据服务,提供租户信息,元数据服务根据请求可以返回:租户拥有的 Catalogs;指定 Catalog 下的相关 databases;指定 Catalog 和 database 下的相关 tables;指定标签的数据(表、字段等)。如果自定义表结构中不存在相关信息,比如 HMS 表的分区等信息,则需要查询对应底层支持的元数据(如 HMS)。

在统一管理平台、元数据设计思路之后,刘波还介绍了其他一些关键技术,如 CDH 与 DLink 跨 Catalog 数仓过渡、Iceberg 表维护、DLink 兼容 Hive 与 Spark 的设计、DataFacts 数据集成模块优化、Trino Catalog 热加载、Trino 服务暴露、Trino 支持 K8S 亲和性调度。

解决传统Lambda架构痛点:增量计算新架构

传统 Lambda 架构,数据无法更新、增加

以往湖上建仓,采用传统的 Lambda 架构,实际使用中,开发者会遇到种种问题与痛点。例如传统 Lambda 架构不支持 ACID,因此 Upsert 场景数据无法更新,不支持 Row-level delete,数据修正成本高。另外,传统 Lambda 架构的数据难以保证准实时可见,无法增量读取,无法实现存储层面的流批统一,无法支持分钟级延迟的数据分析场景。第三,传统 Lambda 架构中 Table Evolution,写入型 Schema,对 Schema 变更支持不够,对 Partition Spec 变更支持不友好。

FastData采用增量计算新架构,解决 Lambda 架构痛点

针对这些问题,FastData采用了增加计算的设计,数据源在 Kafka 中,采用增量入湖,通过 Flink 把数据写到 Iceberg 里(Iceberg 支持行级别数据删除和更新)。从 ODS 到 DWS 层,还可以采用 Impala 4.1 及以上版本,读写 Iceberg 数据,类似于消息队列,满足全量和增量的消费,并支持行级别数据的删除和更新。

通过以上设计,FastData可支持 ACID 语义,避免读到不完整的 Commit;基于乐观锁支持并发 Commit;Row-level delete,支持 Upsert。FastData还具备增量快照机制,Commit 后数据即可见(分钟级),可回溯历史快照。FastData支持开放的表格式,如数据格式 parquet、orc、avro;多种计算引擎如 Spark、Flink、Hive、Trino/Presto,以及支持数据的流、批读取和写入。

此外,刘波也分享了针对 Kafka、Iceberg 等存在的功能欠缺,FastData的大量实践经验,以实现统一存储的准实时数仓。

FastData帮助客户构建数据湖&湖仓一体完整架构

通过架构设计与研发工作,滴普科技为多家客户提供了湖仓一体的技术与服务。公开课中,刘波分享了某零售企业如何利用 FastData构建湖仓一体的完整案例。

客户基于DataFacts与 CDH 6.0.0 构建数据中台之后,采用 FastData实现从数据建模到开发、发布、运维、资产、数据质量、数据安全、数据服务等全部功能,将数据中台升级为数据湖&湖仓一体平台。

方案实现了结构化数据的单表数据实时入湖和离线数据入湖、实时整库数据入湖、历史数据入湖,同时提供数据归档、实时采集任务迁移、离线任务与实时任务衔接,以及 Iceberg 快速迁移。对于半结构化和非结构化数据入湖,例如静态大文件与通过 Kafka 过来的 JSON、XML、日志等流式文件,并由滴普科技的 DLink API 提供流量控制以保护底层的数据存储。同时,DataFacts 还提供了数据建模、湖上建仓、数据治理等功能。

写在最后

从第四期的公开课内容我们能看到,滴普科技 FastData积累了从架构流程的完整方案,到其中关键技术实践,再到解决传统架构痛点的设计等扎实的开发经验与产品。凭借这些技术积累与实践,滴普科技正在为更多头部行业的用户构建湖仓一体数据平台,公开课也详细介绍了其中一些典型的客户场景与案例。

另外,DEEPNOVA 开发者社区作为面向技术开发者的交流学习、生态共创平台,未来,DEEPNOVA 会继续以建立技术生态,合作共赢为宗旨,持续激发社区创新力,为开发者们提供更加前沿的技术思想及技术内容,促进圈层交流,学习互助,开拓技术视野。

湖上建仓全解析:如何打造湖仓一体数据平台 | DEEPNOVA技术荟系列公开课第四期相关推荐

  1. 滴普科技完成B+轮融资,中航产融战略投资,聚焦湖仓一体数据智能基础软件...

    数据智能产业创新服务媒体 --聚焦数智 · 改变商业 近日,滴普科技完成B+轮融资,本轮融资由中航产融领投,部分头部老股东跟投,融资规模1.1亿.至此,滴普科技成长为新一代湖仓一体数据智能基础软件领域 ...

  2. Apache DolphinScheduler 助力 Trino 快速实现湖仓一体数据建设

    点亮 ⭐️ Star · 照亮开源之路 https://github.com/apache/dolphinscheduler 作者 | 钟嘉杰 Apache DolphinScheduler PMC ...

  3. TableStore发布多元索引功能,打造统一的在线数据平台

    什么是NoSQL "NoSQL"一词最早出现在1998年,距今刚好二十年.站在今天回头看的话,很少有人能想到在关系型数据库成熟发展了三十年,已经在数据存储领域占据了不可动摇的的地位 ...

  4. 标杆案例|中海数字化转型:以客户为中心,打造客户全域旅程数据平台

    背景 2021年,数澜科技与中海科技结缘并达成合作,携手营销管理部.客户服务部共同建设中海地产客户数据中台项目.数澜科技以客服.营销.产研为视角客户为中心,构建中海客户满意度.营销分析等场景,实现中海 ...

  5. 《智慧城市时空大数据平台建设技术大纲(2019版)》解析——未完,待续

    2月18日,自然资源部办公厅发布关于印发<智慧城市时空大数据平台建设技术大纲(2019版)>我们先来回顾下之前国家对于智慧城市建设的指导性纲要文件: 1.2015年,<智慧城市时空信 ...

  6. 杠上Spark、Flink?Kafka为何转型流数据平台

    AI前线导读: 消息中间件系统(比如RabbitMQ.Kafka.Pulsar等)是现代实时数据或者流数据基础架构的关键环节.它通常作为一个数据管道,链接了各种业务前台和数据后台(比如数仓等).但是随 ...

  7. 阿里云面向企业效率的云上产品全解析:云桌面、云AP、云投屏

    一.云桌面 重新定义云计算时代的桌面服务 2017年10月12日的杭州云栖大会上,阿里云副总裁李津做了"云之深处"的阿里云新品发布主题演讲,在演讲中,李津认为在数字化时代,商业的效 ...

  8. 阿里曾文旌:Greenplum和Hadoop对比,架构解析及技术选型-CSDN公开课-专题视频课程...

    阿里曾文旌:Greenplum和Hadoop对比,架构解析及技术选型-6397人已学习 课程介绍         本主题通过介绍 Greenplum 架构实现,及其亮点特性,辅之对比传统关系型数据库, ...

  9. 韩国医院打造区块链医疗数据平台

    点击上方 "蓝色字" 可关注我们! 暴走时评: 区块链医疗数据市场公司Longenesis和生物技术公司Insilico Medicine已与韩国医院Gil Medical Cen ...

最新文章

  1. MySQL 误操作恢复表
  2. laravel route函数 404_laravel生成及获取不同类型的URL地址总结
  3. 如何解除服务器注册,《天龙八部手游》服务器注册上限怎么办 服务器注册方法...
  4. 强力推荐:关于内存中栈和堆的区别
  5. java没有pom文件_java – Maven依赖没有得到相应的POM文件下载
  6. 统信UOS系统怎么下载QQ音乐
  7. 基于java语言的C/S模式网络聊天室软件
  8. 偏最小二乘法(R语言)
  9. 【C++初阶:STL简介】
  10. 拉钩网爬取所有python职位信息
  11. 花一个星期时间呕心沥血整理出高频软件测试/自动化测试面试题和答案
  12. python走迷宫_Python使用Tkinter实现机器人走迷宫
  13. .js文件中的下划线
  14. 【《Redis深度历险》读书笔记(1)】基础:万丈高楼平地起 ——Redis 5种基础数据结构
  15. UML建模基础知识点
  16. UCanCode发布领先的大型组态建模仿真CAD与GIS开源套件2019版本
  17. osd 显示 png格式图片水印
  18. 数据清洗(一)-----------重复数据处理
  19. 非常不错的地区三级联动,js简单易懂。封装起来了(转)
  20. Excel中如何添加Power Pivot

热门文章

  1. 车迷福利|高清超级跑车手机壁纸
  2. 数商云:聚焦供应链布局,新能源汽车企业重塑产业核心竞争力
  3. 浅谈 PostgreSQL 的 timestamp 类型
  4. DOTA数据集 | yolov5 训练与测试
  5. fighting!一部电影带来的震撼和思考
  6. 基于idea-SSM的民宿预约网站客房预订管理系统-客户预订(javaweb-php-asp.netC#-j2ee-springboot)
  7. Java的jmap命令使用详解
  8. linux允许佚名用户访问权限,Linux上的ACL权限文件访问
  9. 商业化广告--体系学习-- 15 -- 业务实战篇 --程序化交易:程序化交易是否可以提升广告效果?
  10. 邵阳计算机学校1999年第36班,第36个教师节,致敬教育战线的您 --邵阳市第三中学...