首页 > 其他分享 >技术揭秘 DWS 实时数仓解决方案,如何深度融合 Flink 简化数据链路

技术揭秘 DWS 实时数仓解决方案,如何深度融合 Flink 简化数据链路

时间:2024-09-12 11:22:27浏览次数:11  
标签:数仓 架构 DWS Flink 实时 数据

摘要:DWS 实时数仓解决方案支持数仓模型的分层和增量加工,能够实现数据的实时入库、出库和查询,确保数据的新鲜度。


一、实时数仓介绍

实时数仓是一种现代化的数据仓库系统,其核心优势在于能够处理和分析实时数据。随着信息技术和数据科学的飞速发展,企业对实时数据分析和决策支持的需求愈发迫切。实时数仓能够实时或近实时地反映数据变化,为企业提供最新的业务指标和深度洞察,从而支持快速决策。因此,它已成为数据领域的重要概念和不可或缺的工具。


二、实时数仓的架构

实时数仓的两个常见架构是 Lambda 架构和 Kappa 架构:

(1) Lambda 架构:Lambda 架构的核心理念是“流批一体化”。随着机器性能和数据框架的不断完善,用户其实并不关心底层是如何运行的,无论是批处理还是流式处理,只要能够按照统一的模型返回结果即可,这正是 Lambda 架构诞生的原因。如今,许多应用如 Spark 和 Flink 都支持这种结构。数据进入平台后,可以选择批处理运行,也可以选择流式处理运行,但无论选择哪种方式,数据的一致性都是相同的。

技术揭秘 DWS 实时数仓解决方案,如何深度融合 Flink 简化数据链路_数据处理

(2) Kappa 架构:尽管 Lambda 架构的理念很好,但在实际应用中可能会面临数据复杂性大大增加的问题。为了解决这一问题,有人提出了用一套架构解决所有问题的设想,而流行的做法就是基于流计算来实现。通过加大流计算的“时间窗口”,可以实现逻辑意义上的批处理操作,从而简化架构并降低数据复杂性。

技术揭秘 DWS 实时数仓解决方案,如何深度融合 Flink 简化数据链路_数据_02


三、实时数仓面临的挑战

尽管实时数仓在现代数据管理中扮演着重要角色,但其构建和运营过程中仍面临诸多挑战:

  • 实时性挑战:实时数仓要求从数据接入、清洗、整合、加工到查询的整个过程都需控制在极短的时间内完成,以满足业务对实时数据的需求。这要求系统具备高速的数据处理能力,包括数据采集、处理和查询等各个环节。同时,低延迟也是实时数仓面临的一大挑战,特别是在需要实时响应的业务场景中。
  • 数据质量挑战:实时数仓中的数据需要保证高度的准确性,因为实时数据往往直接用于业务决策。任何数据错误都可能导致错误的决策结果,从而给企业带来损失。此外,数据一致性也是实时数仓需要关注的重要方面,以确保不同数据源之间的数据不会发生冲突或不一致的情况。
  • 性能挑战:实时数仓需要支持超大的数据量和超高的 RPS(每秒记录数)实时写入。在大数据场景下,如何保持高性能的写入和查询成为了一个巨大的挑战。同时,随着数据量的不断增长,实时数仓还需要具备良好的扩展性,以应对未来可能出现的性能瓶颈。
  • 运维挑战:实时数仓的运维复杂度较高,因为涉及多个组件和多个环节的监控和管理。运维人员需要具备丰富的经验和专业的技能,以应对各种突发情况和性能问题。同时,为了降低运维成本和提高运维效率,实时数仓还需要建立完善的运维管理体系和自动化运维工具。


四、DWS 提供的实时数仓解决方案

在传统的实时数仓建设中,由于上游数据源的不一致性,企业通常需要采用 Flume、Canal、Logstash 等不同的数据采集工具,并通过消息队列 Kafka 将数据写入数据仓库,且在实际业务环境中,通常需要 HBase、Druid、Hive、ClickHouse 等不同的存储引擎和计算引擎配合来满足业务的实时需求。这一过程涉及众多组件,数据链路较长,维护成本高昂。

技术揭秘 DWS 实时数仓解决方案,如何深度融合 Flink 简化数据链路_运维_03


