一种基于分布式的多数据源采集实现方法转让专利

申请号 : CN202311303801.0

文献号 : CN117033952B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈清松蔡剑林锦鑫宋文雅

申请人 : 厦门惟尔拓科技有限公司

摘要 :

本发明公开了一种基于分布式的多数据源采集实现方法,包括:获取数据源的原始数据,得到数据配置信息并设置到任务子系统中;在任务子系统中添加新增数据源,配置数据获取方式及连接信息、数据配置信息和数据清理策略;新建采集任务指令并下发;执行器接收采集任务指令;根据数据获取方式及连接信息判断出数据采集类型,选用适配器接入,将数据采集类型的格式转换为自定义的统一格式,按照采集策略采集原始数据;根据数据配置信息对原始数据进行判定;根据数据清理策略对原始数据进行处理;对原始数据进行类别判定找出目标移动数据;将目标移动数据推送到消息中间件,再存储到时序数据库中。本发明能覆盖通用数据采集类型,支撑海量数据处理。

权利要求 :

1.一种基于分布式的多数据源采集实现方法,其特征在于,包括如下步骤:

步骤1、获取多个外部数据源的原始数据并分析,得到数据配置信息的不同参数,并设置到任务子系统中;

步骤2、在所述任务子系统中添加一个或多个新增数据源,为每一个新增数据源配置具体的数据获取方式及连接信息、数据配置信息和数据清理策略;

步骤3、在所述任务子系统中新建采集任务指令,并下发给执行器;所述采集任务指令中包含有从任务子系统中选定的某一个目标数据源和采集策略;

步骤4、所述执行器接收该采集任务指令后,获取采集任务指令中目标数据源配置的数据获取方式及连接信息、数据配置信息和数据清理策略;

步骤5、对每一种数据采集类型配置对应的适配器,所述数据采集类型包括:数据流、数据文件、数据库和数据接口;若数据采集类型为数据流,则对应的适配器为数据流适配器,所述数据流适配器的输入为数据流格式,输出为自定义的统一格式,所述数据流适配器用于接入数据流格式的数据源,将数据流格式转换为自定义的统一格式;若数据采集类型为数据文件,则对应的适配器为文件适配器,所述文件适配器的输入为数据文件格式,输出为自定义的统一格式,所述文件适配器用于接入数据文件格式的数据源,将数据文件格式转换为自定义的统一格式;若数据采集类型为数据库,则对应的适配器为数据库适配器,所述数据库适配器的输入为数据库格式,输出为自定义的统一格式,所述数据库适配器用于接入数据库格式的数据源,将数据库格式转换为自定义的统一格式;若数据采集类型为数据接口,则对应的适配器为接口适配器,所述接口适配器的输入为数据接口格式,输出为自定义的统一格式,所述接口适配器用于接入数据接口格式的数据源,将数据接口格式转换为自定义的统一格式;

根据目标数据源配置的数据获取方式及连接信息判断出对应的数据采集类型,并根据判断出的数据采集类型选用对应的适配器进行接入,通过所述对应的适配器将对应的数据采集类型的格式转换为自定义的统一格式,再通过自定义的统一格式,并按照采集策略采集目标数据源发送的原始数据;

步骤6、根据目标数据源配置的数据配置信息对原始数据依次进行数据协议、数据规则和数据约束的判定;

步骤7、根据目标数据源配置的数据清理策略,对判定后的原始数据进行填充、更正或删除处理;对处理后的原始数据进行类别判定找出目标移动数据;

步骤8、计算所述目标移动数据的置信等级并标记,将置信等级标记后的目标移动数据推送到消息中间件中,使用消息中间件将数据处理和数据存储这两个操作解耦出来;存储子系统从消息中间件中拉取置信等级标记后的目标移动数据,并将置信等级标记后的目标移动数据进行格式化后存储到时序数据库中。

2.如权利要求1所述的一种基于分布式的多数据源采集实现方法,其特征在于,所述步骤1具体包括:步骤11、获取外部系统中已有的多个外部数据源的原始数据;

步骤12、根据多个外部数据源的原始数据进行特征分析;

步骤13、根据特征分析结果得到数据配置信息,并分成数据协议信息、数据规则信息和数据约束信息;

步骤14、将多个原始数据对应的数据协议信息、数据规则信息和数据约束信息的不同参数进行汇总;

步骤15、将汇总有不同参数的数据协议信息、数据规则信息和数据约束信息设置到任务子系统中。

3.如权利要求2所述的一种基于分布式的多数据源采集实现方法,其特征在于,所述数据协议信息包括:JT/T 808‑2011、JT/T 809‑2011、NMEA‑0183和自定义协议;

所述数据规则信息包括:数据结构、数据属性值映射、数据基本类型、属性值数据格式、属性和属性值的含义以及数据标准;

所述数据约束信息包括:数据完整性约束、非空约束、数据范围限制和数据长度限制。

4.如权利要求3所述的一种基于分布式的多数据源采集实现方法,其特征在于,所述步骤2具体包括:步骤21、在所述任务子系统中添加一个或多个新增数据源;

