如何设计实时数据平台(技术篇)

本文深入探讨实时数据平台(RTDP)的技术选型,包括数据总线平台DBus、分布式消息系统Kafka、流式处理平台Wormhole、计算服务平台Moonbox和可视应用平台Davinci。DBus负责数据采集,Kafka提供消息中间件,Wormhole处理流式数据,Moonbox支持跨异构数据系统的计算,Davinci用于数据可视化。此外,文章还讨论了数据管理、数据安全和开发运维等切面话题,以及同步、流算、轮转和智能四种应用场景。
摘要由CSDN通过智能技术生成

敏捷之歌

我抽数故我存在 | DBus

人人玩转流处理 | Wormhole

就当吾是数据库 | Moonbox

颜值最后十公里 | Davinci

导读:实时数据平台(RTDP,Real-time Data Platform)是一个重要且常见的大数据基础设施平台。在上篇(设计篇)中,我们从现代数仓架构角度和典型数据处理角度介绍了RTDP,并探讨了RTDP的整体设计架构。本文作为下篇(技术篇),则是从技术角度入手,介绍RTDP的技术选型和相关组件,探讨适用不同应用场景的相关模式。RTDP的敏捷之路就此展开~

拓展阅读:以企业级实时数据平台为例,了解何为敏捷大数据

如何设计实时数据平台(设计篇)

一、技术选型介绍

在设计篇中,我们给出了RTDP的一个整体架构设计(图1)。在技术篇里,我们则会推荐整体技术组件选型;对每个技术组件做出简单介绍,尤其对我们抽象并实现的四个技术平台(统一数据采集平台、统一流式处理平台、统一计算服务平台、统一数据可视化平台)着重介绍设计思路;对Pipeline端到端切面话题进行探讨,包括功能整合、数据管理、数据安全等。

图1 RTDP架构

1.1 整体技术选型

图2 整体技术选型

首先,我们简要解读一下图2:

  • 数据源、客户端,列举了大多数数据应用项目的常用数据源类型。
  • 数据总线平台DBus,作为统一数据采集平台,负责对接各种数据源。DBus将数据以增量或全量方式抽取出来,并进行一些常规数据处理,最后将处理后的消息发布在Kafka上。
  • 分布式消息系统Kafka,以分布式、高可用、高吞吐、可发布-订阅等能力,连接消息的生产者和消费者。
  • 流式处理平台Wormhole,作为统一流式处理平台,负责流上处理和对接各种数据目标存储。Wormhole从Kafka消费消息,支持流上配置SQL方式实现流上数据处理逻辑,并支持配置化方式将数据以最终一致性(幂等)效果落入不同数据目标存储(Sink)中。
  • 在数据计算存储层,RTDP架构选择开放技术组件选型,用户可以根据实际数据特性、计算模式、访问模式、数据量等信息选择合适的存储,解决具体数据项目问题。RTDP还支持同时选择多个不同数据存储,从而更灵活的支持不同项目需求。
  • 计算服务平台Moonbox,作为统一计算服务平台,对异构数据存储端负责整合、计算下推优化、异构数据存储混算等(数据虚拟化技术),对数据展示和交互端负责收口统一元数据查询、统一数据计算和下发、统一数据查询语言(SQL)、统一数据服务接口等。
  • 可视应用平台Davinci,作为统一数据可视化平台,以配置化方式支持各种数据可视化和交互需求,并可以整合其他数据应用以提供数据可视化部分需求解决方案,另外还支持不同数据从业人员在平台上协作完成各项日常数据应用。其他数据终端消费系统如数据开发平台Zeppelin、数据算法平台Jupyter等在本文不做介绍。
  • 切面话题如数据管理、数据安全、开发运维、驱动引擎,可以通过对接DBus、Wormhole、Moonbox、Davinci的服务接口进行整合和二次开发,以支持端到端管控和治理需求。

下面我们会进一步细化上图涉及到的技术组件和切面话题,介绍技术组件的功能特性,着重讲解我们自研技术组件的设计思想,并对切面话题展开讨论。

1.2 技术组件介绍

1.2.1 数据总线平台DBus

图3 RTDP架构之DBus

1.2.1.1 DBus设计思想

1)从外部角度看待设计思想

  • 负责对接不同的数据源,实时抽取出增量数据,对于数据库会采用操作日志抽取方式,对于日志类型支持与多种Agent对接。
  • 将所有消息以统一的UMS消息格式发布在Kafka上,UMS是一种标准化的自带元数据信息的JSON格式,通过统一UMS实现逻辑消息与物理Kafka Topic解耦,使得同一Topic可以流转多个UMS消息表。
  • 支持数据库的全量数据拉取,并且和增量数据统一融合成UMS消息,对下游消费透明无感知。

2)从内部角度看待设计思想

  • 基于Storm计算引擎进行数据格式化,确保消息端到端延迟最低。
  • 对不同数据源数据进行标准化格式化,生成UMS信息,其中包括:

✔ 生成每条消息的唯一单调递增id,对应系统字段ums_id_

✔ 确认每条消息的事件时间戳(event timestamp),对应系统字段ums_ts_

✔ 确认每条消息的操作模式(增删改,或insert only),对应系统字段ums_op_

  • 对数据库表结构变更实时感知并采用版本号进行管理,确保下游消费时明确上游元数据变化。
  • 在投放Kafka时确保消息强有序(非绝对有序)和at least once语义。
  • 通过心跳表机制确保消息端到端探活感知。
1.2.1.2 DBus功能特性
  • 支持配置化全量数据拉取
  • 支持配置化增量数据拉取
  • 支持配置化在线格式化日志
  • 支持可视化监控预警
  • 支持配置化多租户安全管控
  • 支持分表数据汇集成单逻辑表
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值