一种基于双消息队列的数据治理方法与流程

文档序号:16532546发布日期:2019-01-05 10:52阅读:480来源:国知局
一种基于双消息队列的数据治理方法与流程

本发明属于分布式计算和数据处理技术领域,具体涉及一种基于双消息队列的数据治理方法。



背景技术:

数据治理是从一种存储介质上读取数据,经过一系列的数据治理环节后,再存储到另外一个存储介质的过程。对于数据量较大的数据治理,传统的方法有两种:一种是通过单线程方式顺序读取,再顺序写入到目标存储介质;另外一种是通过一些规则并行读取数据再并行写入目标存储的过程。但是在治理过程中,都会存在一些问题:

1.数据治理有延迟:上述两种方法或是批次读写,或是定时读写,都不能达到实时读写,对实时性要求很高的业务场景不适用;

2.治理环节无法跟踪:治理过程中产生的程序中断或问题无法跟踪,产生问题只能重新治理;

3.数据治理性能低:通过传统方式无法对大批量的数据进行实时治理,容易产生瓶颈,扩展性不高;

4.数据安全性不高:对于数据治理过程中的由于其他因素不能不能实时治理的情况,可能会造成数据丢失的风险。

“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。

消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。

kafka是由apache软件基金会开发的一个开源流处理平台,由scala和java编写。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。kafka的目的是通过hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

本发明将实现一种基于双消息队列的数据治理方法,通过双消息队列的数据传递,实现数据的流式处理,从可靠性、可用性、伸缩性、数据安全及性能各方面对数据处理环节进行整体优化。



技术实现要素:

为了解决现有的数据治理方法存在的延迟、无法跟踪、安全性不高等问题,本发明提供一种基于双消息队列的数据治理方法,所述方法在数据治理前和数据治理后分别插入消息队列,实现对治理前的数据和治理后数据的缓冲,实现数据的流式处理,从可靠性、可用性、伸缩性、数据安全及性能各方面对数据处理环节进行整体优化。

为实现上述目标,本发明采用以下技术方案:

一种基于双消息队列的数据治理方法,所述方法从数据源接入数据后,将数据放入消息队列,接着对消息队列中的数据进行清洗等预处理操作,然后将预处理后的数据一方面存入数据库作为备份,另一方面将处理后的数据再次存入消息队列供数据治理工具消费。

一种基于双消息队列的数据治理方法,所述方法包括以下步骤:

1)通过数据接入工具从用户数据源输入数据;

2)将接入的数据资源存入消息队列;

3)数据治理程序从消息队列中提取数据进行清洗等预处理操作;

4)数据治理程序将预处理后的数据再次存入消息队列;

5)各种数据治理程序分别从消息队列中提取数据进行治理,然后将治理结果再次存入消息队列;

6)最后一个治理程序从消息队列中提取数据,完成治理后将治理结果存入结果数据库,供后续的流程使用。

优选的,所述消息队列为kafka集群。

优选的,所述步骤1)接入数据后,对数据进行数据格式标准化,

数据格式标准化包括:字段校验、补齐、数据归属。

优选的,所述步骤3)中,数据清洗,区分新闻数据和社交数据,对新闻数据的清洗包括:数据格式校验、补齐,url去重,乱码识别过滤,语言识别,域名分析和填充,文本内容中js等脚本处理,时间合法性校验,正文内容缺失、url缺失、发布时间缺失、作者缺失处理。根据缺失的字段是必填属性还是选填属性来选择不同的处理方法,对于必填属性的字段缺失直接丢弃该数据至错误文件,对于选填属性的字段缺失补充为空。上述字段中正文内容、url、发布时间为必填字段,作者为选填字段。

对社交数据的清洗包括:数据格式校验、补齐,url去重,乱码识别过滤,语言识别,域名分析和填充,文本内容中js等脚本处理,时间合法性校验,正文内容缺失、url缺失、发布时间缺失、作者缺失处理等。根据媒体类型不一样,数据清洗的流程也不一样,比如社交媒体的作者字段是必填字段,新闻媒体的作者字段则不是必填的,社交媒体有粉丝数、关注数、评论数等字段,而新闻媒体就没有;新闻媒体有媒体级别字段,而社交媒体又没有。

本发明的优点和有益效果为:

1)可靠性:从采集层接入数据后,通过消息队列实时处理和统计,消息队列缓存7天的数据,使得对数据处理过程中出现的任何问题有源可查,并可对缓存数据二次治理,保证数据可靠;

2)可用性:随着数据中心日更数据量的迅速增大,系统底层的压力会越来越大,采用消息队列的分布式架构,使系统的可用性增加;

3.伸缩性:对于数据中心的治理流程需要完成10个以上的算法,算法经过多次迭代还会作调整,要求治理流程的伸缩性强,可以插拔式地调整算法的流程。使用消息队列的架构更易于重构代码,加强程序的伸缩性;

4.数据安全:消息队列的架构更易于追踪数据情况,使得数据在处理过程中更安全;消息队列是分布式集群,对数据缓存的安全更有保障;

5.性能:分布式的消息队列具有良好的可扩展性,能够为数据中心提供所需的数据流转性能。

附图说明

附图1是本发明所述基于双消息队列的数据治理方法的处理流程图。

具体实施方式

下面结合实施例对本发明作进一步说明。

实施例

参见附图1。

一种基于双消息队列的数据治理方法,所述方法包括以下步骤:

1)通过数据接入工具从用户数据源输入数据;

2)将接入的数据资源存入消息队列kafka集群;

3)数据治理程序从消息队列中提取数据进行清洗等预处理操作;

4)数据治理程序将预处理后的数据入库至hbase原始库,同时再次将数据提交至kafka消息队列;

5)各种数据治理程序分别从消息队列中提取数据进行治理,然后将治理结果再次存入消息队列kafka集群;

6)最后一个治理程序从消息队列中提取数据,完成治理后将治理结果存入结果数据库hbase、elasticsearch、rabbitmq,供后续的流程使用。

所述步骤1)中的用户数据源包括新闻网站的数据和社交媒体的数据等。

最后应说明的是:显然,上述实施例仅仅是为清楚地说明本发明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1