菜鸟游戏网 - 游戏让生活变快乐! 全站导航 全站导航
AI工具安装教程 新手教程 进阶教程 辅助资源 AI提示词 热点资讯 技术资讯 产业资讯 内容生成 模型技术 AI信息库

已有账号?

您的位置 : 资讯 > 其他资讯 > 大禹平台:流批一体离线Dump平台的设计与应用

大禹平台:流批一体离线Dump平台的设计与应用

来源:菜鸟下载 | 更新时间:2026-04-24

一、前言 在搜索、推荐、广告(业内合称“搜推广”)等核心业务场景中,数据处理流程

一、前言

在搜索、推荐、广告(业内合称“搜推广”)等核心业务场景中,数据处理流程的末端有一个关键环节:如何将来自MySQL、ODPS、HBase、Kafka等多源异构数据,高效、可靠地加工并交付给索引平台。这个环节,即“Dump”流程。大禹平台,正是为解决此问题而构建的离线Dump平台。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

一个典型的Dump流程通常面临几项核心挑战:

首先,数据源高度异构,涵盖关系型数据库、大数据存储与消息队列。其次,输出目标多样,需同时支持构建倒排索引与供Summary服务使用的kv/kkv索引。再者,业务对时效性要求严苛,需融合全量与增量处理,且增量更新需达到秒级,同时保证流批处理逻辑的强一致性。最后,平台需具备强大的数据处理能力,以支撑多表关联、自定义函数(UDF)、复杂过滤等业务需求。

离线 Dump 流程离线 Dump 流程

二、项目背景

现状

当前 dump 开发模式当前 dump 开发模式

上图展示了传统流批分离的Dump开发模式。流处理侧,通过DTS订阅数据库binlog,由Flink消费主表变更并实时反查关联表以拼装宽表;批处理侧,则将MySQL数据同步至ODPS,再通过Spark处理多源数据并输出。此架构存在显著痛点。

当前 dump 开发的问题当前 dump 开发的问题

具体痛点包括:开发效率低下,流批两套代码导致逻辑一致性维护成本高。数据质量难以保障,流批数据源与计算逻辑的差异易引发结果不一致。系统稳定性面临挑战,频繁对源数据库进行实时反查,给上游带来压力,源库抖动易导致链路波动。

目标

为此,我们以社区搜索场景为切入点,旨在构建一套全新的流批一体化Dump架构。新架构聚焦三大核心目标:

第一,提升工程效率。通过可视化DAG编排工具,实现低代码甚至拖拽式开发,简化复杂任务流程的搭建与迭代。

第二,保障数据质量。基于流批一体设计,实现计算逻辑的统一,从根源上杜绝数据不一致。

第三,强化稳定性。引入镜像表与状态大宽表等机制,减少对源数据库的实时反查依赖,提升系统整体鲁棒性。

三、大禹平台介绍

平台设计

系统架构

平台架构平台架构

上图勾勒了大禹平台的技术架构全貌。平台底层复用公司现有基础设施,如DJob Cron任务调度、Flink/Spark计算引擎及各类存储系统。上层则面向搜推广等多元业务场景提供支撑。

平台分为两大部分:面向用户的管理平台与负责执行的后台系统。管理平台作为“指挥中心”,支持开发者通过DAG图进行流程编排、逻辑配置、Debug调试、回归测试及监控大盘查看。后台系统作为“执行引擎”,将前端配置转化为具体计算任务,依托Flink/Spark生成执行实例,并通过调度引擎驱动流程运行。

新版Dump流程的核心优化在于将流程拆解为镜像、宽表、导出三个阶段,并统一流批处理模式。如下图所示:

新版 Dump 流程新版 Dump 流程

优化点主要体现在三方面:一是将MySQL数据统一同步至HBase构建镜像层,实现与上游解耦,避免多任务并发反查压力;二是将Binlog订阅流程平台化、自动化,开发者无需关注底层链路;三是基于HBase构建持久化的“状态大宽表”,任务处理时直接读取状态数据,彻底消除冗余反查逻辑。

调度引擎

