一种基于脚本的web服务分页数据采集系统转让专利

申请号 : CN201911080867.1

文献号 : CN111221815B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 干际阳徐斌李毅

申请人 : 南京莱斯网信技术研究院有限公司

摘要 :

本发明提供了一种基于脚本的web服务分页数据采集系统,包括如下步骤:步骤1,所述数据平台基于用户录入的目录信息和库表信息分别生成目录树和至少一个库表;步骤2,所述数据平台基于用户输入的字段信息生成至少一个字段以及至少一个主键字段配置内容;步骤3,所述数据平台基于用户输入生成至少一个节点信息、至少一个数据源信息和至少一个解析脚本;步骤4,所述数据平台基于用户输入生成至少一个采集任务配置内容和至少一个采集任务调度;步骤5,生成采集规则,执行采集任务调度,完成分页数据采集,数据存储到MongoDB数据库。

权利要求 :

1.一种基于脚本的web服务分页数据采集系统,其特征在于,系统通过执行如下步骤完成分页数据采集:

步骤1,系统基于用户录入的目录信息和库表信息分别生成目录树和至少一个库表;

步骤2,系统基于用户输入的字段信息生成至少一个字段以及至少一个主键字段配置内容;

步骤3,系统基于用户输入生成至少一个节点信息、至少一个数据源信息和至少一个解析脚本;

步骤4,系统基于用户输入生成至少一个采集任务配置内容和至少一个采集任务调度,然后配置采集任务,选择web采集模式,设置时间戳,执行自动配置任务调度;

步骤5,系统基于所述库表信息、字段配置内容、数据源信息、解析脚本以及采集任务配置内容生成采集规则,执行采集任务调度,完成分页数据采集,将采集的数据存储到MongoDB数据库;

步骤1包括:设置目录的上级、名称、英文、地域信息、组织机构、编码信息,目录完成设置后状态为:未发布;

步骤1中,用户能够查看目录的状态,当状态为未发布时,查看状态时能够选择是否申请审批;当状态为审核中、变更审核中或者已驳回时,查看状态时能够进行流程查看;当状态为变更待审核时,查看状态时能够进行流程查看或者修改编目;当状态为已发布时,查看状态时能够进行流程查看、申请变更、申请删除或者申请撤销;

设置库表的中文名称、英文名称、编码、主题分类、行业分类、是否共享、是否开放、共享类型、更新周期、联系人和联系方式,库表完成设置后状态为:未发布;

步骤1中,用户能够查看库表的状态,当状态为未发布时,查看状态时能够选择是否申请审批;当状态为审核中、变更审核中或者已驳回时,查看状态时能够进行流程查看;当状态为变更待审核时,查看状态时能够进行流程查看或者修改编目;当状态为已发布时,查看状态时能够进行流程查看、申请变更、申请删除或者申请撤销;

步骤2包括:设置字段的内部标识、中文名称、中文全拼、英文名称、语境、编码、数据类型、寄来单位、表示格式和存储格式;

步骤2中,用户能够查看字段信息的状态,当状态为未发布时,查看状态时能够选择是否申请审批;当状态为审核中、变更审核中或者已驳回时,查看状态时能够进行流程查看;

当状态为变更待审核时,查看状态时能够进行流程查看或者修改编目;当状态为已发布时,查看状态时能够进行流程查看、申请变更、申请删除或者申请撤销;

步骤3包括:设置数据节点详细信息,包括:设置节点的节点名称、IP地址、端口号、节点角色、所属单位、联系人、联系电话;设置数据源的详细信息,包括:选择web服务,设置所属节点、接口名称、服务地址、连接类型、传递参数和解析脚本名;

步骤3包括:设置解析脚本详细信息,包括:设置名称、脚本类型、用途、脚本内容;

步骤4中,所述配置采集任务包括:选择数据源、选择对应的表、选择所需目标字段和目标映射,其中,在选择数据源时,任务类型选择:web服务,并填写名称、节点、任务类型、web服务、联系人、描述、和备注;

在选择对应的表时,选中一个来自数据源的采集目标表,并显示目标表名;

在选择所需目标字段时,在待选字段中选择需要采集的字段,并显示选中的字段名;

设置web分页模式,选择时间分页模式,设置开始时间和输入时间分页间隔,设置时间戳选择时间戳字段,最后执行自动匹配;

字段关联关系显示源表和目的表的字段匹配关系,然后进入目标映射;