步骤22、每添加一个新增数据源时,为该新增数据源配置具体的一种数据获取方式及连接信息;

步骤23、每添加一个新增数据源时,调取任务子系统中含有不同参数的数据协议信息、数据规则信息和数据约束信息,根据用户需求选定数据协议信息中的一种参数、数据规则信息中的至少一种参数和数据约束信息中的至少一种参数进行配置;

步骤24、每添加一个新增数据源时,为该新增数据源配置对应的数据清理策略;步骤

22、步骤23和步骤24之间没有先后顺序。

5.如权利要求4所述的一种基于分布式的多数据源采集实现方法,其特征在于,所述数据获取方式包括:TCP长连接获取数据流、数据接口调用、数据库直接连接和数据文件读取;

所述连接信息包括:连接地址、连接端口、连接认证信息、数据文件目录和单个数据文件路径;根据数据获取方式不同需要的连接信息不同,当数据获取方式为TCP长连接获取数据流时,对应需要的连接信息为连接地址、连接端口和连接认证信息;当数据获取方式为数据接口调用时,对应需要的连接信息为连接地址、连接端口和连接认证信息;当数据获取方式为数据库直接连接时,对应需要的连接信息为连接地址、连接端口和连接认证信息;当数据获取方式为数据文件读取时,对应需要的连接信息包括数据文件目录或单个数据文件路径;

所述数据清理策略包括:对不满足约束条件的数据进行处理的策略、对数据值进行数据类型转换策略、数据格式转换策略、数据标准变更策略、重复处理策略和置信等级计算参数策略。

6.如权利要求5所述的一种基于分布式的多数据源采集实现方法,其特征在于,所述采集策略包括:采集数量、采集间隔、采集过滤参数和异常处理方式。

7.如权利要求6所述的一种基于分布式的多数据源采集实现方法,其特征在于,所述步骤5中按照采集策略采集目标数据源发送的原始数据;具体为:步骤51、根据所述采集策略中的采集数量和采集间隔进行周期性或者持续性采集目标数据源发送的原始数据;

步骤52、将所述原始数据进行特征分析,将采集到的错误参数进行过滤;

步骤53、根据特征分析结果判断是否出现异常中断的情况,若是,说明采集的原始数据无效,并根据异常处理方式结束此任务或继续下发采集任务指令重新执行;若否,则说明采集的原始数据有效,则进入步骤6。

8.如权利要求7所述的一种基于分布式的多数据源采集实现方法,其特征在于,所述步骤7具体包括:步骤71、判定出原始数据中数据约束的具体内容后,根据数据清理策略中的对不满足约束条件的数据进行处理的策略,对不满足约束条件的数据进行处理;具体是:将原始数据中的空字符进行删除和对数据完整性、数据范围和数据长度进行数据填充、更正或删除;

步骤72、根据数据清理策略中的对数据值进行数据类型转换策略,对数据值进行数据类型转换;

步骤73、根据数据清理策略中的数据格式转换策略,对数据值进行数据格式转换;

步骤74、根据数据清理策略中的数据标准变更策略,对非标准单位的数据值更正为标准单位;

步骤75、根据数据清理策略中的重复处理策略,多次重复步骤71‑步骤74以对数据值进行处理;

步骤76、对处理后的原始数据进行类别判定以找出目标移动数据。

9.如权利要求1所述的一种基于分布式的多数据源采集实现方法,其特征在于,所述步骤8具体包括:步骤81、根据所述目标移动数据并基于贝叶斯网络模型的算法预测目标物的移动轨迹;

步骤82、根据数据清理策略中的置信等级计算参数策略计算移动轨迹和实际移动数据的偏移值,通过所述偏移值与预设的置信等级范围区间进行比较得到所述偏移值所属的置信等级,并对所述偏移值对应的目标移动数据做置信等级标记;

步骤83、将置信等级标记后的目标移动数据推送到消息中间件中,使用消息中间件将数据处理和数据存储这两个操作解耦出来;存储子系统通过1个或多个存储节点从消息中间件中拉取置信等级标记后的目标移动数据,根据目标移动数据的数据量大小,动态更改每个存储节点拉取的数据范围和执行拉取数据的线程个数;并将置信等级标记后的目标移动数据进行格式化后存储到时序数据库中。

说明书 :

一种基于分布式的多数据源采集实现方法

技术领域

[0001] 本发明涉及多数据源采集领域,尤其涉及一种基于分布式的多数据源采集实现方法。

背景技术