在调度层面,大禹平台基于得物内部的DJob Cron自建了一套调度系统。其核心是通过部署多个Cron Job进行轮询,有序驱动任务各阶段执行。

Cron Job 构建调度系统Cron Job 构建调度系统

一个执行实例的全流程一个执行实例的全流程

执行框架

在镜像、宽表、导出三个核心阶段,平台均提供了对应的Spark与Flink处理框架。其中,宽表阶段是业务逻辑实现的核心。

宽表Spark框架逻辑直观:任务严格遵循DAG拓扑顺序,依次执行各算子节点,从数据源读取,经业务逻辑处理,最终通过BulkLoad方式高效写入HBase。

宽表阶段 Spark 框架逻辑宽表阶段 Spark 框架逻辑

宽表Flink框架则专注于增量数据处理。它消费非维表节点的增量消息,同样按依赖关系拓扑排序后依次执行计算,将产出字段更新至状态大宽表,并实时同步给下游导出链路。

宽表阶段 Flink 框架逻辑宽表阶段 Flink 框架逻辑

流批一体保障数据质量

如何确保流批处理结果一致?大禹平台的答案是架构统一。平台采用统一的DAG编排引擎,使流批任务共享相同计算拓扑,从源头杜绝因开发环境差异导致的数据偏差。

UDF(用户自定义函数)的处理方式尤为关键。平台内置了标准化的UDF开发模板与运行时框架。开发者仅需编写一次业务逻辑代码,完成注册后,该代码即可同时应用于流式与批量处理流程,实现“一次开发,两端复用”。这极大提升了开发效率,并从根本上保障了数据处理逻辑的一致性。

平台通过定义 AlgoDumpUDF 基类封装消息类型,用户可在自定义UDF中便捷实现数据过滤与驱动删除等逻辑。

public abstract class AlgoDumpUDF implements UDFFunction, Serializable {
    //消息类型 add/delete/drop 三种
    public AlgoDumpMessageType algoDumpMessageType = AlgoDumpMessageType.MESSAGE_TYPE_ADD;
    @Override
    public AlgoDumpMessageType getStatus() {
        return algoDumpMessageType;
    }
    //调用该方法实现增量驱动删除
    @Override
    public void delete(Object key, String reason) {
        this.algoDumpMessageType = AlgoDumpMessageType.MESSAGE_TYPE_DELETE;
    }
    //调用该方法实现增量过滤
    @Override
    public void drop(Object key, String reason) {
        this.algoDumpMessageType = AlgoDumpMessageType.MESSAGE_TYPE_DROP;
    }
    /**
     * 用户重写该方法完成业务逻辑开发
     */
    public void process() throws Exception {
    }
}

具体示例如下:用户通过重写 process() 方法实现业务逻辑,期间可调用 drop() 方法过滤无效数据,或调用 delete() 方法通知下游索引删除记录。

public class MyUdf extends AlgoDumpUDF implements Serializable {
    public Tuple2 process(String id, String taskname) throws Exception {
        //过滤消息
        if(StringUtils.isBlank(id)) {
            this.drop(id, "drop by id null");
        }
        //驱动增量删除消息
        if(id.equals("0")) {
            this.delete(id, "delete by id = 0");
        }
        //用户写具体业务逻辑
        String a1 = "";
        if (taskname.equals("dddddd")) {
            a1 = "ddd";
        }
        String b1 = "test";
        return new Tuple2<>(a1, b1);
    }
}

小全量模式加速数据Dump

为应对不同数据更新需求,大禹平台支持“大全量”与“小全量”两种任务运行模式。

“大全量”模式即全量重建:对数据源执行全量同步,重建整个状态大宽表,并刷新所有相关链路。适用于需彻底更新数据基准的场景。

“小全量”模式则是针对性优化。当仅部分字段频繁更新时,它基于现有状态大宽表,仅加载批处理来源字段的最新数据快照,处理后通过BulkLoad高效写入HBase。借助HBase的多版本特性,可实现新旧数据平滑切换,在数据更新过程中保障查询服务零中断,兼顾数据时效性与业务连续性。

小全量模式小全量模式

任务复用支持数据分层管理