步骤5中,根据采集任务配置新增采集任务,每个配置能够同时保存两个以上的采集任务,各采集任务配置不同的运行策略并同时运行,同时能够选取任务调度是否重复、输入调度名称、选取任务类型;

所述执行采集任务调度,完成分页数据采集,将采集的数据存储到MongoDB数据库,具体包括:系统基于解析脚本和数据源信息,定时通过webservice服务接入外部系统的数据,以时间戳字段的起始时间替换解析脚本传递参数中的starttime,以时间戳字段的起始时间加上时间分页间隔的值替换解析脚本传递参数中的endtime;分页模式采集后,通过webservice采集原网页数据,按采集规则中选取的字段提取单条数据项对应字段的信息,拼接转换成JSON串格式;当采集数据项数量达到分页模式单次采集数量上限时,先暂停采集,接着发送数据到kafka中间件的消息队列,发送完成后继续采集任务,重复上述过程,直到采集任务完成;在kafka接收数据的同时,kafka按照消费者机制,将接收到的数据推送至节点主机的MongoDB数据库。

说明书 :

一种基于脚本的web服务分页数据采集系统

技术领域

[0001] 本发明属于数据采集技术领域,特别涉及一种基于脚本的web服务分页数据采集系统。

背景技术

[0002] 在信息化时代,数据总量日益增长,数据价值日益得到重视,企业不但需要想方设法从企业已有的信息资源中不断挖掘出新的信息,也需要从外部获取有用的信息,而企业
本身的信息对于其他外部企业来说也可能是有用的信息。一个大规模数据共享交换的时代
已经到来。
[0003] 目前,数据采集呈现大数据量、多数据源、格式多样化的特征,当一次性查询所有采集结果耗费系统资源,页面响应变慢,严重影响用户体验。
[0004] 市面上现存多种数据采集系统和工具,例如Kettle具备强大的数据抽取、转换和加载能力。但kettle不支持分页采集,这会导致难以应对实际中多样化的企业数据和大量
数据的查询显示问题。向普通用户提供便捷化、支持分页、实用性强、支持大数据的数据采
集方法是目前需要解决的技术问题,而目前并没有一种基于脚本的web服务分页数据采集
系统。

发明内容