[0002] 随着智能交通系统的发展,目标移动行为特征被广泛研究,面对日趋复杂的交通态势,实时、准确、可靠的目标移动数据采集是智能交通管理的基础,(如:自行车、电动车、公交车、出租车、货车、火车、船舶、飞机等)需要接入到云端的目标移动数据越来越多,各个类型数据交互的过程中面临各种数据交换和数据接入问题。而每种类型的数据因其来源的多样性、数据协议、数据格式不同都需要独立开发服务业务系统来实现该部分数据的接入及传输。
[0003] ETL(Extract‑Transform‑Load的缩写,即数据抽取、转换、装载的过程)技术是目前数据采集的主要解决方案,对各种分布的、异构的源数据进行抽取,按照预先设计的规则将不完整数据、重复数据以及错误数据等“脏”数据内容进行清洗,得到符合要求的“干净”数据,并集中存储到数据仓库中。目前数据采集类型包括:数据流、数据文件、数据库和数据接口,常用采集数据的ETL工具有:Kettle、Data Spider、Integrate.io、Talend、IBM DataStage、AWS Glue等。这些工具一般针对一种或两种数据采集类型,实现对多个数据源采集。例如:Kettle作为开源社区产出的工具,支持数据库和数据文本这两种数据采集类型。但是,它并不能覆盖目前所有的通用数据采集类型,如TCP长连接持续推送的数据流,且无法支撑海量数据处理。

发明内容

