一种基于canal和kafka实现实时数仓的系统技术方案

技术编号:20329194 阅读:43 留言:0更新日期:2019-02-13 05:47
一种基于canal和kafka实现实时数仓的系统,包括Canal‑Server、Canal‑Client、Consumer‑plugin‑man和admin‑ods,Canal‑Server和Canal‑Client相连接,Canal‑Client通过kafka与Consumer‑plugin‑man相连接,admin‑ods也与Consumer‑plugin‑man相连接,所述Consumer‑plugin‑man与Hbase相连接;所述Hbase连接有ElasticSearch,ElasticSearch连接有Databus‑query,Databus‑query连接有atabus‑api。本发明专利技术的有益效果是将数据源、数据处理、数据写入解耦并统一管理,灵活配置,大大简化研发成本,易维护,支持不同生产环境下部署同一或不同数据仓库中的数据接入,实现一次研发,多处并灵活使用。

【技术实现步骤摘要】
一种基于canal和kafka实现实时数仓的系统
本专利技术涉及互联网
,具体涉及一种基于canal和kafka实现实时数仓的系统。
技术介绍
随着互联网技术的飞速发展,大数据时代已经到来,实时数据采集、同步、计算并及时响应和反馈结果成为根据业务的实时变化及时调整策略并快速响应执行解决方案中至关重要的环节。本专利技术主要解决其中的数据同步环节。其主要内容是:在不影响业务方正常业务的情况下从业务数据库同步实时数据和历史数据到大数据仓库以供后续的变量计算等操作提供有效实时的数据。Canal,是阿里巴巴集团使用纯java开发的一套基于数据库增量日志解析、提供增量数据订阅&消费、目前主要支持了mysql数据库的同步系统。Kafka,是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。目前宜信也有过类似系统,借鉴了Linkedin的思想通过Canal和Kafka来实现数据同步操作。但是,其维度单一,添加、减少所对接的业务线不方便,无法根据对接业务线控制并发量,不同集群之间的kafka、hbase、elasticsearch无法写入。
技术实现思路
为实现上述目的,本专利技术提供如下技术方案:一种基于canal和kafka实现实时数仓的系统,包括Canal-Server、Canal-Client、Consumer-plugin-man和admin-ods,Canal-Server和Canal-Client相连接,Canal-Client通过kafka与Consumer-plugin-man相连接,admin-ods也与Consumer-plugin-man相连接,所述Consumer-plugin-man与Hbase相连接;所述Hbase连接有ElasticSearch,ElasticSearch连接有Databus-query,Databus-query连接有atabus-api。作为本发的再进一步技术方案是:所述admin-ods通过meta-data与Hbase相连接。作为本专利技术的再进一步技术方案是:所述Consumer-plugin-man通过somerules与ElasticSearch。作为本专利技术的再进一步技术方案是:所述Canal-Server通过binlogchanges与Mysql相连接。本专利技术的有益效果是将数据源、数据处理、数据写入解耦并统一管理,灵活配置,大大简化研发成本,易维护,支持不同生产环境下部署同一或不同数据仓库中的数据接入,实现一次研发,多处并灵活使用。附图说明图1为本专利技术的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术实施例中,一种基于canal和kafka实现实时数仓的系统,包括Canal-Server、Canal-Client、Consumer-plugin-man和admin-ods,Canal-Server和Canal-Client相连接,Canal-Client通过kafka与Consumer-plugin-man相连接,admin-ods也与Consumer-plugin-man相连接,所述Consumer-plugin-man与Hbase相连接;所述Hbase连接有ElasticSearch,ElasticSearch连接有Databus-query,Databus-query连接有atabus-api。所述admin-ods通过meta-data与Hbase相连接。所述Consumer-plugin-man通过somerules与ElasticSearch。所述Canal-Server通过binlogchanges与Mysql相连接。1、Canal-Server:主要负责从业务方mysql同步Binlog数据并解析发送至Canal-Client;其主要功能有:1)canal模拟mysqlslave的交互协议,伪装自己为mysqlslave,向mysqlmaster发送dump协议;2)mysqlmaster收到dump请求,开始推送binarylog给slave(也就是canal);3)canalserver解析binarylog对象(原始为byte流);2、Canal-Client:主要负责从Canal-Server处获取解析后的mysql数据并发送至Kafka;通过NIO链接从CanalServer处获取消息并判断消息类型:1)若消息为DML型,则发送该消息至Kafka消息系统;2)若消息为DDL型,则解析DDL-SQL语句后将相关表结构修改信息发送至Ods-admin系统进一步处理元数据信息;3、Consumer-plugin-man:主要负责从Kafka系统中消费实时数据并写入Hbase和Elasticsearch;1)启动从ods-admin系统读取相关配置;2)循环消费Kafka数据并按规则写入Hbase和ES中;4、Ods-admin:主要负责各模块的配置信息统一管理,和元数据的存储、数据一致性校验和修复等补救措施等。整个系统运作流程如下:1、Canal-server启动后将各个业务线注册到zookeeper中,并监听mysqlbinlog是否改变,后进行解析binlog数据并分发到各个业务线对应的NIO流通道中(该模块接收到二进制的数据,转换为Utf-8的数据);2、Canal-client模块从zookeeper中获取各业务线对应的Canal-Server实例地址,链接该地址并获取解析后的binlog数据写入kafka消息队列或者发送至ods-admin系统做进一步处理(该模块接收到utf-8的数据,转换为所需JSON对象格式数据发送);3、Consumer-plugin-man模块消费kafka数据,并结合ods-admin系统中mysql/redis中的meta-data(元数据)信息,将binlog改变的数据内容同步至Hbase中(若该业务线需要写入es中,也会存入ElasticSearch中),随后在通过ElasticSearch从Hbase中检索到特需数据通过API响应给下游使用方;4、Ods-admin模块:作为整个系统的后台配置管理模块,统一管理着Canal-client和Consumer-plugin-man和Querypf系统中各业务线的配置信息和元数据信息,并兼任一部分系统维护工具(例如:数据随机比对、全量数据比对、历史数据导入、异常数据修复、指定kafka导入等)。准备步骤:1本文档来自技高网...

【技术保护点】
1.一种基于canal和kafka实现实时数仓的系统,其特征在于,包括Canal‑Server、Canal‑Client、Consumer‑plugin‑man和admin‑ods,Canal‑Server和Canal‑Client相连接,Canal‑Client通过kafka与Consumer‑plugin‑man相连接,admin‑ods也与Consumer‑plugin‑man相连接,所述Consumer‑plugin‑man与Hbase相连接;所述Hbase连接有ElasticSearch,ElasticSearch连接有Databus‑query,Databus‑query连接有atabus‑api。

【技术特征摘要】
1.一种基于canal和kafka实现实时数仓的系统,其特征在于,包括Canal-Server、Canal-Client、Consumer-plugin-man和admin-ods,Canal-Server和Canal-Client相连接,Canal-Client通过kafka与Consumer-plugin-man相连接,admin-ods也与Consumer-plugin-man相连接,所述Consumer-plugin-man与Hbase相连接;所述Hbase连接有ElasticSearch,ElasticSearch连接有Databus-qu...

【专利技术属性】
技术研发人员:卫翀
申请(专利权)人:北京马上慧科技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1