[0005] 为了克服大量数据采集时,在一次性查询所有结果情景下,系统页面响应变慢,特别是随着数据量的增加特别明显,这时需要使用分页查询,本发明提出一种实用性强、性能
良好的基于脚本的web服务分页数据采集系统。
[0006] 本发明提供了一种基于脚本的web服务分页数据采集系统,包括如下步骤:
[0007] 步骤1,所述系统基于用户录入的目录信息和库表信息分别生成目录树和至少一个库表;
[0008] 步骤2,所述系统基于用户输入的字段信息生成至少一个字段以及至少一个主键字段配置内容;
[0009] 步骤3,所述系统基于用户输入生成至少一个节点信息、至少一个数据源信息和至少一个解析脚本;
[0010] 步骤4,所述系统基于用户输入生成至少一个采集任务配置内容和至少一个采集任务调度;配置采集任务,选择web采集模式,设置时间戳,执行自动配置任务调度;
[0011] 步骤5,系统基于所述库表信息、所述字段配置内容、所述数据源信息、解析脚本以及采集任务配置内容生成采集规则,执行采集任务调度,完成分页数据采集,数据存储到
MongoDB数据库。
[0012] 编辑采集任务调度,选择单次执行或定时任务,逐页采集数据信息,将数据推送至kafka消息队列。
[0013] 优选地,所述步骤1中通过如下步骤生成目录树:
[0014] 基于用户输入一个目录信息,所述目录信息的编码在目录列表中具有唯一性,状态为“未发布”;
[0015] 当目录信息状态为“未发布”时,点击状态会出现申请审批选项;
[0016] 一条目录信息审批通过后,状态变更为“已发布”,可在目录的结构树中查看到该条目录的基本信息。
[0017] 优选地,所述步骤1中通过如下步骤生成库表:
[0018] 当目录信息状态变更为“已发布”,在该条目录下,基于用户输入生成库表信息,所述库表信息的编码在库表信息列表具有唯一性,状态为“未发布”;
[0019] 当库表信息状态为“未发布”时,点击状态会出现申请审批选项;
[0020] 库表信息审批通过后,状态变更为“已发布”。
[0021] 优选地,所述步骤2中所述字段通过如下方式生成:
[0022] 基于用户输入生成一个字段,所述字段的编码在字段列表具有唯一性,状态为“未发布”;
[0023] 当字段状态为“未发布”时,右键点击状态会出现申请审批选项;
[0024] 字段审批通过后,状态变更为“已发布”。
[0025] 优选地,所述步骤2中所述主键字段配置内容通过如下方式生成:
[0026] 当字段状态为“已发布”时,基于用户输入选取库表,并可导入“已发布”字段信息;
[0027] 在库表中配置字段的主键、共享、开放等属性信息。
[0028] 优选地,所述步骤3中所述节点信息通过如下方式生成:
[0029] 基于用户输入生成一个节点信息,一个节点信息对应一台终端设备信息。
[0030] 优选地,所述步骤3中所述数据源信息通过如下方式生成:
[0031] 依托于设计好的数据节点,基于用户输入生成一条数据源信息,对外部接入的系统的数据进行管理。
[0032] 优选地,所述步骤3中所述解析脚本通过如下方式生成:
[0033] 基于用户输入生成一个解析脚本,对数据交换中所需的脚本进行封装。
[0034] 优选地,所述步骤4中所述采集任务配置内容通过如下方式生成:
[0035] 基于用户输入选择数据源,任务类型选择:web服务,并填写数据源名称、节点、任务类型、web服务、联系人、描述、和备注;
[0036] 基于用户输入选择对应的库表,选中一个来自数据源的采集目标表,并显示目标表名;
[0037] 基于用户输入选择所需目标字段,设置web分页模式,选择时间分页模式,设置开始时间和输入时间分页间隔,设置时间戳选择时间戳字段;最后执行自动匹配,字段关联关
系显示源表和目的表的字段匹配关系;
[0038] 执行目标映射,显示源表和目的表的字段匹配关系,生成采集任务配置内容。
[0039] 优选地,所述步骤4中所述采集任务调度通过如下方式生成:
[0040] 根据所保存的采集任务配置内容,基于用户输入的任务运行策略,可生成采集任务调度表达式。
[0041] 所述步骤5中,通过基于用户的输入生成目录树、库表信息、字段配置内容、数据源信息、以及采集任务配置内容,并基于所述库表信息、所述字段配置内容、所述数据源信息、
解析脚本以及采集任务配置内容生成采集规则,并基于所述采集规则采集数据到所述系统
根据所保存的采集任务配置新增采集任务,每个配置能够同时保存两个以上的采集任务,
各采集任务配置不同的运行策略并同时运行,同时能够选取任务调度是否重复、输入调度
名称、选取任务类型。
[0042] 本发明提供了一种基于脚本的web服务分页数据采集系统,该方法基于Kettle组件,导入Kettle采集jar包实现采集功能,通过系统完成数据的查看、新增、删除、更新等等,
本发明功能强大、可定制化,并通过解析脚本首先灵活多变的采集规则,自定义方式采集数
据,完成多元化的大量数据采集,具有极高的商业价值,所述包括以下步骤:
[0043] 有益效果:
[0044] 本发明通过基于解析脚本获取配置信息,基于用户输入获取字段信息、字段的数据组织及数据域关系的信息、目录结构下库表和字段关联信息、web服务采集参数或数据库
密码及用户名信息,并基于配置信息、字段信息、web服务采集参数或数据库密码及用户名
执行采集任务,通过系统完成数据的单次或定时采集,本发明操作简单、实用性强并通过灵
活多变的数据交换方式,实现了多元化的数据采集,具有极高的商业价值。

附图说明

[0045] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和或其他方面的优点将会变得更加清楚。
[0046] 图1是本发明流程图。

具体实施方式