[0004] 有鉴于此,本发明的目的在于提出一种基于分布式的多数据源采集实现方法,主要为了实现通用、适用面广的,能够支撑接入来自异构数据源海量的目标移动数据,降低数据源接入复杂度、格式化处理数据并存储,方便业务系统接入使用。
[0005] 为了实现上述的技术目的,本发明所采用的技术方案为:
[0006] 本发明提供了一种基于分布式的多数据源采集实现方法,包括如下步骤:
[0007] 步骤1、获取多个外部数据源的原始数据并分析,得到数据配置信息的不同参数,并设置到任务子系统中;
[0008] 步骤2、在所述任务子系统中添加一个或多个新增数据源,为每一个新增数据源配置具体的数据获取方式及连接信息、数据配置信息和数据清理策略;
[0009] 步骤3、在所述任务子系统中新建采集任务指令,并下发给执行器;所述采集任务指令中包含有从任务子系统中选定的某一个目标数据源和采集策略;
[0010] 步骤4、所述执行器接收该采集任务指令后,获取任务指令中目标数据源配置的数据获取方式及连接信息、数据配置信息和数据清理策略;
[0011] 步骤5、对每一种数据采集类型配置对应的适配器,所述数据采集类型包括:数据流、数据文件、数据库和数据接口;若数据采集类型为数据流,则对应的适配器为数据流适配器,所述数据流适配器的输入为数据流格式,输出为自定义的统一格式,所述数据流适配器用于接入数据流格式的数据源,将数据流格式转换为自定义的统一格式;若数据采集类型为数据文件,则对应的适配器为文件适配器,所述文件适配器的输入为数据文件格式,输出为自定义的统一格式,所述文件适配器用于接入数据文件格式的数据源,将数据文件格式转换为自定义的统一格式;若数据采集类型为数据库,则对应的适配器为数据库适配器,所述数据库适配器的输入为数据库格式,输出为自定义的统一格式,所述数据库适配器用于接入数据库格式的数据源,将数据库格式转换为自定义的统一格式;若数据采集类型为数据接口,则对应的适配器为接口适配器,所述接口适配器的输入为数据接口格式,输出为自定义的统一格式,所述接口适配器用于接入数据接口格式的数据源,将数据接口格式转换为自定义的统一格式;
[0012] 根据目标数据源配置的数据获取方式及连接信息判断出对应的数据采集类型,并根据判断出的数据采集类型选用对应的适配器进行接入,通过所述对应的适配器将对应的数据采集类型的格式转换为自定义的统一格式,再通过自定义的统一格式,并按照采集策略采集目标数据源发送的原始数据;
[0013] 步骤6、根据目标数据源配置的数据配置信息对原始数据依次进行数据协议、数据规则和数据约束的判定;
[0014] 步骤7、根据目标数据源配置的数据清理策略,对原始数据进行填充、更正或删除处理;对处理后的原始数据进行类别判定找出目标移动数据;
[0015] 步骤8、计算所述目标移动数据的置信等级并标记,根据置信等级找出训练数据进行训练,将置信等级标记后的目标移动数据推送到消息中间件中,使用消息中间件将数据处理和数据存储这两个操作解耦出来,实现异步存储数据;存储子系统从消息中间件中拉取置信等级标记后的目标移动数据,并将置信等级标记后的目标移动数据进行格式化后存储到时序数据库中。
[0016] 进一步的,所述步骤1具体包括:
[0017] 步骤11、获取外部系统中已有的多个外部数据源的原始数据;
[0018] 步骤12、根据多个外部数据源的原始数据进行特征分析;
[0019] 步骤13、根据特征分析结果得到数据配置信息,并分成数据协议信息、数据规则信息和数据约束信息;
[0020] 步骤14、将多个原始数据对应的数据协议信息、数据规则信息和数据约束信息的不同参数进行汇总;
[0021] 步骤15、将汇总有不同参数的数据协议信息、数据规则信息和数据约束信息设置到任务子系统中。
[0022] 进一步的,所述数据协议信息包括:JT/T 808‑2011、JT/T 809‑2011、NMEA‑0183和自定义协议;
[0023] 所述数据规则信息包括:数据结构、数据属性值映射、数据基本类型、属性值数据格式、属性和属性值的含义以及数据标准;
[0024] 所述数据约束信息包括:数据完整性约束、非空约束、数据范围限制和数据长度限制。
[0025] 进一步的,所述步骤2具体包括:
[0026] 步骤21、在所述任务子系统中添加一个或多个新增数据源;
[0027] 步骤22、每添加一个新增数据源时,为该新增数据源配置具体的一种数据获取方式及连接信息;
[0028] 步骤23、每添加一个新增数据源时,调取任务子系统中含有不同参数的数据协议信息、数据规则信息和数据约束信息,根据用户需求选定数据协议信息中的一种参数、数据规则信息中的至少一种参数和数据约束信息中的至少一种参数进行配置;
[0029] 步骤24、每添加一个新增数据源时,为该新增数据源配置对应的数据清理策略;步骤22、步骤23和步骤24之间没有先后顺序。
[0030] 进一步的,所述数据获取方式包括:TCP长连接获取数据流、数据接口调用、数据库直接连接和数据文件读取;
[0031] 所述连接信息包括:连接地址、连接端口、连接认证信息、数据文件目录和单个数据文件路径;根据数据获取方式不同需要的连接信息不同,当数据获取方式为TCP长连接获取数据流时,对应需要的连接信息为连接地址、连接端口和连接认证信息;当数据获取方式为数据接口调用时,对应需要的连接信息为连接地址、连接端口和连接认证信息;当数据获取方式为数据库直接连接时,对应需要的连接信息为连接地址、连接端口和连接认证信息;当数据获取方式为数据文件读取时,对应需要的连接信息包括数据文件目录或单个数据文件路径;
[0032] 所述数据清理策略包括:对不满足约束条件的数据进行处理的策略、对数据值进行数据类型转换策略、数据格式转换策略、数据标准变更策略、重复处理策略和置信等级计算参数策略。
[0033] 进一步的,所述采集策略包括:获取每次采集数量、采集间隔、采集过滤参数和异常处理方式。
[0034] 进一步的,所述步骤5中按照采集策略采集目标数据源发送的原始数据;具体为:
[0035] 步骤51、根据所述采集策略中获取每次采集数量和采集间隔进行周期性或者持续性采集目标数据源发送的原始数据;
[0036] 步骤52、将所述原始数据进行特征分析,将采集到的错误参数进行过滤;
[0037] 步骤53、根据特征分析结果进行判断是否出现异常中断的情况,若是,说明采集的原始数据是无效的,则根据异常处理方式结束此任务或继续下发采集任务指令重新执行;若否,说明采集的原始数据是有效的,则进入步骤6。
[0038] 进一步的,所述步骤7具体包括:
[0039] 步骤71、判定出原始数据中数据约束的具体内容后,根据数据清理策略中的对不满足约束条件的数据进行处理的策略,对不满足约束条件的数据进行处理;具体是:将原始数据中的空字符进行删除和对数据完整性、数据范围和数据长度进行数据填充、更正或删除;
[0040] 步骤72、根据数据清理策略中的对数据值进行数据类型转换策略,对数据值进行数据类型转换;
[0041] 步骤73、根据数据清理策略中的数据格式转换策略,对数据值进行数据格式转换;
[0042] 步骤74、根据数据清理策略中的数据标准变更策略,对非标准单位的数据值更正为标准单位;
[0043] 步骤75、根据数据清理策略中的重复处理策略,多次重复步骤71‑步骤74对数据值进行处理;
[0044] 步骤76、对处理后的原始数据进行类别判定找出目标移动数据。
[0045] 进一步的,所述步骤8具体包括:
[0046] 步骤81、根据所述目标移动数据并基于贝叶斯网络的算法预测目标物的移动轨迹;
[0047] 步骤82、根据数据清理策略中的置信等级计算参数策略计算移动轨迹和实际移动数据的偏移值,通过所述偏移值与预设的置信等级范围区间进行比较得到所述偏移值所属的置信等级,并对所述偏移值对应的目标移动数据做置信等级标记,置信等级越高,目标移动数据的预测结果越准确;
[0048] 步骤83、将信等级标记为高的目标移动数据作为训练数据,将所述训练数据提供到贝叶斯网络模型进行训练;
[0049] 步骤84、将置信等级标记后的目标移动数据推送到消息中间件中,使用消息中间件将数据处理和数据存储这两个操作解耦出来,实现异步存储数据;存储子系统通过1个或多个存储节点从消息中间件中拉取置信等级标记后的目标移动数据,根据目标移动数据的数据量大小,动态更改每个存储节点拉取的数据范围和执行拉取数据的线程个数,进而调节目标移动数据的数据存储速率;并将置信等级标记后的目标移动数据进行格式化后存储到时序数据库中。
[0050] 采用上述的技术方案,本发明与现有技术相比,其具有的有益效果为:
[0051] 对已知数据协议的数据源实现各种适配器,覆盖了比较全面的数据源采集类型,支持的数据采集类型包括:数据流、数据文件、数据库、数据接口等,为不同的数据采集类型配置不同的适配器,适配器的输入为数据采集类型的格式,输出为自定义的统一格式,对应的适配器用于接入对应数据采集类型的数据源,将对应数据采集类型的格式转换为自定义的统一格式,这样就可以通过适配器实现对不同数据采集类型的接入,并统一数据输出格式。因此,对于不同的数据采集类型,均可采用对应的适配器转换格式后进行采集数据,就可以覆盖目前所有的通用数据采集类型,实现通用化,降低数据源接入复杂度、格式化处理数据难度,方便业务系统接入使用,能够支撑接入来自异构数据源的目标移动数据。
[0052] 通过数据源的数据协议对数据内容进行规则、模式和约束等方式识别原始数据的无效值,并根据策略删除或更正错误,通过算法对每个目标移动数据进行置信等级划分,规范统一数据存储格式,并将加工后的目标移动数据推送到消息中间件,使用消息中间件将数据处理和数据存储这两个操作解耦出来,二者互不影响,实现异步存储数据,可以调节数据存储速率达到最佳稳定运行范围;再通过存储子系统从消息中间件中拉取目标移动数据并存储到时序数据库,能有效减少数据存储执行过程中网络、磁盘IO引起的等待耗时,提高执行器数据处理效率,支撑海量数据处理;避免了大量数据直接存储到时序数据库引起的性能问题。