然而,DWS 与 Flink 的深度融合改变了这一现状。DWS 实时数仓解决方案支持数仓模型的分层和增量加工,这为企业带来了诸多优势。首先,它能够实现数据的实时入库、出库和查询,确保数据的新鲜度。其次,DWS 统一了批流处理逻辑,一站式支持批处理、流处理、交互式查询和点查等多种场景,进一步简化了数据生产线的架构复杂度。

技术揭秘 DWS 实时数仓解决方案,如何深度融合 Flink 简化数据链路_数据_04


1. 与 Flink 流计算生态深度融合,简化链路,简化运维

DWS 统一数仓以一替 N,利用 Flink 强大的实时处理能力和 DWS 的 Binlog 能力,可以快速构建实时数仓,整个服务层由 DWS 统一数仓完成,简化诸多存储与计算组件。其次 DWS 通过与 Flink 的结合,数据采集组件与消息队列合并到计算层 Flink 中,整体任务链路都可以通过 Flink SQL 来驱动,从而实现了数据链路的再度简化。

这一变革不仅降低了维护成本,还减少了故障点和传输瓶颈,进一步提高了数据的实效性。同时,更少的组件意味着架构变得更加清晰简单,维护也变得更加方便。


2. 数据处理效率飞跃,秒级/毫秒级查询,T+0/T+0.x 处理时效

DWS 通过 gds-kafka 全托管直连 DN 入库的方式,实现了性能的显著提升。这一特性使得数据能够更快地进入数仓,为实时分析提供了有力支持。通过物化视图、预聚合表等能力,数据可以在不出库的情况下自动实现增量计算。这一特性极大地提高了数据处理的效率,降低了数据处理的复杂度。


  • gds-kafka 全托管直连 DN 入库:

传统的 flink 入库存在两大痛点问题:用户需维护入库的 flink jar,运维成本高;多并发 sink 写 CN,CN 存在负载瓶颈,严重影响入库性能的提升。

技术揭秘 DWS 实时数仓解决方案,如何深度融合 Flink 简化数据链路_数据处理_05

面对以上痛点问题,DWS 提供了针对性解决方案,通过全托管实时入库服务,用户无需维护 flink 代码;CN 不再成为瓶颈,入库性能大幅提升,随集群规模近线性扩展。


  • 物化视图:

物化视图是 DWS 实时数仓的重要特性之一。它允许用户将查询结果作为物理表存储在数仓中,从而加速后续的查询操作。DWS 能够实时捕获并处理数据源中的增量数据。当数据发生变化时,系统能够识别这些变化,并仅对发生变化的数据进行重新计算,从而更新物化视图。这种增量处理方式不仅提高了数据处理的效率,还降低了资源消耗,使得物化视图在实时数据仓库环境中更加实用和高效。此外,物化视图还可以代替部分分层加工的逻辑,通过预先计算和存储复杂查询的结果,用户在查询数据时可以直接从物化视图中获取,而无需编写复杂的查询语句或进行多层数据加工,提高数据查询与处理效率。


  • Turbo 引擎:

Turbo 引擎是 DWS 针对传统列存执行引擎的主要性能瓶颈点做出的独创性突破,通过数据格式优化、自研 Hash 算法、根据运行态数据特征定制数据处理算法、算子算法重构等手段实现性能倍增目标。DWS 9.1.0 版本发布性能白皮书显示开箱性能整体相较 8.3.0 版本提升一倍。


  • Hstore 技术:

当用户需要捕获数据库事件用于数据增量导出 Flink 等第三方组件,并协同完成数据加工等任务时,DWS 实时数仓中的 HStore 表提供了 Binlog 功能,通过消费 Binlog 数据来实现上下游的数据同步,同时提供了小批量实时入库的能力,可以大幅提高数据加工的效率。


五、未来展望

展望未来,DWS 实时数仓解决方案将继续深化与 Flink 等先进流计算技术的融合,引领数据仓库领域的新一轮变革。DWS 实时数仓将不断优化其存储与计算引擎,以支持更大规模的数据处理需求。Turbo 引擎等创新技术的持续迭代将推动数据处理性能的进一步提升,满足企业对数据实时性的极致追求。同时,HStore 表等高级特性的广泛应用将促进数据增量同步与加工的效率,为复杂业务场景下的数据应用提供有力支持。随着 AI 技术的不断发展,DWS 实时数仓也将更加注重智能化与自动化,优化查询路径、预测数据趋势、识别异常数据等,为企业提供更精准、更智能的数据洞察。