[0047] 图1是本发明提供的一种基于脚本的web服务分页数据采集系统的具体流程示意图,以分页模式采集web页面数据,本领域技术人员理解,在信息化时代数据总量日益增长,
数据价值日益得到重视,一个大规模数据共享交换的时代已经到来,目前数据采集呈现大
数据量、多数据源、格式多样化的特征,当一次性查询所有采集结果耗费系统资源,页面响
应变慢,严重影响用户体验。
[0048] 本发明基于脚本,通过web服务分页模式,向普通用户提供便捷化、支持分页、实用性强、支持大数据的数据采集方法,获取用户需要的信息,具体地,包括如下步骤:
[0049] 首先,进入步骤S101,所述系统基于用户录入的目录信息和库表信息分别生成目录树和至少一个库表,本领域技术人员理解,在所述步骤S101,优选地在所述系统中设置目
录的上级、名称、英文、地域信息、组织机构、编码等目录详细信息,目录信息录入后状态呈
现“未发布”。审批通过后,状态变为“已发布”,接着可以优选地设置目录信息下库表的中文
名称、英文名称、编码、主题分类、行业分类、是否共享、是否开放、共享类型、更新周期、联系
人、联系方式等库表详细信息,库表信息录入后状态呈现“未发布”。审批通过后,状态变为
“已发布”。
[0050] 例如,在一个优选地实施例中,用户需要采集江苏省食药监局网站上的扬州市食品添加剂生产许可获证企业信息库。第一步,用户输入目录信息,目录信息的上级填写基础
数据库,名称填写食品类,英文填写ShiPingLei,地域信息选择扬州市,组织机构选市食药
监局,编码填写0101,目录信息录入后状态呈现“未发布”,审批通过后,状态变为“已发布”,
目录树结构中出现所述目录信息。第二步,用户在所述目录信息下输入库表信息,库表信息
的中文名称填食品添加剂生产许可获证企业信息库,英文名称填ShiPinTianJiaJiShengC
hanXuKeHuoZhengQiYeXinXiKu,编码填YZ10001,主题分类可以有多种选择,例如社交网络、
金融交易、电商购物、环境监测、电子政务等等,在本实施例中,填写电子政务。行业分类填
写内部,是否共享可以填是,是否开放可以填否,共享类型写无条件共享,更新周期填写每
日,联系人写扬州市食药监局相关人员姓名,联系方式填写负责人手机号码或部门电话。库
表信息录入后状态呈现“未发布”,审批通过后,状态变为“已发布”。在执行完上述操作后,
进入步骤S102。
[0051] 其次,进入步骤S102,所述系统基于用户输入的字段信息生成至少一个字段以及至少一个主键字段配置内容,本领域技术人员理解,在所述步骤S102,优选地在所述系统中
设置字段的内部标识、中文名称、中文全拼、英文名称、编码、数据类型、计量单位、表示格
式、提交机构、存储标准等字段详细信息,字段信息录入后状态呈现“未发布”。审批通过后,
状态变为“已发布”,接着通过对所述字段信息设置类型、长度、主键、共享、开放等属性信息
获得所述主键字段配置内容。
[0052] 例如,在一个优选地实例中,用户需要对食品添加剂生产许可获证企业信息库表进行字段编制,添加有效期字段。第一步,用户输入字段信息,字段信息的内部标识填文本
形式,中文名称填有效期,中文全拼填写YouXiaoQi,英文名称填ExpireTime,编码可以填
A10001,数据类型选择日期,计量单位和数据类型相关,数据类型为日期的计量单位为空。
表示格式选择yyyy‑MM‑dd HH:mm:ss,提交机构选市食药监局,存储标准为任意格式,字段
信息录入后状态呈现“未发布”,审批通过后,状态变为“已发布”。第二步,当字段状态为“已
发布”时,选取步骤S101中所述库表,并可导入“已发布”字段信息。第三步,用户设置所述主
键字段配置内容,类型选日期,字段类型为日期的长度为空,主键勾选是,共享勾选是,开放
勾选是。
[0053] 接着,进入步骤S103,所述系统基于用户输入生成至少一个节点信息、至少一个数据源信息和至少一个解析脚本,本领域技术人员理解,在所述步骤S103,优选地在所述系统
中设置节点的节点名称、IP地址、端口号、节点角色、所属单位、联系人、联系电话等数据节
点详细信息。随后在所述节点信息下输入数据源详细信息,选择web服务,设置所属节点、接
口名称、服务地址、连接类型、传递参数、解析脚本名等接口参数。最后在所述系统中输入解
析脚本,设置名称、脚本类型、用途、脚本内容等解析脚本详细信息。
[0054] 例如,在一个优选地实例中,用户需要采集扬州市食药监局数据信息。第一步,用户输入节点信息,节点信息的节点名称为171前置机,IP地址填192.168.0.171,端口号填写
8080,节点角色填DataAcquirer,所属单位选办公室,联系人填食药监局工作人员姓名,联
系电话填写负责人手机号。生成节点信息。第二步,在所述节点下用户输入数据源信息,数
据源的所属节点选择扬州市食药监局,数据源名称填写171前置机,接口名称填写web分页,
服务地址填https://192.168.60.217:2813/DS2000‑DataAcquirer/serviceInvoke/
dataAcquirerService,连接类型填post,传递参数填{“userName”:”abc”,”password”:”
123”,”startTime”:”#{start‑Time}”“,endTime”=”#{endTime}”},解析脚本名选择扬州
分页脚本。第三步,用户在所述系统中输入解析脚本,解析脚本的名称填写扬州分页脚本,
脚本类型写webservice,用途填写扬州食药监服务解析脚本,脚本内容填写web分页实现代
码的.java文件源码。
[0055] 然后,进入步骤S104,所述系统基于用户输入生成至少一个采集任务配置内容和至少一个采集任务调度,本领域技术人员理解,在所述步骤S104,首先优选地在所述系统中
配置采集任务,分为四个步骤:选择数据源、选择对应的表、选择所需目标字段和目标映射。
第一步,基于用户输入选择数据源,任务类型选择:web服务,并填写名称、节点、任务类型、
数据源、联系人、联系电话和描述。第二步,进入下一步骤,基于用户输入选择对应的库表,
选中一个来自数据源的采集目标表,并显示目标表名。第三步,进入下一步骤,基于用户输
入选择所需目标字段,设置web分页模式,选择时间分页模式,设置开始时间和输入时间分
页间隔,设置时间戳选择时间戳字段;最后执行自动匹配,字段关联关系显示源表和目的表
的字段匹配关系。最后,第四步,执行目标映射,显示源表和目的表的字段匹配关系,生成采
集任务配置内容。采集任务配置内容生成,随后,设置采集任务调度,根据所保存的采集任
务配置内容,基于用户输入的任务运行策略,可生成采集任务调度表达式。
[0056] 例如,在一个优选地实例中,用户需要采集扬州市食药监局食品添加剂生产许可获证企业信息库表数据。首先用户在所述系统中配置采集任务,第一步,任务类型选择:web
服务,名称填写扬州市食药监局食品添加剂生产许可获证企业信息库采集任务,节点填写
171前置机,任务类型选择web服务,数据源选择,联系人填写食药监局相关人员姓名,联系
电话填写负责人手机号码,描述扬州市食药监局食品添加剂生产许可获证企业信息库表数
据采集。第二步,进入下一步骤,选中来自所述服务地址的扬州市食药监局食品添加剂生产
许可获证企业信息库表作为采集目标表,并显示目标表名。第三步,进入下一步骤,web采集
模式选择时间分页模式,开始时间填写2015年1月,输入时间分页间隔选择每月,时间戳选
择ExpireTime字段作为判定依据;最后执行自动匹配,字段关联关系显示源表和目的表的
字段匹配关系。第四步,执行目标映射,生成采集任务配置内容。接着,用户基于所述采集任
务,配置采集任务调度,调度名称填写扬州市食药监局食品添加剂生产许可获证企业信息
库采集‑每天,任务配置选择扬州市食药监局食品添加剂生产许可获证企业信息库采集任
务,类型选择定时任务,设定采集时间为每天12:00。完成采集任务调度配置。
[0057] 最后,进入步骤S105生成采集规则,执行采集任务调度,完成分页数据采集,数据存储到MongoDB数据库,本领域技术人员理解,执行采集任务调度,所述系统基于解析脚本
和数据源信息,定时通过webservice服务接入外部系统的数据,以时间戳字段的起始时间
替换解析脚本传递参数中的startTime和endTime,分页模式采集后,通过webservice采集
原网页数据,按采集规则中选取的字段提取单条数据项对应字段的信息,拼接转换成JSON
串格式。当采集数据项数量达到分页模式单次采集数量上限时,先暂停采集,接着发送数据
到kafka中间件的消息队列,发送完成后继续采集任务。以此类推,直到采集任务完成。在
kafka接收数据的同时,kafka按照消费者机制,将接收到的数据推送至节点主机的MongoDB
数据库。
[0058] 例如,在一个优选地实例中,用户需要采集扬州市食药监局食品添加剂生产许可获证企业信息库表数据。基于所述库表信息、所述字段配置内容、所述节点信息、所述数据
源信息、解析脚本以及所述采集任务配置内容生成采集规则,定时每天12点整执行采集任
务调度,采集任务以扬州市食药监局食品添加剂生产许可获证企业信息库表中的
ExpireTime字段信息为时间戳,从2015年1月开始,按月分页采集数据推送到kafka中间件
的消息队列,并推送到171前置机。
[0059] 本发明提供了一种基于脚本的web服务分页数据采集系统,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普
通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和
润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实
现。