附图说明

[0053] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0054] 图1是本发明实施例提供的一种基于分布式的多数据源采集实现方法的执行流程图。
[0055] 图2是本发明实施例提供的多数据源采集任务管理流程图。
[0056] 图3是本发明实施例提供的多数据源采集任务执行流程图。
[0057] 图4是本发明实施例提供的一种基于分布式的多数据源采集系统的架构图。
[0058] 图5是本发明实施例提供的执行器、数据清理模块和存储子系统在执行过程中的流程图。

具体实施方式

[0059] 下面结合附图和实施例,对本发明作进一步的详细描述。特别指出的是,以下实施例仅用于说明本发明,但不对本发明的范围进行限定。同样的,以下实施例仅为本发明的部分实施例而非全部实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0060] 请参见图1‑图3,本发明的一种基于分布式的多数据源采集实现方法,包括如下步骤:
[0061] 步骤1、获取多个外部数据源的原始数据并分析,得到数据配置信息的不同参数,并设置到任务子系统中;将已有的参数设置到任务子系统中,在任务子系统中配置新增数据源时,可以直接调取任务子系统中的参数,参数种类多不易遗漏,选择参数的选择性更广。
[0062] 在本实施例中,所述步骤1具体包括:
[0063] 步骤11、获取外部系统中已有的多个外部数据源的原始数据;
[0064] 步骤12、根据多个外部数据源的原始数据进行特征分析;
[0065] 步骤13、根据特征分析结果得到数据配置信息,并分成数据协议信息、数据规则信息和数据约束信息;
[0066] 步骤14、将多个原始数据对应的数据协议信息、数据规则信息和数据约束信息的不同参数进行汇总;
[0067] 步骤15、将汇总有不同参数的数据协议信息、数据规则信息和数据约束信息设置到任务子系统中。
[0068] 其中,所述数据协议信息包括:JT/T 808‑2011、JT/T 809‑2011、NMEA‑0183和自定义协议;
[0069] 所述数据规则信息包括:数据结构、数据属性值映射、数据基本类型(如:字符串、整数、小数、布尔、日期等)、属性值数据格式(如:时间日期格式等)、属性和属性值的含义以及数据标准(如:坐标系类型、所属时区、速度单位等标准);
[0070] 所述数据约束信息包括:数据完整性约束、非空约束、数据范围限制和数据长度限制。
[0071] 例如:获取数据源1中的原始数据1,提取原始数据1中的特征,原始数据1中包含有数据协议信息:JT/T 808‑2011、数据规则信息:数据结构、数据约束信息:数据完整性约束;
[0072] 获取数据源2中的原始数据2,提取原始数据2中的特征,原始数据2中包含有数据协议信息:JT/T 809‑2011、数据规则信息:数据属性值映射、属性和属性值的含义、数据约束信息:非空约束;
[0073] 获取数据源3中的原始数据3,提取原始数据3中的特征,原始数据3中包含有数据协议信息:NMEA‑0183、数据规则信息:数据基本类型和属性值数据格式、数据约束信息:数据范围限制和数据长度限制;
[0074] 获取数据源4中的原始数据4,提取原始数据4中的特征,原始数据4中包含有数据协议信息:自定义协议1、数据规则信息:数据结构、属性值数据格式及数据标准、数据约束信息:数据完整性约束、非空约束、数据范围限制和数据长度限制。
[0075] 从以上4组数据源中可以找出数据协议信息的不同参数有:JT/T 808‑2011、JT/T 809‑2011、NMEA‑0183和自定义协议1;数据规则信息的不同参数有:数据结构、数据属性值映射、数据基本类型、属性值数据格式、属性和属性值的含义以及数据标准;数据约束信息的不同参数有:数据完整性约束、非空约束、数据范围限制和数据长度限制。这些参数是已有的数据中常见的参数,对这些参数设置到任务子系统中。
[0076] 步骤2、在所述任务子系统中添加一个或多个新增数据源,为每一个新增数据源配置具体的数据获取方式及连接信息、数据配置信息和数据清理策略;对新增数据源进行配置,使得将该数据源导入采集任务指令中进行下发后,执行器可以根据所下发的数据源解析出所对应的所有配置信息,保证了数据源与配置信息的关联性,能更好地匹配出对应的策略进行操作,提高了采集效率。
[0077] 在本实施例中,所述步骤2具体包括:
[0078] 步骤21、在所述任务子系统中添加一个或多个新增数据源;
[0079] 步骤22、每添加一个新增数据源时,为该新增数据源配置具体的一种数据获取方式及连接信息;
[0080] 步骤23、每添加一个新增数据源时,调取任务子系统中含有不同参数的数据协议信息、数据规则信息和数据约束信息,根据用户需求选定数据协议信息中的一种参数、数据规则信息中的至少一种参数和数据约束信息中的至少一种参数进行配置;
[0081] 步骤24、每添加一个新增数据源时,为该新增数据源配置对应的数据清理策略;步骤22、步骤23和步骤24之间没有先后顺序。
[0082] 其中,所述数据获取方式包括:TCP长连接获取数据流、数据接口调用、数据库直接连接和数据文件读取;
[0083] 所述连接信息包括:连接地址、连接端口、连接认证信息、数据文件目录和单个数据文件路径;根据数据获取方式不同需要的连接信息不同,当数据获取方式为TCP长连接获取数据流时,对应需要的连接信息为连接地址、连接端口和连接认证信息;当数据获取方式为数据接口调用时,对应需要的连接信息为连接地址、连接端口和连接认证信息;当数据获取方式为数据库直接连接时,对应需要的连接信息为连接地址、连接端口和连接认证信息;当数据获取方式为数据文件读取时,对应需要的连接信息包括数据文件目录或单个数据文件路径;
[0084] 所述数据清理策略包括:对不满足约束条件的数据进行处理的策略(删除、填充、替换)、对数据值进行数据类型转换策略(替换)、数据格式转换策略(替换)、数据标准变更策略(替换)、重复处理策略(更新、忽略)和置信等级计算参数策略。
[0085] 步骤3、在所述任务子系统中新建采集任务指令,并下发给执行器;具体地,通过时间轮(Timing Wheel)为基础的调度中心将任务指令下发至空闲的执行器;所述采集任务指令中包含有从任务子系统中选定的某一个目标数据源和采集策略;其中,所述采集策略包括:获取每次采集数量、采集间隔、采集过滤参数和异常处理方式。将包含有数据源和采集策略的采集任务下发给执行器,通过数据源可以解析出所有配置的信息,并可根据配置的信息和采集策略进行数据的采集操作。
[0086] 一个采集任务对应一个数据源,采集任务和数据源是一对一的关系。一个数据源可以被多个采集任务调用,一个采集任务对应一个采集策略,同一个数据源可以创建多个采集任务,每个采集任务可以有不同的采集策略。
[0087] 步骤4、所述执行器接收任务调度中心下发的该采集任务指令后,获取任务指令中目标数据源配置的数据获取方式及连接信息、数据配置信息和数据清理策略;
[0088] 步骤5、对每一种数据采集类型配置对应的适配器,所述数据采集类型包括:数据流、数据文件、数据库和数据接口;若数据采集类型为数据流,则对应的适配器为数据流适配器,所述数据流适配器的输入为数据流格式,输出为自定义的统一格式(包含目标标识、数据源标识、时间戳、经度、纬度、海拔、方向、速度、拓展信息等其他信息),所述数据流适配器用于接入数据流格式的数据源,将数据流格式转换为自定义的统一格式;若数据采集类型为数据文件,则对应的适配器为文件适配器,所述文件适配器的输入为数据文件格式,输出为自定义的统一格式,所述文件适配器用于接入数据文件格式的数据源,将数据文件格式转换为自定义的统一格式;若数据采集类型为数据库,则对应的适配器为数据库适配器,所述数据库适配器的输入为数据库格式,输出为自定义的统一格式,所述数据库适配器用于接入数据库格式的数据源,将数据库格式转换为自定义的统一格式;若数据采集类型为数据接口,则对应的适配器为接口适配器,所述接口适配器的输入为数据接口格式,输出为自定义的统一格式,所述接口适配器用于接入数据接口格式的数据源,将数据接口格式转换为自定义的统一格式;若需要支持新的数据采集类型,如kafka中间件来源,仅需要在实现类中新增采集类型,执行器程序中新增kafka来源实现类,继承数据接入适配器抽象类,实现kafka采集接入的连接方法、数据读取方法、数据格式化方法,无需对其他处理模块或程序进行代码调整。
[0089] 适配器模式(Adapter Pattern)又叫做变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工作,属于结构型设计模式。例如,当前系统存在A接口和B接口,客户只支持访问A接口,但是当前系统没有A接口对象,只有B接口对象,但客户无法识别B接口,因此需要通过一个适配器C,将B接口内容转换成A接口,从而使得客户能够从A接口获取得到B接口内容。
[0090] 在软件开发中,基本上任何问题都可以通过增加一个中间层进行解决。适配器模式其实就是一个中间层。综上,适配器模式其实起着转化/委托的作用,将一种接口转化为另一种符合需求的接口。该模式的核心思想就是将类中原本不适合当前客户端使用的接口转换成适用的接口,从而大大提高程序的兼容性。
[0091] 软件系统中多个组件功能类似,但接口不统一且可能会经常切换时,可使用适配器模式,使得客户端可以以统一的接口使用它们。
[0092] 适配器实现方式:声明客户端接口, 描述客户端如何与服务交互。创建遵循客户端接口的适配器类。 所有方法暂时都为空。在适配器类中添加一个成员变量用于保存对于服务对象的引用。 通常情况下会通过构造函数对该成员变量进行初始化, 但有时在调用其方法时将该成员变量传递给适配器会更方便。依次实现适配器类客户端接口的所有方法。 适配器会将实际工作委派给服务对象, 自身只负责接口或数据格式的转换。客户端必须通过客户端接口使用适配器。这样就可以在不影响客户端代码的情况下修改或扩展适配器。
[0093] 软件通过设计模式中的适配器模式支持各种方式的数据接入。对每一种接入类型开发对应的数据获取的适配器。比如TCP长连接的数据流适配器实现,通过连接地址、连接端口、连接认证信息来获取原始数据。比如数据文件的适配器实现,通过单个文件或文件目录,读取数据文件中的原始数据内容。这些适配器的操作流程都是从各种方式中获取原始数据,再将数据输出到下一个步骤处理。
[0094] 根据目标数据源配置的数据获取方式及连接信息判断出对应的数据采集类型,并根据判断出的数据采集类型选用对应的适配器进行接入,通过所述对应的适配器将对应的数据采集类型的格式转换为自定义的统一格式,再通过自定义的统一格式,并按照采集策略采集目标数据源发送的原始数据;
[0095] 在本实施例中,所述步骤5中按照采集策略采集目标数据源发送的原始数据;具体为:
[0096] 步骤51、根据所述采集策略中获取每次采集数量和采集间隔进行周期性或者持续性采集目标数据源发送的原始数据;
[0097] 步骤52、将所述原始数据进行特征分析,将采集到的错误参数进行过滤;
[0098] 步骤53、根据特征分析结果进行判断是否出现异常中断的情况,若是,说明采集的原始数据是无效的,则根据异常处理方式结束此任务或继续下发采集任务指令重新执行;若否,说明采集的原始数据是有效的,则进入步骤6。
[0099] 步骤6、根据目标数据源配置的数据配置信息对原始数据依次进行数据协议、数据规则和数据约束的判定;
[0100] 步骤7、根据目标数据源配置的数据清理策略,对原始数据进行填充、更正或删除处理;对处理后的原始数据进行类别判定找出目标移动数据。
[0101] 在本实施例中,所述步骤7具体包括:
[0102] 步骤71、判定出原始数据中数据约束的具体内容后,根据数据清理策略中的对不满足约束条件的数据进行处理的策略,对不满足约束条件的数据进行处理;具体是:将原始数据中的空字符进行删除和对数据完整性、数据范围和数据长度进行数据填充、更正或删除;
[0103] 步骤72、根据数据清理策略中的对数据值进行数据类型转换策略,对数据值进行数据类型转换;
[0104] 步骤73、根据数据清理策略中的数据格式转换策略,对数据值进行数据格式转换;
[0105] 步骤74、根据数据清理策略中的数据标准变更策略,对非标准单位的数据值更正为标准单位;
[0106] 步骤75、根据数据清理策略中的重复处理策略,多次重复步骤71‑步骤74对数据值进行处理;
[0107] 步骤76、对处理后的原始数据进行类别判定找出目标移动数据。
[0108] 比如数据清洗策略中设置了:1.目标标识非空约束则删除;2.目标移动角度类型转换为“数字”策略;3.数据时间格式转换为“时间戳”策略;4.速度单位转换为“米/秒”策略。
[0109] 原始数据中根据属性值映射关系提取目标标识信息,若目标标识的值是空字符粗,根据策略1删除此数据,继续处理下一条数据。原始数据中根据属性值映射关系提取角度信息,原始内容为“30”,根据2策略,可以直接转换为数字 30,继续处理数据。原始数据中根据属性值映射关系提取时间信息,原始内容为“2023‑05‑27 22:22:23”,根据3策略,将此信息变更为1685197343000,继续处理数据。原始数据中根据属性值映射关系提取速度信息,原始内容为“100 km/h”,根据4策略,将此信息变更为“27.77 m/s”,继续处理数据。
[0110] 在本实施例中,所述步骤7之后还包括:
[0111] 步骤8、计算所述目标移动数据的置信等级并标记,根据置信等级找出训练数据进行训练,将置信等级标记后的目标移动数据推送到消息中间件中,使用消息中间件将数据处理和数据存储这两个操作解耦出来,实现异步存储数据;存储子系统从消息中间件中拉取置信等级标记后的目标移动数据,并将置信等级标记后的目标移动数据进行格式化后存储到时序数据库中。
[0112] 在本实施例中,所述步骤8具体包括:
[0113] 步骤81、根据所述目标移动数据并基于贝叶斯网络的算法预测目标物的移动轨迹;贝叶斯网络(Bayesian Networks)也称为信度网、因果网,是指基于概率分析、图论的一种不确定性知识的表达和推理的模型。
[0114] 步骤82、根据数据清理策略中的置信等级计算参数策略计算移动轨迹和实际移动数据的偏移值,通过所述偏移值与预设的置信等级范围区间进行比较得到所述偏移值所属的置信等级,并对所述偏移值对应的目标移动数据做置信等级标记,置信等级越高,目标移动数据的预测结果越准确;
[0115] 步骤83、将信等级标记为高的目标移动数据作为训练数据,将所述训练数据提供到贝叶斯网络模型进行训练;算法执行器输出预测的未来轨迹,与当前目标移动数据的位置偏移值,数据类别的预值计算置信等级。提供到模型训练继续提高算法的准确性。
[0116] 步骤84、将置信等级标记后的目标移动数据推送到消息中间件中,使用消息中间件将数据处理和数据存储这两个操作解耦出来,实现异步存储数据;存储子系统通过1个或多个存储节点从消息中间件中拉取置信等级标记后的目标移动数据,根据目标移动数据的数据量大小,动态更改每个存储节点拉取的数据范围和执行拉取数据的线程个数,进而调节目标移动数据的数据存储速率;并将置信等级标记后的目标移动数据进行格式化后存储到时序数据库中;供目标系统接入使用。本发明能够支撑接入来自异构数据源海量的目标移动数据,降低数据源接入复杂度、格式化处理数据并存储,方便业务系统接入使用。
[0117] 如图4‑图5所示,本发明还提供一种基于分布式的多数据源采集系统,应用于集群服务,所述集群包括多个采集节点。该系统包括:平台管理系统、任务子系统、存储子系统、执行器和运算器。平台管理系统、任务子系统、存储子系统基于流行的 J2EE 技术栈,应用稳定的 Spring Cloud 微服务框架进行构建。
[0118] 平台管理系统,用于操作用户账号权限、基础信息、操作日志、节点监控(监控管理各节点运行情况,)等基础服务;主动发现异常采集节点并重新下发采集任务到空闲节点,同时发送通知,相比于Kettle等现有采集工具,本发明更适合长时间稳定的无人值守运行。系统可用性提高至99.99%,减少人工干预处理频次。
[0119] 任务子系统,用于管理数据源、数据规则、策略、采集任务、任务调度等核心功能。可以方便地实现多数据源的管理,对数据协议、数据规则、数据约束、数据清理策略进行增删改查。创建采集任务,配置采集的数据源、策略、规则确认后即可通过任务调度下发采集任务;支持通过配置和修改数据源采集方式、策略、规则等配置实现对采集任务的添加、更改、执行、暂停和取消。接入已知协议的数据源,仅需通过配置调整即可唤起采集节点执行采集任务。接入新数据协议的数据,只需要配置数据源接入方式以及对应的处理规则,就可以添加采集任务并配置采集任务信息,执行采集任务。节约90%对接开发执行周期。
[0120] 存储子系统,实现对外统一的数据权限管理、缓存管理、持久化存储以及对外统一的数据查询服务。通过消费执行器推送的数据,根据预设的要求,对最新的目标移动数据进行缓存刷新、通过MQTT协议实时推送目标移动数据、使用TDengine 数据库持久化存储目标移动数据;
[0121] 执行器,用于通过nodejs语言进行开发,执行器通过任务调度中心唤起,接收采集任务指令后立即开始执行。每个执行器包含任务初始化服务、任务执行服务和数据处理服务;任务初始化服务包括加载任务信息、数据源连接、采集策略、数据规则应用、解析任务信息加载数据源的适配器,采用对应的数据获取方式接收所述数据源发送的原始数据,并应用任务的数据处理规则、处理策略;任务执行服务包括接收原始数据、数据清洗、通过三维七参数转换模型转换目标移动数据、数据类型判定、数据置信度计算和数据输出,通过任务的数据处理规则、处理策略对原始数据进行处理,并统一目标移动数据、对数据分类并计算置信度,最后将处理后的目标移动数据推送到平台存储;分布式部署在不同服务器节点上,支持多个数据源在不同服务器节点上并行采集,避免单机运行由网络数据传输、硬盘读写速度等物理环境的瓶颈,大大提高数据采集效率。
[0122] 运算器,用于通过python语言进行开发,基于贝叶斯网络实现预测算法,提供目标移动数据输入,推测未来轨迹并输出的功能;通过已有目标移动数据,实现目标移动数据的轨迹预测,为实现目标移动的轨迹重建、异常行为识别和导航路径规划应用提供数据依据;将目标移动数据这类带时间标签的数据存储到分布式时序数据库中。相比于传统的关系型数据库,可以节省50%的存储空间,有效降低磁盘I/O,利于实现数据的高效存储、检索和分析处理。
[0123] 数据清理模块,用于采用数据清理策略对数据进行清理操作,包括搜寻并确定错误、纠正错误或删除数据、数据分类和置信等级判定、获取符合要求的数据。
[0124] 以上所述仅为本发明的部分实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所作的等效装置或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。