DWS 实时数仓将不断拓展其应用场景,覆盖更多行业与领域。无论是智慧城市、智能制造还是远程医疗等前沿领域,DWS 实时数仓都将以其高效、灵活、智能的特点为企业带来全新的数据价值挖掘方式。我们相信,DWS 实时数仓作为企业数字化转型的重要驱动力,将助力企业在激烈的市场竞争中脱颖而出。


点击关注,第一时间了解华为云新鲜技术~

标签:数仓,架构,DWS,Flink,实时,数据
From: https://blog.51cto.com/u_15214399/11990314

相关文章

  • 14、Flink SQL 的 事件时间详解
    事件时间事件时间允许程序按照数据中包含的时间来处理,这样可以在有乱序或者晚到的数据的情况下产生一致的处理结果,它可以保证从外部存储读取数据后产生可以复现(replayable)的结果。事件时间可以让程序在流式和批式作业中使用同样的语法,在流式程序中的事件时间属性,在批式程......
  • 数仓工具之:Flume
    Flume是一个日志数据抽取工具Agent:是Flume中的基本单位,一个Flume配置文件,可以有多个Agent.每一个Agent中有三个组件组成,缺一不可:1、Source来源,数据过来的地方2、channel通道传递数据用的通道,一般比较的长,一个Channel中可以存储多个数据3、Sink数据下沉的地方......
  • Flink学习-作业调度介绍
    Flink官网地址:作业调度|ApacheFlink作业调度 #这篇文档简要描述了Flink怎样调度作业,怎样在JobManager里描述和追踪作业状态调度 #Flink通过 TaskSlots 来定义执行资源。每个TaskManager有一到多个taskslot,每个taskslot可以运行一条由多个并行task......
  • 数仓建模:如何有效构建DWB/DWM层? | 基于案例实战分析
    目录0为什么要构建DWB层?1DWB层功能及定义2DWB/DWM层如何实现?3项目案例实战3.1案例1:订单明细事实宽表构建3.2案例2:工单事实表指标分析4小结0为什么要构建DWB层?该层可以理解为DWS层逻辑的优化和沉淀,如果直接放到DWS层则会使得DWS层变得代码逻辑很复杂,不好维......
  • Flink 配置文件的深度解读
    Flink配置文件的深度解读目标通过了解FApacheFlink的配置文件(flink-conf.yaml),掌握Flink正确用法能快速定位生产环境问题以及做好生产实践的规划Flink配置文件的深度解读,包括各个配置项的意义和作用,以及它们的默认值。Flink配置文件概述Flink配置文件(fl......
  • Flink入门-watermark说明
    概要 #了解watermark前先需要明确flink支持的时间语义以及为什么需要watermark。Flink明确支持以下三种时间语义:事件时间(eventtime): 事件产生的时间,记录的是设备生产(或者存储)事件的时间摄取时间(ingestiontime): Flink读取事件时记录的时间处理时间(processi......
  • DWS(PG)自定义函数查询表注释 ,表结构
    createorreplacefunctionshow_table(tableNamevarchar2)returnstable(table_namevarchar2,column_namevarchar2,column_typevarchar2,attnotnullvarchar2,column_commentvarchar2)as$$begin returnquerySELECTc.relname::varchar2astable_name,......
  • 详解数仓的3A安全能力
    本文分享自华为云社区《GaussDB(DWS)3A安全能力》,作者:yd_281561943。1.前言适用版本:【8.0.0(及以上)】数据库安全是指保护数据库以防止未授权用户窃取、篡改和破坏数据库中数据信息的技术。数据库安全技术可以简单分为3个A:Authentication(认证):认证解决让谁进来的问题(进门)Authori......
  • Apache DolphinScheduler大规模任务调度系统对大数据实时Flink任务支持
    转载自神龙大侠我是用olphinScheduler3.2.1版本做源代码编译部署(部署方式参考我的另外一篇文档《源代码编译,ApacheDolphinScheduler前后端分离部署解决方案》)二进制文件部署本文也适用,只需要修改相对应的配置即可。资源管理底层基座替换成hdfsFlink程序jar包是在资源中心进......
  • 关于Flink内存分配核心知识点
    这个问题同样也是之前辅导过的同学的面试问题,这个问题非常接地气且考察面试者的实践经验。事实上,这也是我们大数据提高班的Flink专项提高部分内容。下面我列举的这些就是核心,能答出这些重点即可。内存模型在Flink1.9和Flink1.11版本做了非常大的改动,主要原因是为了统一Batch和Strea......