西城网站建设浩森宇特,自己做网站自己做推广教程视频教程,凡客诚品什么档次,wordpress头错位1 背景
企业中大量业务数据保存在各个业务系统数据库中#xff0c;过去通常的同步数据的方法有很多种#xff0c;比如#xff1a; 各个数据使用方在业务低峰期各种抽取所需数据#xff08;缺点是存在重复抽取而且数据不一致#xff09; 由统一的数仓平台通过sqoop到各个…1 背景
企业中大量业务数据保存在各个业务系统数据库中过去通常的同步数据的方法有很多种比如 各个数据使用方在业务低峰期各种抽取所需数据缺点是存在重复抽取而且数据不一致 由统一的数仓平台通过sqoop到各个系统中抽取数据缺点是sqoop抽取方法时效性差一般都是T1的时效性 基于trigger或时间戳的方式获得增量的变更缺点是对业务方侵入性大带来性能损失等
这些方案都不能算完美我们在了解和考虑了不同实现方式后认为要想同时解决数据一致性和实时性比较合理的方法应该是基于日志的解决方案同时能够提供消息订阅的方式给下游系统使用。
DBus数据总线项目就是应这个需求而生的 DBus专注于数据的收集及实时数据流计算通过简单灵活的配置无侵入的方式对源端数据进行采集采用高可用的流式计算框架对公司各个IT系统在业务流程中产生的数据进行汇聚经过处理后转换成统一JSON的数据格式UMS提供给不同下游客户订阅和消费充当报表数据源、大数据分析数据源等。 目前DBus在公司内部广泛使用支持oraclemysqllog, RocketMQ等数据源这次开源版本支持mysql数据源。
DBus的主要潜在客户包括 数仓平台和数据分析平台 实时营销决策 实时报表展示 异构数据实时同步 其他实时性要求高的系统
2 项目介绍 项目名称DBus 数据总线 语言java/js 开源地址github.com/BriData
专注于数据的收集及实时数据流计算通过简单灵活的配置以无侵入的方式对源端数据进行采集采用高可用的流式计算框架对公司各个IT系统在业务流程中产生的数据进行汇聚经过转换处理后成为统一JSON的数据格式UMS提供给不同数据使用方订阅和消费充当数仓平台、大数据分析平台、实时报表和实时营销等业务的数据源。支持多租户管理提供租户级资源、数据隔离机制。
3 快速体验
全套DBus包含诸多组件(Canalzkkafkastormmysqlinfluxdbgrafana)为了简单化我们准备了All in One 包包含了预先安装数据和一键启动脚本 用于快速体验。
4 系统架构和工作原理 DBUS主要分为两个部分貼源数据采集和多租户数据分发。两个部分之间以Kafka为媒介进行衔接。无多租户资源、数据隔离需求的用户可以直接消费源端数据采集这一级输出到kafka的数据无需再配置多租户数据分发。 4.1 DBUS源端数据采集
DBUS源端数据采集大体来说分为两部分 读取RDBMS增量日志的方式来 实时获取增量数据日志并支持全量拉取 基于logtashflumefilebeat等抓取工具来实时获得数据以可视化的方式对数据进行结构化输出
以下为具体实现原理
主要模块如下 日志抓取模块从RDBMS的备库中读取增量日志并实时同步到kafka中 增量转换模块将增量数据实时转换为UMS数据处理schema变更脱敏等 全量抽取程序将全量数据从RDBMS备库拉取并转换为UMS数据 日志算子处理模块将来自不同抓取端的日志数据按照算子规则进行结构化处理 心跳监控模块对于RDMS类源定时向源端发送心跳数据并在末端进行监控发送预警通知对于日志类直接在末端监控预警。 web管理模块管理所有相关模块。
4.2 多租户数据分发
对于不同租户对不同源端数据有不同访问权限、脱敏需求的情形需要引入Router分发模块将源端貼源数据根据配置好的权限、用户有权获取的源端表、不同脱敏规则等分发到分配给租户的Topic。这一级的引入在DBUS管理系统中涉及到用户管理、Sink管理、资源分配、脱敏配置等。不同项目消费分配给他的topic。 5 主要功能 无侵入方式接入多种数据源 业务系统无需任何修改以无侵入性读取数据库系统的日志获得增量数据实时变化。目前RDBMS支持mysqloracle数据源Oracle数据源请参考Oracle相关协议 日志方面支持基于logstashflume和filebeat的多种数据日志抽取方案。 海量数据实时传输 使用基于Storm的流式计算框架秒级延时整体无单点保证高可用性。 多租户支持 提供用户管理、资源分配、Topology管理、租户表管理等丰富的功能可根据需求为不同租户分配不同的源端表数据访问权限应用不同的脱敏规则从而实现多租户资源隔离、差异化数据安全。 感知源端schema变更 当源端发生schema变更时能自动感知schema变化调整UMS版本号并通过Kafka消息和邮件通知下游 数据实时脱敏 可根据需求对指定列数据进行实时脱敏。脱敏策略包括直接替换、MD5、murmur等脱敏算法脱敏加盐正则表达式替换等。支持用户开发jar包实现DBUS未覆盖的个性化脱敏策略。 初始化加载 支持高效的初始化加载和重新加载支持任意指定输出topic灵活应对客户需求。 统一标准化消息传输协议 使用统一的UMS(JSON格式)消息schema格式输出便于消费提供数据线级ums_id保证数据顺序性,输出insert,Update(before/after),Delete event数据。 可靠多路消息订阅分发 使用Kafka存储和传递消息保证可靠性和便捷的多用户订阅 支持分区表/系列表数据汇集 支持分区表的数据汇集到一个“逻辑表” 。也可将用户自定义的系列表数据汇集到一个“逻辑表“。例 实时监控预警 可视化监控系统能随时查看各数据线实时流量和延时状况当数据线发生异常时根据配置策略自动发邮件或短信通知相关负责人