在大禹平台中,任务产出数据可作为公共资产被下游任务直接复用。

这是通过标准化的 MirrorOut(镜像导出)与 MirrorIn(镜像接入)算子实现的。上游任务将加工好的公共数据配置为 MirrorOut,下游任务通过 MirrorIn 算子即可一键引用,无需重复开发或数据搬运,极大提升了开发效率与数据复用价值。

任务复用任务复用

管理平台

任务开发与运维

管理平台提供一站式任务开发与运维体验,覆盖创建、编排、调度至资源管理的全生命周期。

其核心功能是可视化流程编排。开发Dump任务时,用户通过拖拽算子节点、配置参数,即可直观构建完整的数据处理逻辑图,显著降低开发门槛并提升配置准确性。

图片图片

图画编排式开发任务图画编排式开发任务

任务执行时,平台以可视化流程图实时展示各节点状态。每个节点均支持查看详细输入参数与输出结果,若出现异常,可对节点进行手动重试或终止操作,便于快速定位与干预。

执行实例状态执行实例状态

辅助工具

数据回归验证

数据质量是生命线。平台提供强大的流批数据回归验证能力,支持模板化配置与一键复用,为数据准确性与业务稳定性保驾护航。

“批量回归”主要用于版本迭代后验证,可快速比对多版本批处理数据,一键校验全量结果一致性。“流式回归”则针对实时链路,基于索引表增量变更进行抽样,对指定时间窗口内的流式数据进行跨索引一致性校验,精准定位流处理过程中的异常。

创建批数据回归任务创建批数据回归任务

创建流数据回归任务创建流数据回归任务

数据Debug

为确保数据处理过程的可靠与灵活,大禹平台构建了覆盖全链路的数据运维干预能力。

这包括:对源端组图配置进行主动干预与调整;对Dump构建全流程进行调控以快速定位问题;甚至提供对线上索引数据的实时干预能力,支持对增量数据进行修正,确保线上内容准确性。

图片图片

四、业务场景实践

社区搜索倒排表链路

在社区搜索场景中,大禹平台负责构建倒排表链路。如下图所示,该任务以动态内容为核心,融合实时内容流、天级统计特征、商品特征等多源数据,通过流批一体处理,最终生成高时效的倒排索引宽表。

社区搜索倒排宽表链路社区搜索倒排宽表链路

图片

穿搭精选推荐链路

另一典型场景是穿搭精选推荐。如下图所示,该任务以“动态-商品”关系表为主表,融合动态维度下多种来源的流批特征数据(如内容基础特征、审核信息、离线统计特征等),通过DAG编排,最终构建出服务于推荐系统的动态-商品大宽表。

穿搭精选推荐链路穿搭精选推荐链路

图片图片

五、未来规划

平台进化永无止境。未来规划聚焦两个方向:持续增强平台自身能力,以及深化协同共建以释放更大价值。

在平台能力建设上,首先将持续完善算子体系,基于更多业务场景沉淀与优化关键算子,如维表动态更新、服务化算子、UDTF部署优化等,同时优化调度流程。其次,进行性能深度优化,引入任务剪枝、智能倾斜治理等策略,提升资源利用率与执行效率。最后,升级可观测性,构建从全局大盘到单一任务的立体监控体系,完善资源消耗追踪、Debug与全链路追踪能力。

在协同共建方面,分为“纵向提效”与“横向赋能”。纵向,将与索引平台深度协同,聚焦索引构建效率。以社区搜索大宽表为例,当前同步至索引需近3小时,未来计划通过消除冗余中间状态、精简流程等手段,实现端到端的显著提速。横向,平台能力已在社区多个业务场景得到验证,后续将联动更多业务方共建。同时,平台中如数据回归验证、索引监控大盘等高复用能力模块,将以“即插即用”方式开放给各业务线,加速技术资产沉淀与跨团队创新。

图片图片


菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。

展开
健康DNA跑3D正版
健康DNA跑3D正版
类型:休闲益智 运营状态:公测 语言:简体中文
节奏
前往下载

相关文章

更多>>

热门游戏

更多>>