GaussDB(DWS) 基于 Flink 的实时数仓构建
本文分享自华为云社区《GaussDB(DWS)基于Flink的实时数仓构建》,作者:胡辣汤。
大数据时代,厂商对实时数据分析的诉求越来越强烈,数据分析时效从 T+1 时效趋向于 T+0 时效,为了给客户提供极速分析查询能力,华为云数仓 GaussDB(DWS)基于流处理框架 Flink 实现了实时数仓构建。在本期《GaussDB(DWS)基于 Flink 的实时数仓构建》的主题直播中,华为云数仓 GaussDB(DWS)解决方案专家 Eric 老师,为您深度解析 GaussDB(DWS)+Flink 如何增强湖仓增量数据在不同数据模型层之间的实时流动能力,如何为消息数据流提供高性能通用入库能力,又如何构建极致的端到端实时数仓解决方案。
1、增量计算的背景
随着数智化时代的到来,数据量不断增长,为了充分挖掘数据价值,实时获取数据动态,GaussDB(DWS)通过与流引擎 Flink 结合,优化 ETL Pipeline,从而数据分析时效实现 T+0。
Flink 是一款开源的流处理框架,它能够实时处理大规模数据流,并具有高可靠性和高性能的特点。Flink 支持流式数据处理、批处理和图形处理等多种计算模式,并提供了丰富的 API 和工具,可以方便地进行数据处理和分析。GaussDB(DWS)与 Flink 结合构建下一代 Stream Warehouse,实现增量计算,可以为用户提供更加全面、高效的数据处理和分析能力。
为什么需要增量计算能力?增量计算能力解决了哪些场景的痛点问题?
高性能场景
一些需要高性能的典型场景如下:
(1)增量数据的实时 ETL 并更新物化视图,秒级更新;
(2)数据在仓湖之间实时流动能力;
(3)实时流数据不落盘,直达实时大屏。
数据入库场景
Kafka 的数据直接入湖
2、GaussDB(DWS)+Flink 实现增量计算的架构设计
GaussDB(DWS)与流引擎结合,实现企业数仓模型的分层、增量化加工,统一批流处理逻辑,一站式支持批、流、交互式、点查等多种场景,简化数据生产线架构复杂度,构建新一代实时增量数仓,满足企业日趋便捷化的数据生产线场景。
如下图,增量数据可以被流引擎实时地感知捕获到,并运行预置的增量计算任务,然后再写回到数仓的下一层模型里面。通过几次流引擎的迭代,使得贴源层的增量数据能迅速的反映到明细层以及最终的集市层,来支撑实时的 BI 报表分析、交互式分析等业务场景。
3、 GaussDB(DWS)+Flink 增量计算能力图介绍
GaussDB(DWS)结合 Flink 的能力构建,涵盖以下四大功能:
Catalog
打通 Flink 元数据与湖仓元数据。
Source
仓内表通过 Binlog 将增量数据暴露出来让 Flink 及时感知,从而驱动实时增量数据运算任务的开始。
Source connector 算子,可以将一些条件下推至仓中完成点查任务。
Sink
Sink connector 算子可以将 job 中的数据写回数仓中。
流维
流维算子提供了流数据关联维表的能力。
GaussDB(DWS)结合 Flink 的非功能性构建:
CKPT 建设
每个算子 implements flink 的指定接口,将计算中间结果持久化下去,并做到功能幂等,即可接入 flink 灾难恢复处理能力,做到 job 的端到端数据 exactly once。
4、 生态工具 streamer 介绍
为了便于用户一键操作数据入库,GaussDB(DWS)研发了 streamer 生态工具,用户不再需要自己写 SQL,只需要在 IDE 中进行操作。
操作步骤如下:
第一步:配置 kafka 及数仓表。
第二步:创建 POJO 类分别对应 kafka 消息体及数仓表行数据。
第三步:编写自定义算子,实现自定义 Mapping 功能。系统提供默认 1 对 1 Mapping 算子,可直接使用。
本期分享到此结束,更多关于 GaussDB(DWS)产品技术解析、数仓产品新特性的介绍,请关注 GaussDB(DWS)开发者平台,GaussDB(DWS)开发者平台为开发者们提供最新、最全的信息咨询,包括精品技术文章、最佳实践、直播集锦、热门活动、海量案例、智能机器人。让您学+练+玩一站式体验 GaussDB(DWS)。
GaussDB(DWS)开发者平台链接:https://bbs.huaweicloud.com/contents/dws/learning.html
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/1bf36588189ecdc1165af5f8c】。文章转载请联系作者。
评论