CN111984436A - 一种数据采集系统 - Google Patents
一种数据采集系统 Download PDFInfo
- Publication number
- CN111984436A CN111984436A CN202010864801.8A CN202010864801A CN111984436A CN 111984436 A CN111984436 A CN 111984436A CN 202010864801 A CN202010864801 A CN 202010864801A CN 111984436 A CN111984436 A CN 111984436A
- Authority
- CN
- China
- Prior art keywords
- data
- kafka
- type
- file
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
一种数据采集系统,包括:采集数据服务模块、KAFKA消息队列、SPARK分布式处理计算模块、以及Elasticsearch全文搜索引擎中间件,采集数据服务模块通过python语言开发,利用对不同数据源预先封装的驱动类以参数形式调用数据并进行处理后发送至KAFKA消息队列的指定分区;SPARK分布式处理计算模块采用spark streaming对KAFKA中的数据进行轮询并将计算后的数据写入Elasticsearch全文搜索引擎中间件;Elasticsearch全文搜索引擎中间件存储数据并为其创建索引。采用本申请中的方案,相比于主流的HADOOP平台体系,更轻量、更灵活。
Description
技术领域
本申请涉及广播电视技术,具体地,涉及一种数据采集系统。
背景技术
随着新媒体数据来源越来越多、提供的形式越来越多,电视台的新媒体数据的处理量极大,每天有数百万条数据且要求很高的实时性,接近于实时监测账号的状态。数据处理完成后还要求能通过关键字匹配出相关性高的文章并加以统计。这就要求数据处理系统能够接受数据源多、数据量大且实时性要求高的挑战。
现有的大数据技术架构通常使用flume+kafka+mapreduce+hive的大数据处理架构,该技术是在分布式基础架构上搭建复杂集群,配置复杂的flume,并解决headers域乱码问题后,将数据传入kafka中,mapreduce计算程序去消费kafka消息并计算后存入hive,最后通过查询展示出数据。
现有技术中存在的问题:
面对多种格式的数据源,flume配置复杂且不便于数据源管理,MAPREDUCE计算会因为数据量过大导致在HDFS上读取数据影响数据的实效性,且Hive查询当需要相关性查询Hive无法支撑。
发明内容
本申请实施例中提供了一种数据采集系统,以解决上述技术问题。
本申请实施例提供了一种数据采集系统,包括:采集数据服务模块、KAFKA消息队列、SPARK分布式处理计算模块、以及Elasticsearch全文搜索引擎中间件,其中,
采集数据服务模块通过python语言开发,利用对不同数据源预先封装的驱动类以参数形式调用数据并进行处理后发送至KAFKA消息队列的指定分区;
KAFKA消息队列包括多个分区,用于存放不同种类的数据;
SPARK分布式处理计算模块采用spark streaming对KAFKA中的数据进行轮询计算,并将计算后的数据写入Elasticsearch全文搜索引擎中间件;
Elasticsearch全文搜索引擎中间件存储所述SPARK分布式处理计算模块计算后的数据并为其创建索引。
本申请实施例中提供的数据采集系统,相比于主流的HADOOP平台体系,更轻量、更灵活,轻量在于不需要过多的安装HADOOP中间件;本申请使用python程序取代了flume,降低了多种多样数据源的配置复杂度,使得学习成本极大降低,且整个系统均使用最简单的组件,对服务器性能要求相对较低,使用成本低。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例一中数据采集系统的结构示意图;
图2示出了本申请实施例二中采集数据服务的原理示意图;
图3示出了本申请实施例二中解析样例数据的示意图;
图4示出了本申请实施例二中解析后的数据示意图。
具体实施方式
在实现本申请的过程中,发明人发现:
现有主流的大数据架构多使用HADOOP平台体系,该平台体系稳定,但是过于笨重,学习成本高,使用成本高,需要服务器的物理配置也比较高,目前的市场的技术架构还无法支撑在有限的物理资源的情况下,快速搭建高失效大数据。
针对现有技术存在的技术问题,本申请实施例基于最小可用原则,组建出一套更加灵活的系统架构。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
图1示出了本申请实施例一中数据采集系统的结构示意图。
如图所示,所述数据采集系统包括:采集数据服务模块、KAFKA消息队列、SPARK分布式处理计算模块、以及Elasticsearch全文搜索引擎中间件,其中,
采集数据服务模块通过python语言开发,利用对不同数据源预先封装的驱动类以参数形式调用数据并进行处理后发送至KAFKA消息队列的指定分区;
KAFKA消息队列包括多个分区,用于存放不同种类的数据;
SPARK分布式处理计算模块采用spark streaming对KAFKA中的数据进行轮询计算,并将计算后的数据写入Elasticsearch全文搜索引擎中间件;
Elasticsearch全文搜索引擎中间件存储所述SPARK分布式处理计算模块计算后的数据并为其创建索引。
本申请实施例中提供的数据采集系统,相比于主流的HADOOP平台体系,更轻量、更灵活,轻量在于不需要过多的安装HADOOP中间件;本申请使用python程序取代了flume,降低了多种多样数据源的配置复杂度,使得学习成本极大降低,且整个系统均使用最简单的组件,对服务器性能要求相对较低,使用成本低。
在一种实施方式中,所述采集数据服务模块,包括:
数据源连接模块,用于利用对不同数据源预先封装的驱动类以参数形式调用相应的数据源的数据;
数据处理模块,用于将从各个数据源获取的数据进行解析,并将解析后的数据打上相应的标签;
数据推送模块,用于拉取数据并发送至KAFKA消息队列的指定分区。
在一种实施方式中,所述数据推送模块,包括:
主题单元,用于根据拉取的数据记录的标签确定KAFKA消息队列的主题;
哈希单元,用于对拉取的数据记录的key计算hash值;
取模单元,用于利用所述hash值对KAFKA所有分区进行取模运算,确定所确定的KAFKA消息队列的主题下的分区位置。
在一种实施方式中,所述数据处理模块,用于:
对于EXCEL文件数据类型,获取文件列表后将每个sheet作为单个文件,分别将每个sheet的第一行作为字段名称,将数据解析成python字典型数据后进行打标签处理,再转化为json数据;
对于CSV文件数据类型,将传递的-format参数作为分隔符,将第一行header作为字段名称,将数据解析成python字典型数据后进行打标签处理,再转化为json数据;
对于TXT文件数据类型,将该类型数据解析转化为数组型数据,在判断数据长度为传入参数时将其转化为json数据。
在一种实施方式中,所述数据源连接模块,包括:
隧道验证单元,用于通过安全外壳协议SSH安全隧道验证数据源;
下载单元,用于在确定有*.ok文件存在时,利用对不同数据源预先封装的驱动类以参数形式调用相应的数据源的数据,下载文件到本地文件缓存路径。
在一种实施方式中,所述KAFKA消息队列根据数据源的不同预先创建有多个主题,每个主题有多个分区,每个分区存放同一类数据,不同分区存放的数据类型不同。
在一种实施方式中,所述SPARK分布式处理计算模块,包括:
接收单元,用于采用spark streaming对KAFKA中的数据轮询,接收从KAFKA流入的数据;
分片单元,用于将流入的数据按预设时间间隔进行切片,生成弹性分布式数据集RDD;
计算单元,用于对所述弹性分布式数据集RDD进行操作,得到分析数据;
写入单元,用于将分析数据写入Elasticsearch全文搜索引擎中间件。
在一种实施方式中,所述参数包括:数据源名称类型-r、指定时间-d、数据源类型-type和数据类型-fileType;
HTTP数据源类型包括主机地址-host、端口号-port、资源定位符-url参数;
SSH数据源类型包括主机地址-host、端口号-port、用户名-user、密码-pass、文件路径-path参数;
NFS数据源类型包括文件路径-path参数;
KAFKA数据源类型包括主机地址或集群地址-host;
CSV数据类型包括分隔符-format参数;
TXT数据类型包括分隔符-format参数和字段长度-len参数。
在一种实施方式中,所述采集数据服务模块包括主副节点,分别部署于两台物理机服务器;所述KAFKA消息队列包括主主副三个节点,分别部署于三台物理机服务器;所述SPARK分布式处理计算模块分别部署于多台基于hadoop的物理机服务器;所述Elasticsearch全文搜索引擎中间件包括主主副三个节点,分别部署于三台物理机服务器。
在一种实施方式中,所述系统进一步包括:至少一台用于部署TOMCAT服务的物理机服务器,用于在接收到搜索请求时输出该搜索请求对应的搜索结果。
实施例二
为了便于本申请的实施,本申请实施例以一具体实例进行说明。
本申请实施例提供了一套针对电视台新媒体数据处理的系统,包括采集数据服务、KAFKA消息队列、SPARK分布式处理计算、Elasticsearch全文搜索引擎中间件。
一、采集数据服务
图2示出了本申请实施例二中采集数据服务的原理示意图。
如图所示,本申请实施例的采集数据服务使用语言开发。Python可以让开发者把精力集中在编程对象和思维方法上,而不用去担心语法、类型等等外在因素。它清晰简洁的语法也使得它调试起来比Java简单得多,对于kafka、ftp、系统命令,字符串解析相关操作,python提供了良好的模块,使开发变得更加高效。如:kafka、kafka-python、psutil、urllib3、cx_Oracle、json、re等等。与现有flume相比,flume无法直接将不同数据类型的数据灵活的解析成统一格式的数据,需要二次处理,本申请实施例所提供的系统很好的克服了这种问题,采用本申请实施例所提供的系统只需解析一次即可达到目的,从而降低解析成本,解析性能要高于flume解析方式。
采集数据服务包括三个模块:
1、数据源连接模块,可以应对各种数据源数据,通过枚举型配置,以参数形式调用相应数据源和数据类型,例如:FTP、HTTP、NFS、SSH、KAFKA等等。针对这些数据源,本申请实施例使用python对其依依封装了对应驱动类。
2、数据处理模块,将从各个数据源获取的数据,文件格式有:JSON、EXCEL、CSV、TXT等等。JSON数据类型:先将其解析成python字典型数据,根据静态资源数据,将其打上相应标签并且判断数据是否缺失后,将其重新转化成JSON数据。
3、数据推送模块。多线程,高并发模式下,拉取队列中数据,将Record发送到kafka指定分区。算法为:对record的key取hash值,用hash值对kafka所有分区做取模运算。Topic是根据上个模块打的标签进行判断的。
使用kafka模块:
KafkaProducer.send(topic,value=recordData,key=recordKey,partition=partion)。
本申请实施例针对不同的数据源统一使用python不同模块开发、获取数据,例如:FTP数据源使用的是ftplib模块,HTTP数据源使用的是urllib3模块,SSH数据源使用的是paramiko模块,KAFKA数据源使用的是python-kafka模块。
对于不同的数据类型的数据处理如下:
EXCEL文件数据类型:获取文件列表后,一一对文件解析,文件解析规则为,对每个sheet看作一个文件,分别将第一行数据作为字段名称,将数据解析成pthon字典型数据后,对数据进行解析、过滤、打标签等处理后,用python json模块转化成json数据。
CSV文件数据类型:将传递的-format参数作为分隔符,第一行header作为字段名称,解析成python字典型数据,后续操作与EXCEL相同。
TXT文件数据类型:这个类型数据比较特殊,通常这种数据默认约定为数组数据,将其解析转化为数组型数据,判断数据长度是否为传入参数即可,不满足条件将会被过滤掉,主要参数为:-len(分隔后,每条信息长度)-format(字段分隔符)。
所有的数据类型经过不同的处理后,将数据统一解析成JSON格式根据不同的业务,判断数据的长度,数据值是否缺失等要素进行数据持久化,写入本地文件系统,作为永久缓存文件,文件命名格式为,数据源名称-文件类型-时间.json。同时,将解析的json数据,封装成key-value形式的Record放到队列中。
在Linux系统下,只需使用crontab功能,根据业务需求定时调度命令即可,解析示例:
1.解析SSH数据源,CSV数据格式,数据类型为微博大数据平台。
python run.py–r dataplat_wb–d 20200520–type SSH–host 10.10.*.*–port22–user****–pass*******-path/data/cctv/**–fileType CSV–format|
图3示出了本申请实施例二中解析样例数据的示意图;
图4示出了本申请实施例二中解析后的数据示意图。
2.解析NFS数据源,TXT数据格式,数据类型为微博大数据平台。python run.py–rdataplat_wb–d 20200520–type NFS–path/data/**–fileType TXT–format|-len 7;
3.解析HTTP数据源,EXCEL数据格式,数据类型为微博大数据平台。pythonrun.py–r dataplat_wb–d 20200520–type HTTP–host 10.10.*.*–port8088–url/cctv/weibo**–fileType EXCEL;
4.解析KAFKA数据源,JSON数据格式,数据类型为微博大数据平台。pythonrun.py–r dataplat_wb–d 20200520–type KAFKA–host 10.10.*.*–fileType JSON;
参数解析规范:
1)-r数据源名称类型。例如:dataplatwb(微博-大数据平台),wholenet_qingbo(清博-全网);
2)-d指定时间。格式yyyymmdd,如20200520,默认为当天;
3)-type数据源类型。如HTTP,SSH,KAFKA,NFS;
HTTP增加参数:-host(主机地址)–port(端口号)-url(资源定位符);
SSH增加参数:-host(主机地址)–port(端口号)-user(用户名)-pass(密码)-path(文件路径);
NFS增加参数:-path(文件路径);
KAFKA增加参数:-host(主机地址或者集群地址);
4)-fileType数据类型。如CSV,TXT,EXCEL,JSON;
CSV增加参数:–format(分隔符,默认为“,”)
TXT增加参数:–format(分隔符,默认为“,”)-len(字段长度);
EXCEL增加参数:无;
JSON增加参数:无。
执行SSH数据源,CVS格式数据流程如下:
1)通过ssh安全隧道验证;
2)判断是否有*.ok文件存在,如存在则说明文件已经生成完毕;
3)下载文件到本地文件缓存路径;
4)解析文件,根据header与csv分隔符,将文件每行内容解析成json字符串;
5)通过业务过滤器,保留符合要求的数据,进行下一步处理;
6)将解析好的json字符串写入本地文件系统;
7)将解析好的json字符串封装成Record对象存入python队列中;
8)多线程并发拉取队列,并根据算法计算分区后,发送到kafka消息队列。
本申请实施例所提供的采集数据服务的优势:
1.数据接入配置。只需一条执行命令即可完成一种数据接入,相比flume,不需要sink,channel,source等复杂配置。
2.效率更高。通过对业务的特殊性,使用python灵活的开发具有针对性的解析,将所有数据统一格式,带来了性能提升。使解析一次完成,不需要二次开发。
3.维护成本低。该系统可以完全依赖Linux系统中的crontab功能。因此只需维护crontab调度文件即可,避免了flume有可能数据交叉风险。
二、KAFKA
kafka在该系统中充当消息中间件--缓存队列,作用之一是承载各个数据源数据,将数据统一、其吞吐量足够大,对下游消费者更加友好,提高系统整体流程的稳定性。
通过采集数据服务系统推送到kafka数据,分类。
本申请实施例共创建主题数13个,每个主题24个分区,副本数为2,用来存放不同种类数据,例如:
cctv.weixin.article.total.dataplat.rdb,
cctv.weixin.account.upstreammsg.dataplat.rdb,
cctv.weixin.account.dataplat.rdb,
cctv.weixin.account.share.dataplat.rdb,
cctv.weixin.account.read.dataplat.rdb,
cctv.weixin.article.qingbo.rdb,
cctv.weibo.account.qingbo.rdb,
cctv.weibo.account.dataplat.rdb,
cctv.weibo.manuscript.dataplat.rdb,
cctv.weixin.article.summary.dataplat.rdb,
cctv.weixin.account.upstreammsgdist.dataplat.rdb,
cctv.weibo.article.qingbo.rdb,
cctv.weixin.account.qingbo.rdb。
三、SPARK
SPARK在该项目中扮演数据分析、汇聚、去重等计算引擎功能。对kafka中的数据定时轮询进行计算后,推入ES。该spark集群主要用来消费kafka集群信息。采用sparkstreaming处理kafka数据,每分钟分别从kafka各个主题拉取数据,进行汇聚、分析后,将数据写入ElasticSearch。
Spark工作流程:
1.Spark Streaming持续不断地接收Kafka流入的数据;
2.将流入的数据按每1分钟切片,生成RDD;
3.对RDD进行filter,map,reduce等操作分析数据;
4.将数据写入ES。
四、Elasticsearch
Elasticsearch在该系统中起到数据库作用,将spark实时计算的结果数据保存,并且保证高效搜索功能。
本申请实施例中Elasticsearch集群节点数:3个
ES作为整个项目的最终数据存储,利用ES的分词+倒排索引的特性,可以对庞大的数据进行搜索,其效率远远高于传统数据库。
索引创建规则:对每种数据,每年创建索引。例如:
weibo_account_platform_2018
weibo_account_platform_2019
weibo_account_platform_2020
五、JAVA应用
Java web应用用于查询ES中的数据,通过强大的ES搜索引擎,精准快速的将结果查询出来。
本申请实施例假设需要接收大量的新媒体数据,包括微信数据,微博数据,网站数据,APP数据。数据源由不同的供应商,格式不同,且格式会经常变化,为保证服务器稳定的运营,将详细kafka消息队列加入本系统中。因过来的数据有不完整数据,有重复数据,有异常数据,通过SPARK程序将以上几类数据进行清洗,清洗后存入ES中。微信的文章和微博的文章和网站的文章有大量的文本,传统搜索效率极低,通过ES进行关键词匹配查询,大大提升了用户体验。
本申请实施例的采集流程如下:
1.采集多种数据来源,处理了Excel数据,CSV数据,HTTP数据,KAFKA数据。
2.格式转化,将数据统一转换成JSON格式。
3.将JSON文件发送至消息队列中。
4.SPARK应用监听消息后,并进行数据清洗。
5.数据存储,将数据存储到ES中。
6.通过关键词匹配查询数据。
具体的,可以部署15台物理机服务器,其中2台(8核16G 500G)用于自研数据抓取服务,3台(8核16G 500G)kafka服务,5(16核64G 500G)台基于hadoop的spark服务,3(16核64G 500G)台es服务,2台TOMCAT服务。
1.将采集数据服务分为主副节点部署在2台物理机中,2台物理机要求能访问HTTP服务,能访问FTP服务。
2.部署KAFKA集群在3台物理机中,分别为主主副,其中集群的管理要使用zookeeper进行管理。
3.部署SPARK应用在yarn应用上,可以通过CDH更方便的部署。
4.部署3台ES服务,角色分别为主主副。
5.部署2台TOMCAT服务,用于用户查询使用。
每个服务都记录有日志文件,具体实施时可以定期进行巡检。
本申请实施例所提供的系统,学习成本、使用成本、维护成本均非常低。学习成本低,在于使用python程序取代了flume,降低了多种多样数据源的配置复杂度。整个系统均使用最简单的组件,对服务器性能要求相对低一些,所以使用成本低。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据采集系统,其特征在于,包括:采集数据服务模块、KAFKA消息队列、SPARK分布式处理计算模块、以及Elasticsearch全文搜索引擎中间件,其中,
采集数据服务模块通过python语言开发,利用对不同数据源预先封装的驱动类以参数形式调用数据并进行处理后发送至KAFKA消息队列的指定分区;
KAFKA消息队列包括多个分区,用于存放不同种类的数据;
SPARK分布式处理计算模块采用spark streaming对KAFKA中的数据进行轮询计算,并将计算后的数据写入Elasticsearch全文搜索引擎中间件;
Elasticsearch全文搜索引擎中间件存储所述SPARK分布式处理计算模块计算后的数据并为其创建索引。
2.根据权利要求1所述的数据采集系统,其特征在于,所述采集数据服务模块,包括:
数据源连接模块,用于利用对不同数据源预先封装的驱动类以参数形式调用相应的数据源的数据;
数据处理模块,用于将从各个数据源获取的数据进行解析,并将解析后的数据打上相应的标签;
数据推送模块,用于拉取数据并发送至KAFKA消息队列的指定分区。
3.根据权利要求2所述的数据采集系统,其特征在于,所述数据推送模块,包括:
主题单元,用于根据拉取的数据记录的标签确定KAFKA消息队列的主题;
哈希单元,用于对拉取的数据记录的key计算hash值;
取模单元,用于利用所述hash值对KAFKA所有分区进行取模运算,确定所确定的KAFKA消息队列的主题下的分区位置。
4.根据权利要求2所述的数据采集系统,其特征在于,所述数据处理模块,用于:
对于EXCEL文件数据类型,获取文件列表后将每个sheet作为单个文件,分别将每个sheet的第一行作为字段名称,将数据解析成python字典型数据后进行打标签处理,再转化为json数据;
对于CSV文件数据类型,将传递的-format参数作为分隔符,将第一行header作为字段名称,将数据解析成python字典型数据后进行打标签处理,再转化为json数据;
对于TXT文件数据类型,将该类型数据解析转化为数组型数据,在判断数据长度为传入参数时将其转化为json数据。
5.根据权利要求2所述的数据采集系统,其特征在于,所述数据源连接模块,包括:
隧道验证单元,用于通过安全外壳协议SSH安全隧道验证数据源;
下载单元,用于在确定有*.ok文件存在时,利用对不同数据源预先封装的驱动类以参数形式调用相应的数据源的数据,下载文件到本地文件缓存路径。
6.根据权利要求1所述的数据采集系统,其特征在于,所述KAFKA消息队列根据数据源的不同预先创建有多个主题,每个主题有多个分区,每个分区存放同一类数据,不同分区存放的数据类型不同。
7.根据权利要求1所述的数据采集系统,其特征在于,所述SPARK分布式处理计算模块,包括:
接收单元,用于采用spark streaming对KAFKA中的数据轮询,接收从KAFKA流入的数据;
分片单元,用于将流入的数据按预设时间间隔进行切片,生成弹性分布式数据集RDD;
计算单元,用于对所述弹性分布式数据集RDD进行操作,得到分析数据;
写入单元,用于将分析数据写入Elasticsearch全文搜索引擎中间件。
8.根据权利要求1所述的数据采集系统,其特征在于,所述参数包括:数据源名称类型-r、指定时间-d、数据源类型-type和数据类型-fileType;
HTTP数据源类型包括主机地址-host、端口号-port、资源定位符-url参数;
SSH数据源类型包括主机地址-host、端口号-port、用户名-user、密码-pass、文件路径-path参数;
NFS数据源类型包括文件路径-path参数;
KAFKA数据源类型包括主机地址或集群地址-host;
CSV数据类型包括分隔符-format参数;
TXT数据类型包括分隔符-format参数和字段长度-len参数。
9.根据权利要求1所述的数据采集系统,其特征在于,所述采集数据服务模块包括主副节点,分别部署于两台物理机服务器;所述KAFKA消息队列包括主主副三个节点,分别部署于三台物理机服务器;所述SPARK分布式处理计算模块分别部署于多台基于hadoop的物理机服务器;所述Elasticsearch全文搜索引擎中间件包括主主副三个节点,分别部署于三台物理机服务器。
10.根据权利要求1或9所述的数据采集系统,其特征在于,进一步包括:至少一台用于部署TOMCAT服务的物理机服务器,用于在接收到搜索请求时输出该搜索请求对应的搜索结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010864801.8A CN111984436A (zh) | 2020-08-25 | 2020-08-25 | 一种数据采集系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010864801.8A CN111984436A (zh) | 2020-08-25 | 2020-08-25 | 一种数据采集系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111984436A true CN111984436A (zh) | 2020-11-24 |
Family
ID=73443519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010864801.8A Pending CN111984436A (zh) | 2020-08-25 | 2020-08-25 | 一种数据采集系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984436A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010565A (zh) * | 2021-03-25 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 基于服务器集群的服务器实时数据处理方法及系统 |
CN113111641A (zh) * | 2021-04-20 | 2021-07-13 | 上海渠杰信息科技有限公司 | 一种基于全文搜索引擎的数据操作方法及设备 |
CN113127413A (zh) * | 2021-05-12 | 2021-07-16 | 北京红山信息科技研究院有限公司 | 一种运营商数据处理方法、装置、服务器及存储介质 |
CN113342865A (zh) * | 2021-06-11 | 2021-09-03 | 杭州每刻科技有限公司 | 一种报销单审批查询方法和系统 |
CN113923115A (zh) * | 2021-10-09 | 2022-01-11 | 紫光云技术有限公司 | 一种基于RocketMq的VPC配置下发方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890509B1 (en) * | 2006-12-05 | 2011-02-15 | First American Real Estate Solutions Llc | Parcel data acquisition and processing |
CN104750799A (zh) * | 2015-03-23 | 2015-07-01 | 华南理工大学 | 一种基于地址解析数据的建设用地类型快速识别方法 |
WO2016118979A2 (en) * | 2015-01-23 | 2016-07-28 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
CN107832389A (zh) * | 2017-10-31 | 2018-03-23 | 新华三大数据技术有限公司 | 数据管理方法及装置 |
CN107896175A (zh) * | 2017-11-30 | 2018-04-10 | 北京小度信息科技有限公司 | 数据采集方法和装置 |
CN108920659A (zh) * | 2018-07-03 | 2018-11-30 | 广州唯品会信息科技有限公司 | 数据处理系统及其数据处理方法、计算机可读存储介质 |
CN109977158A (zh) * | 2019-02-28 | 2019-07-05 | 武汉烽火众智智慧之星科技有限公司 | 公安大数据分析处理系统及方法 |
CN110347899A (zh) * | 2019-07-04 | 2019-10-18 | 北京熵简科技有限公司 | 基于事件驱动模型的分布式互联网数据采集系统与方法 |
CN111435344A (zh) * | 2019-01-15 | 2020-07-21 | 中国石油集团川庆钻探工程有限公司长庆钻井总公司 | 一种基于大数据的钻井提速影响因素分析模型 |
CN111460236A (zh) * | 2020-04-26 | 2020-07-28 | 天津七一二通信广播股份有限公司 | 基于数据湖的大数据采集治理快速检索系统 |
-
2020
- 2020-08-25 CN CN202010864801.8A patent/CN111984436A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890509B1 (en) * | 2006-12-05 | 2011-02-15 | First American Real Estate Solutions Llc | Parcel data acquisition and processing |
WO2016118979A2 (en) * | 2015-01-23 | 2016-07-28 | C3, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
CN104750799A (zh) * | 2015-03-23 | 2015-07-01 | 华南理工大学 | 一种基于地址解析数据的建设用地类型快速识别方法 |
CN107832389A (zh) * | 2017-10-31 | 2018-03-23 | 新华三大数据技术有限公司 | 数据管理方法及装置 |
CN107896175A (zh) * | 2017-11-30 | 2018-04-10 | 北京小度信息科技有限公司 | 数据采集方法和装置 |
CN108920659A (zh) * | 2018-07-03 | 2018-11-30 | 广州唯品会信息科技有限公司 | 数据处理系统及其数据处理方法、计算机可读存储介质 |
CN111435344A (zh) * | 2019-01-15 | 2020-07-21 | 中国石油集团川庆钻探工程有限公司长庆钻井总公司 | 一种基于大数据的钻井提速影响因素分析模型 |
CN109977158A (zh) * | 2019-02-28 | 2019-07-05 | 武汉烽火众智智慧之星科技有限公司 | 公安大数据分析处理系统及方法 |
CN110347899A (zh) * | 2019-07-04 | 2019-10-18 | 北京熵简科技有限公司 | 基于事件驱动模型的分布式互联网数据采集系统与方法 |
CN111460236A (zh) * | 2020-04-26 | 2020-07-28 | 天津七一二通信广播股份有限公司 | 基于数据湖的大数据采集治理快速检索系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010565A (zh) * | 2021-03-25 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 基于服务器集群的服务器实时数据处理方法及系统 |
CN113010565B (zh) * | 2021-03-25 | 2023-07-18 | 腾讯科技(深圳)有限公司 | 基于服务器集群的服务器实时数据处理方法及系统 |
CN113111641A (zh) * | 2021-04-20 | 2021-07-13 | 上海渠杰信息科技有限公司 | 一种基于全文搜索引擎的数据操作方法及设备 |
CN113127413A (zh) * | 2021-05-12 | 2021-07-16 | 北京红山信息科技研究院有限公司 | 一种运营商数据处理方法、装置、服务器及存储介质 |
CN113127413B (zh) * | 2021-05-12 | 2024-03-01 | 北京红山信息科技研究院有限公司 | 一种运营商数据处理方法、装置、服务器及存储介质 |
CN113342865A (zh) * | 2021-06-11 | 2021-09-03 | 杭州每刻科技有限公司 | 一种报销单审批查询方法和系统 |
CN113923115A (zh) * | 2021-10-09 | 2022-01-11 | 紫光云技术有限公司 | 一种基于RocketMq的VPC配置下发方法 |
CN113923115B (zh) * | 2021-10-09 | 2023-08-25 | 紫光云技术有限公司 | 一种基于RocketMq的VPC配置下发方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111984436A (zh) | 一种数据采集系统 | |
CN111526060B (zh) | 业务日志的处理方法及系统 | |
US10338958B1 (en) | Stream adapter for batch-oriented processing frameworks | |
US10776170B2 (en) | Software service execution apparatus, system, and method | |
CN109254982A (zh) | 一种流数据处理方法、系统、装置及计算机可读存储介质 | |
US9391831B2 (en) | Dynamic stream processing within an operator graph | |
US20070005535A1 (en) | System and methods for IT resource event situation classification and semantics | |
He et al. | Parallel implementation of classification algorithms based on MapReduce | |
WO2017008650A1 (zh) | 一种用于过滤数据的设备及方法 | |
US11449488B2 (en) | System and method for processing logs | |
US9058330B2 (en) | Verification of complex multi-application and multi-node deployments | |
US20180129712A1 (en) | Data provenance and data pedigree tracking | |
US20140237554A1 (en) | Unified platform for big data processing | |
US10911379B1 (en) | Message schema management service for heterogeneous event-driven computing environments | |
US11567735B1 (en) | Systems and methods for integration of multiple programming languages within a pipelined search query | |
US11341024B2 (en) | Automatic configuration of logging infrastructure for software deployments using source code | |
CN111984505A (zh) | 一种运维数据采集引擎及采集方法 | |
Requeno et al. | Quantitative analysis of apache storm applications: the newsasset case study | |
US20200371902A1 (en) | Systems and methods for software regression detection | |
Zhou et al. | A runtime verification based trace-oriented monitoring framework for cloud systems | |
CN114756629B (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
Shih et al. | Implementation and visualization of a netflow log data lake system for cyberattack detection using distributed deep learning | |
CN113868249A (zh) | 一种数据存储方法、装置、计算机设备以及存储介质 | |
CN110661886B (zh) | 一种组件安装方法及装置 | |
CN111177100B (zh) | 一种训练数据处理方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |