CN101968793B - 一种基于异构数据源数据核对的方法和系统 - Google Patents
一种基于异构数据源数据核对的方法和系统 Download PDFInfo
- Publication number
- CN101968793B CN101968793B CN2010102621126A CN201010262112A CN101968793B CN 101968793 B CN101968793 B CN 101968793B CN 2010102621126 A CN2010102621126 A CN 2010102621126A CN 201010262112 A CN201010262112 A CN 201010262112A CN 101968793 B CN101968793 B CN 101968793B
- Authority
- CN
- China
- Prior art keywords
- data
- checked
- native system
- task
- configuration
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于异构数据源数据核对的方法和系统,该方法根据用户通过人机交互界面设定的配置规则,能将外系统数据与本系统数据进行数据核对,并可以将核对的结果根据所述配置规则进行自动数据同步,或提交至人机交互界面,经用户手工确认后进行数据同步。其中所述本系统和所述外系统为异构数据源。本发明构造了一种基于异构数据源数据核对的系统。实施本发明的技术方案,能使得数据核对过程更加简单、智能,新增数据核对任务、原数据核对任务的数据结构及数据核对逻辑的变化均不需要程序员的参与,普通工程实施人员就可以通过人机交互界面进行规则配置来完成异构数据源数据的核对过程。
Description
技术领域
本发明涉及通信技术领域,更具体地说,涉及一种基于异构数据源数据核对的方法和系统。
背景技术
当前电信行业有以下几点特点:
1.网络庞大,网络设备种类众多,管理系统繁多,多个管理系统之间存在数据同步的问题。
2.每个管理系统的数据模型都有所不同,根据各自的系统需求,相同资源所包含的属性差别比较大。给多个系统之间进行数据同步增加了复杂度。
3.电信行业的资源数据不单纯是以某个系统为准的数据同步过程,而是相对两个或多个系统的数据比对过程,比对结束后,将比对结果呈现给用户,由用户人为确定哪些数据需要同步,哪些数据不需要同步。
4.数据核对的过程不是简单的数据比较的过程,其中包含一定的运算及格式转换、命名规则转换等过程。
5.数据接口不同,有的系统对外提供数据库接口、有的系统对外提供CORBA接口、或者TL1、SNMP接口,系统接口不同,则数据来源也不同。不能通过简单的一种方式实现数据核对过程。
基于上述五点,有必要研究出一种基于异构数据源的数据核对的方法,该方法可以广泛应用在电信管理软件中,实现本系统与其他系统的数据核对过程。
对于电信行业,多个管理系统之间所进行的数据核对过程,是一个非常频繁的过程。如资源系统与专业网管系统之间,专业网管与被管网元之间。其生产厂家不同,管理对象不同,应用需求不同,造成相同资源对象的对象名称、对象的属性及属性的类型都有可能不同。在对这样的资源对象进行两个不同系统间核对时,就存在对象名称及对象属性的转换过程。
现在普遍存在的方法是将外系统的数据先按本系统的数据结构转换并导入,再将两个系统的数据进行核对。但这种核对方法存在的问题是:程序员需要事先要对外系统的数据结构进行研究,而且需要编写相应的代码,通过所编写的代码将外系统数据按本系统的数据需求转换成本系统的数据,然后再进行一一对比。因此,这种核对方法复杂,且需要程序员的参与,普通工程实施人员无法完成数据的核对。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述异构数据源的数据核对方法复杂的缺陷,提供一种简单的基于异构数据源数据核对的方法。
本发明解决其技术问题所采用的技术方案是:构造一种基于异构数据源数据核对的方法,接收用户通过人机交互界面设定的配置规则,根据所述配置规则对本系统数据和外系统数据进行核对,所述本系统和所述外系统为异构数据源。
本发明还构造一种基于异构数据源数据核对的系统,包括:
接口模块,用于接收用户通过人机交互界面制定的配置规则;
核对模块,用于根据所述配置规则对本系统数据和外系统数据进行核对,所述本系统和所述外系统为异构数据源。
实施本发明的基于异构数据源数据核对的方法和系统,使得数据核对更加简单,且不需要程序员的参与,普通工程实施人员就可以完成核对过程。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1A是本发明基于异构数据源数据核对的方法实施例一的流程图;
图1B是本发明基于异构数据源数据核对的系统实施例一的逻辑图;
图2A是本发明基于异构数据源数据核对的方法实施例二的流程图;
图2B是本发明基于异构数据源数据核对的系统实施例二的逻辑图;
图3是本发明基于异构数据源数据核对的方法实施例三的时序图;
图4A是自动核对的方法实施例一的流程图;
图4B是手工核对的方法实施例一的流程图。
具体实施方式
如图1A所示,在本发明基于异构数据源数据核对的方法实施例一的流程图中,该核对方法包括以下步骤:
S100.接收用户通过人机交互界面制定的配置规则;
S200.根据所述配置规则对本系统数据和外系统数据进行核对,所述本系统和所述外系统为异构数据源。
在图1B示出的本发明基于异构数据源数据核对的系统实施例一的逻辑图中,该系统为后台服务CheckServ,在该实施例中,核对系统包括接口模块100和核对模块200,其中,
接口模块100为系统与其他服务的接口,用于实现与人机界面的交互,以及对采集器的调用等,人机界面的交互包括接收用户制定的配置规则,将核对结果呈现给用户等;对采集器的调用如通过采集器采集外系统数据。接口模块100可为CORBA命名服务接口或JMS接口,一般在大型分布式系统中选用付费的CORBA命名服务接口以保障系统的通信交互,小系统中则选用JMS接口;
核对模块200,用于根据所述配置规则对本系统数据和外系统数据进行核对。
优选地,该核对的系统还可包括定时任务触发模块,定时任务触发模块为系统自动核对时的事件触发源,通常为系统自定义的计时器。
优选地,所制定的配置规则包括:
确定需要进行核对的数据,并在本系统内建立信息表,所述信息表的内容为待核对的本系统资源对象;
配置数据核对任务,并配置核对任务的触发类型和处理类型,如,核对任务的触发类型包括手工核对和自动核对;核对任务的处理类型包括核对结果进行手动确认和核对结果自动确认;
配置设备指令集和对应的采集器;
为所述数据核对任务配置子任务,并将所述子任务与由至少一条设备指令组成的一组设备指令集做关联,优选地,每组指令集中的指令间具备关联关系,如第二条指令中的某参数需从第一条指令的设备回复报告中获取;
配置设备指令的回复数据报文的适配规则,根据所述适配规则从外系统动态提取数据,并将所提取的数据与所述信息表的信息内容做映射。如适配规则为:对所述回复数据报文的至少两个选定数据进行下面至少一种基本运算:加、减、乘、除;和/或,对所述回复数据报文的至少两个选定数据进行下面至少一种处理:过滤、匹配、去空格、拼接;
配置核对规则,所述核对规则确定核对数据项。
图2A本发明基于异构数据源数据核对的方法实施例二的流程图,该核对方法首先要接收用户通过人机交互界面设定的配置规则,该配置规则如上所述,然后开始进行下面的步骤:
S201.将数据核对任务分解成至少一个子任务,每一个子任务都与至少由一条设备指令组成的设备指令集相关联,优选每组指令集中的指令间具备关联关系,如第二条指令中的参数需从第一条指令的设备回复报告中获取;
S202.分别根据每组设备指令集,通过调用相应的采集器从外系统采集原始数据,并将所采集的原始数据转换成文本数据,所述文本数据为相应的设备指令对应的回复数据报文;
S203.根据所述适配规则对所述文本数据进行动态适配处理,以生成本系统可识别的资源对象,所述本系统可识别的资源对象对应所述本系统的信息表的一部分,所述本系统的信息表的内容为待核对的本系统资源对象;
S204.将每个子任务所对应生成的本系统可识别的资源对象进行组装,以生成待核对的外系统资源对象,所述待核对的外系统资源对象对应所述本系统的信息表;
S205.根据所确定的核对数据项,将待核对的外系统资源对象与本系统的信息表进行比对,并标注比对结果,如,标注哪些对象是外系统有而本系统没有的(即新增的资源对象),哪些对象是外系统没有而本系统有的(即需要清除的资源对象),哪些对象唯一标识相同,但某些属性值不同(即需要更新的资源对象)。
在图2B示出的本发明基于异构数据源数据核对的系统实施例二的逻辑图中,该核对系统包括接口模块100和核对模块200,其中,接口模块100与核对系统实施例一的接口模块相同,在此不做赘述,以下仅说明核对模块200,该核对模块200包括以下几个部分:
任务分解单元201,用于将数据核对任务分解成至少一个子任务,每一个子任务都与由至少一条设备指令组成的设备指令集相关联;
操作单元202,用于分别根据每组设备指令集,通过调用相应的采集器从外系统采集原始数据,并将所采集的原始数据转换成文本数据,所述文本数据为相应的设备指令对应的回复数据报文;
报告分析单元203,用于根据所述适配规则对所述文本数据进行动态适配处理,以生成本系统可识别的资源对象,所述本系统可识别的资源对象对应所述本系统的信息表的一部分;
数据组装单元204,用于将每个子任务所对应生成的本系统可识别的资源对象进行组装,以生成待核对的外系统资源对象,所述待核对的外系统资源对象对应所述本系统的信息表;
核对单元205,用于根据所确定的核对数据项,将待核对的外系统资源对象与本系统的信息表进行比对,并标注比对结果,然后根据核对规则进行数据同步处理。
下面以一个例子来具体说明如何进行异构数据源的数据核对:比如,目前需要进行自动核对移动基站数据,那么首先,确定需要进行核对的数据为移动基站数据,在本系统内建立基站信息表,其中基站信息表假定包括6项信息;然后通过人机界面配置基站数据核对任务,每天由系统凌晨2点开始自动进行基站数据核对,不需要用户对核对结果进行手工确认,所以,核对任务的触发类型为自动触发,核对任务的处理类型为自动确认。假定到设备上提取基站数据需要3条设备指令,那么将基站数据核对任务进行任务分解,配置3个子任务,每个子任务对应1条设备指令,将这3条设备指令通过人机界面与基站数据核对任务的子任务进行关联,其中,配置设备指令2的基站编号参数在设备指令1的回复报告中可获取。接着,根据设备指令1调用采集器从移动基站采集原始数据,并将所采集的原始数据转换成文本数据,该文本数据为1设备指令1所对应的回复数据报文,同样地,根据设备指令2得到设备指令2所对应的文本数据,根据设备指令3得到设备指令3所对应的文本数据。然后,根据所制定的适配规则将每条设备指令所对应的文本数据进行动态适配处理,以生成本系统可识别的资源对象,且每条设备指令所对应的本系统可识别的资源对象都对应基站信息表内容做映射。例如,在该实施例中,根据所制定的适配规则对设备指令1所对应的文本数据进行以下处理:将该文本数据中数据行的第3行的第3、4、5列的数据相加,以生成设备指令1对应的本系统可识别的资源对象,且该本系统可识别的资源对象对应系统内基站信息表的第一个字段的信息内容;同样地,根据所制定的适配规则对设备指令2所对应的文本数据进行以下处理:将该文本数据中的第7行的2、5、7列的数据进行对“*”字符的过滤后再进行字符串拼接,以生成设备指令2对应的本系统可识别的资源对象,且该本系统可识别的资源对象对应系统内基站信息表的第2个字段的信息内容;同样地,对设备指令3所对应的文本数据进行处理以生成设备指令3对应的本系统可识别的资源对象,且该本系统可识别的资源对象对应系统内基站信息表的第3个字段的信息内容,然后将3条设备指令对应的本系统可识别的资源对象进行组装,以生成待核对的外系统资源对象,该待核对的外系统资源对象与系统内的基站信息表有映射关系。最后,配置需要核对的数据项,比如,以基站信息表中的基站编号为关键字,核对基站信息表中的数据项3、4、5、6的数据内容。
图3是本发明基于异构数据源数据核对的方法实施例三的时序图,在该核对方法中,为更简单地说明核对方法,假设该数据核对任务仅有一个子任务,且该子任务仅与一条设备指令相关。首先,触发该核对任务,进入核对过程,根据该设备指令,,调用与外系统的接口协议相对应的采集器,从外系统接口采集外系统的原始数据,然后接收该设备指令的回复数据报文,所接收的回复数据报文为由所采集的原始数据所转换成的文本数据,并根据适配规则对该文本数据进行对象转换,以生成系统可识别的资源对象,并在采集完毕后通知核对。同样地,将本系统的资源对象根据适配规则也进行对象转换,以生成转换后的系统资源对象,即本系统待核对的资源对象,也即本系统信息表,并在转换完成后通知核对。应当说明的是,本系统信息表其实也为在之前核对时根据外系统数据所更新或新增的数据。最后,将上述本系统可识别的资源对象与本系统信息表进行比对,并标注比对结果,应当说明的是,所生成的本系统可识别的资源对象由于只与一个子任务相对应,且该本系统可识别的资源对象与系统信息表有映射关系,所以该本系统可识别的资源对象仅对应本系统信息表的一项信息。标注比对结果可以是,标注哪些对象是外系统有而本系统没有的(即新增的资源对象),哪些对象是外系统没有而本系统有的(即需要清除的资源对象),哪些对象唯一标识相同,但某些属性值不同(即需要更新的资源对象)。
下面以3G网管为例,分别介绍数据核对的两种方式:一种是自动核对,另一种是手工核对。图4A和图4B分别是本发明自动核对和手工核对方法实施例一的流程图。在图4A和图4B的方法中,还分别介绍了配置数据自动核对和配置数据手工核对的处理流程及与周围其它服务之间的交互。其中,NotifyServ为人机交互界面与CheckServ间的消息分发服务;文本适配器为通用报告适配器;Agent为数据入库及采集器调度的代理服务;采集器为针对不同协议的指令交互及数据采集的服务。
在图4A中,由于自动核对触发是由系统内的计时器触发,所以当定时时间到达,开始进行自动数据核对。首先获取定时任务,CheckServ将配置采集连接建立请求通过Agent发送至采集器,若连接成功,CheckServ则将该数据核对任务分解成若干子任务,每一个子任务对应由至少一条设备指令组成的设备指令集,然后,根据第一条设备指令,将采集指令下发请求通过Agent发送至采集器,采集器采集外系统的数据并形成文本,接着调用文本适配器将所采集到的数据文本进行动态适配处理,Agent将数据入库并通知CheckServ(包括入库通知、任务ID、命令ID)。同样地,根据第二条设备指令、第三条设备指令……采集外系统的数据并将其转换成待核对的外系统资源对象,直到CheckServ将采集连接断开请求通过Agent发送至采集器,且从返回值判断断开成功,则根据核对规则进行数据合并和数据比对,如果核对处理类型为自动,则CheckServ自动修改配置库数据,并将核对结果通过NotifyServ显示到人机交互界面;如果核对处理类型为手动,则由NotifyServ将上层应用层(人机交互界面)发来的经用户确认过的核对结果数据转发给CheckServ,由CheckServ将核对数据进行入库处理。
在图4B中,由于手工核对触发是由用户通过人机界面触发,所以当用户通过人机交互界面下发了手工配置核对请求时,NotifyServ将该请求发送至CheckServ,以下的各个步骤与自动核对的相应步骤相同,在此不做赘述。
下面具体说明CheckServ的各个部分的数据模型:
接口模块在用于接收用户通过人机交互界面制定的配置规则、对采集器的调用、将核对结果呈现给用户时所使用的数据模型为:
a)CorbaServiceThread
属性:
名称 | 代码 |
orb | orb |
root | root |
方法:
名称 | 代码 | 说明 |
CorbaServiceThread | CorbaServiceThread | 初始化 |
run | run | 运行线程 |
b)BaseCheckIterator_IImpl:
属性:
方法:
名称 | 代码 | 说明 |
BaseCheckIterator_IImpl | BaseCheckIterator_IImpl | 初始化 |
CreateMission | CreateMission | 创建新任务接口 |
RedoMission | RedoMission | 任务重做接口 |
UndoMission | UndoMission | 任务撤销接口 |
任务分解单元在用于将数据核对任务分解成至少一个子任务时所使用的数据模型为:
名称 | 代码 | 说明 | 所属模块 |
MissionHandle | MissionHandle | 任务处理类 | 任务分解 |
CommandClass | CommandClass | 任务指令类 | 任务分解 |
a)MissionHandle:
属性:
名称 | 代码 | 说明 |
iMissionId | iMissionId | 任务ID |
logger | logger | 日志 |
方法:
b)CommandClass:
属性:
名称 | 代码 | 说明 |
iCmdNum | iCmdNum | |
strCmdName | strCmdName | |
iCollState | iCollState | |
iDiState | iDiState | |
ifMultiCommand | ifMultiCommand | |
iNeedCmdNum | iNeedCmdNum | |
iCmdId | iCmdId | |
iProcessType | iProcessType | |
CONFIGFLAG | CONFIGFLAG | |
log | log | |
vcWhereCon | vcWhereCon |
方法:
名称 | 代码 | 说明 |
CommandClass | CommandClass | 初始化 |
GetFlag | GetFlag | 获取指令是否含有多条指令标识 |
SetFlag | SetFlag | 设置指令是否含有多条指令标识 |
GetNeedCmdNum | GetNeedCmdNum | 获取当前指令需要哪个指令结果作为参数 |
SetNeedCmdNum | SetNeedCmdNum | 设置当前指令需要哪个指令结果作为参数 |
GetCmdNum | GetCmdNum | 获得指令序号 |
SetCollState | SetCollState | 设置指令采集状态 |
GetCollState | GetCollState | 获取指令采集状态 |
SetDiState | SetDiState | 设置指令报告分析状态 |
GetDiState | GetDiState | 获取指令报告分析状态 |
GetCmdName | GetCmdName | 获取指令名称 |
说明:
采集服务指令配置说明如下:
“‖”使用说明
联合指令:包括S1240的MM和DMS的DIS ALL等
例如:MM‖5794:1=ALL,DETAIL=0;
两条指令组合在一起才能完成指令
“%$#”使用说明:
以%$#开始并以%$#结束,中间格式为:库表名.字段名
例如:FSCIN:‖NFSC=%$#trunk_new.trk_name%$#;
以中继表的中继群名为循环条件生成指令
操作单元在用于分别根据每组设备指令集通过调用相应的采集器从外系统采集原始数据并将所采集的原始数据转换成文本数据时所使用的数据模型为:
名称 | 代码 | 说明 | 所属模块 |
MissionClass | MissionClass | 采集任务类 | 操作 |
CollectThread | CollectThread | 采集处理线程 | 操作 |
a)MissionClass:
属性:
方法:
名称 | 代码 | 说明 |
SetPeriod | SetPeriod | 周期设置 |
GetPeriod | GetPeriod | 获得周期 |
MissionClass | MissionClass | 初始化 |
SetMissionId | SetMissionId | 设置任务ID |
GetMissionId | GetMissionId | 获得任务ID |
SetNeId | SetNeId | 设置网元ID |
GetNeId | GetNeId | 获得网元ID |
b)CollectThread:
属性:
名称 | 代码 | 说明 |
iNeId | iNeId | 网元ID |
iMissionId | iMissionId | 任务ID |
iCurCmdId | iCurCmdId | 当前命令ID |
theCommandVector | theCommandVector | 命令数组 |
theMissionHandle | theMissionHandle | |
theXmlMessage | theXmlMessage | 返回消息 |
SpecialDeal | SpecialDeal | 特殊处理类 |
方法:
名称 | 代码 | 说明 |
CollectThread | CollectThread | 初始化 |
run | run | 运行线程 |
ExecCommandVec | ExecCommandVec | 执行子指令链表 |
NeDell | NeDell | 特殊处理 |
报告分析单元在用于根据所述适配规则对所述文本数据进行动态适配处理以生成本系统可识别的资源对象时所使用的数据模型为:
a)SpecialDeal:
属性:
名称 | 代码 | 说明 |
iMissionId | iMissionId | 任务ID |
iMissionType | iMissionType | 任务类型 |
iNeId | iNeId | 网元ID |
iCommandId | iCommandId | 命令ID |
方法:
名称 | 代码 | 说明 |
deal | deal | 处理 |
b)SpecialDeal_xxx_yyy:
属性:
名称 | 代码 | 说明 |
iMissionId | iMissionId | 任务ID |
iMissionType | iMissionType | 任务类型 |
iNeId | iNeId | 网元ID |
iCommandId | iCommandId | 命令ID |
方法:
名称 | 代码 | 说明 |
deal_cc | dealCc | 报告处理,cc为命令缩写 |
数据组装单元在用于将每个子任务所对应生成的本系统可识别的资源对象进行组装以生成待核对的外系统资源对象时所使用的数据模型:
类描述:
名称 | 代码 | 说明 | 所属模块 |
ConfigCombine | ConfigCombine | 数据组装类 | 数据组装 |
a)ConfigCombine:
属性
名称 | 代码 | 说明 |
CombineSql | CombineSql | 组合SQL |
CombineRules | CombineRules | 组合规则 |
CombineContent | CombineContent | 组合的内容 |
方法:
名称 | 代码 | 说明 |
ConfigCombine | ConfigCombine | 初始化 |
CombineByRules | CombineByRules | 按规则合并 |
GetCombineSql | GetCombineSql | 获得合并SQL |
核对单元在用于根据所确定的核对数据项,将待核对的外系统资源对象与本系统的信息表进行比对时所使用的数据模型为:
a)CheckService:
属性
名称 | 代码 | 说明 |
MissionVector | MissionVector | 任务数组 |
CurHandleNrVector | CurHandleNeVector | 处理网元数组 |
CommandVector | CommandVector | 命令数组 |
spmap | spmap | HASH表 |
theTimeCheckThread | theTimeCheckThread | 自动核对任务 |
theMissionHandle | theMissionHandle | 任务处理 |
theCorbaServiceThread | theCorbaServiceThread | CORBA服务对象 |
theCommandClass | theCommandClass | 命令 |
log | log | 日志 |
strCurtime | strCurtime | 计时器 |
方法
流程说明:
核对任务进程是CheckServ的主类,在CheckService类中首先启动定时周期任务处理线程,再启动socket接收线程,接着启动Corba服务线程,然后循环检查任务链表中的任务状态,并根据任务状态进行相应的处理。
b)ConfigHandleThread
属性
方法
流程说明:
ConfigHandleThread类主要是实现分析从XML文件中读取的数据,把数据转换成记录列表保存在RecordList中,然后对记录列表中的记录进行分析处理。根据记录的iModType(修改类型)对记录进行分类处理:
1.增加:执行插入记录操作的实现函数是:
exeInsertRecordFromData(iOperid,record,conn,Jdbc)
执行完该函数后:
正确返回主键值reArr[0]=0,reArr[1]=返回主键值
错误reArr[0]=1,reArr[1]=错误信息
1.1iIdTypeFlag=1执行getIdentitySql来得到插入SQL语句:
1.1.1cMoiName值存在的话,执行getMoiRecordInsertSql得到含有cMoiName,不含IdField字段的插入SQL语句。
1.1.2如果cMoiName不存在的话,则直接返回由record记录中的字段列表组成不含有cMoiName字段的插入SQL。
1.2iIdTypeFlag!=1:
1.2.1cMoiName值存在的话:
1.2.1.1如果IdField存在的话,得到含有cMoiName,IdField的插入语句.
1.2.1.2如果IdField不存在的话,得到含有cMoiName但是不含IdFieldName的插入语句
1.2.2cMoiName值不存在的话:
如果IdField存在的话,得到不含cMoiName,但含有IdField的插入语句。
否则,得到不含cMoiName和IdField的插入语句。
1.3如果存在子记录的话:
执行getSubRecordInsertSql函数,得到子记录的插入SQL语句:
1.3.1如果存在IdField字段的话:
如果存在着关联字段RelateId,则得到含有IdField,RelateId的插入SQL语句.
否则,得到含有IdField,但不含RelateId的插入SQL语句
1.3.2如果不存在IdField字段的话:
如果存在着关联字段RelateId,则得到不含IdField,但含有RelateId的插入SQL语句.
否则,得到不含IdField和RelateId的插入SQL语句
2.删除,修改:执行删除修改记录的实现函数是:exeDelUpRecordFromData(iOperid,record,conn,Jdbc)
2.1如果是删除的话,先把删除操作插入历史表,然后执行删除操作:
2.1.1执行analyHisOperateDel:
首先从tResTable(资源表)中得到iTableType(表类型),iSynFlag(是否同步标志),isInsertMOI(是否给tObjectInstan表中插入记录),vcPKey(主键列表)信息如果表类型不为3(不是核对中间表),并且是删除执行下列操作:
如果sSynFlag(同步控制标志)为1,则设置删除记录的IdField(自动增量)为从tResTable中得到的主键名,设置IdFieldValue为从record所记录的资源表中得到的主键值信息。
如果sSynFlag(同步控制标志)不为1,则执行executeInsertHis,把得到的主键列表信息插入到历史表中
如果sSynFlag(同步控制标志)为1,执行addPushRecordList:
调用AddFieldList_delete函数:
如果sTableType=0或者是1(表示只普通表或者说是中间关联表),通过getColTypeSql得到从tResColumn取得vcColumn(字段名)和vcTypeFlag(字段类型描述)的查询SQL语句.
以执行SQL语句后的结果做为参数,执行TopoUpdateOneNode类的getAllFieldListType方法得到字段列表。把record的strColFieldList字段设为刚得到的字段列表,然后执行插入历史表。
2.1.2.执行完analyHisOperateDel后,从record所记录的表中删除掉满足record记录的条件的记录。
2.2如果是修改的话,先把修改操作插入历史表,然后执行删除操作
2.2.1执行analyHisOperateUpdate:
首先从tResTable(资源表)中得到iTableType(表类型),iSynFlag(是否同步标志),isInsertMOI(是否给tObjectInstan表中插入记录),vcPKey(主键列表)信息如果表类型不为3(不是核对中间表),并且是更新执行下列操作:
如果sSynFlag(同步控制标志)为1,则设置更新记录的IdField(自动增量)为从tResTable中得到的主键名,设置IdFieldValue为从record所记录的资源表中得到的主键值信息。
2.2.2执行完analyHisOperateUpdate后,执行下面的操作:
1)置临时记录列表中的每一个记录
2)如果iSynFlag值为1,则执行addPushRecordList,调用AddFieldList_update得到更新记录列表:如果是更新大表,如果只更新vcRole,不处理过滤掉如果更新其他,判断vcRole,各位值处理,如果更新小表,将大表对应的字段加到小表中
3)如果iSynFlag值不为1,则执行插入历史表操作。
c)TimeCheckThread
属性
名称 | 代码 | 说明 |
iMaxSetMissionId | iMaxSetMissionId | 最大任务ID |
strCurrentTime | strCurrentTime | 当前时间 |
TimeMissionVector | TimeMissionVector | 计时器数组 |
PeriodMissionVector | PeriodMissionVector | 周期任务数组 |
log | log | 日志 |
方法
流程说明:
TimeCheckThread类用于处理定时周期任务,它首先从数据库中查询定时任务和周期任务,来初始化定时任务和周期任务链表,然后不挺地检查链表,检查链表,如果存在符合时间条件的定制则生成立即任务。
d)ConfigCheckThread:
属性:
名称 | 代码 | 说明 |
CheckRules | CheckRules | 核对规则 |
CheckSql | CheckSql | 核对SQL1 |
CheckSql1 | CheckSql1 | 核对SQL2 |
iMissionId | iMissionId | 任务ID |
iMissionType | iMissionType | 任务类型 |
iNeId | iNeId | 网元ID |
UpdateSql | UpdateSql | 修改SQL |
InsertSql | InsertSql | 增加SQL |
DeleteSql | DeleteSql | 删除SQL |
方法:
下面来说明CheckServ同其它服务的交互的接口,接口通过XML格式的数据传递消息。消息的总体结构框架定义如下:
<XmlMessage>
<Head>
<MessageType></MessageType>
<MessageSubType></MessageSubType>
<JobId></JobId>
<PackId></PackId>
<NeId></NeId>
</head>
<Body>
<ConfigCollBody>
<iAgentid/>
<iCollectorId/>
<iMissionType/>//任务类型
<iMissionTypeId/>//任务ID
<iCommId/>//命令ID
<sCmdInfo/>//命令信息
<iDataDealType/>//核对结果数据处理方式:0:用户确认;1:自动进行数据库修改
<iProcessType/>//报告处理类型:0:文本适配处理;;1:特殊处理;
</ConfigCollBody>
</Body>
</XmlMessage>
其中:MessageType为消息类型,取值范围如下;
1:通知消息
2:请求消息
3:反馈消息
MessagesubType为消息子类型,取值按照业务区间来区分,配置数据核对功能相关的消息子类型有:
101:配置数据入库通知(MessageType=1)
102:配置数据变化通知(MessageType=1)
101:手工配置核对请求(MessageType=2)
102:配置采集连接建立请求(MessageType=2)
103:配置采集命令下发请求(MessageType=2)
104:配置采集连接断开请求(MessageType=2)
105:配置自动发现请求(MessageType=2)
Jobid指的是某个请求反馈的id。因为只与请求反馈有关,与订阅发布无关,因此由通信应用自行定义。
在反馈多个数据包的时候,PackId标识了某个jobid当前反馈包得内容在整个返回内容的位置。
NeId标识了当前消息涉及的网元的id,如果涉及到多个网元或者不涉及任何网元,则此值取0。
Body是消息的主体部分,其内容随着头部内容的变化而变化,具体含义情参照下面的内容。
下面再来说明CheckServ中配置表的数据模型,跟数据核对相关的配置数据结构以配置表的形式存放。配置表清单如下表所示:
a)命令的定义表(tCommad_Def),采集器数据库说明中描述(需要改造,规范字段及表的命名,增加任务类型ID作为主健),定义命令集,其中包括配置采集指令集、性能采集指令集、告警同步指令集。一个指令集代表一个采集任务所需的全部指令;
b)任务状态表(tMissionState),在Agent数据库说明中描述(增加tCommand_Def的主健),定义具体的任务;
c)任务类型配置表(tMissionConfig),配置任务类型消息;
d)指令状态表(tCommandState),记录的是某种设备完成特定任务的批指令的状态信息;
e)报告分析配置表(tAnalyseConfig),存放指令报告分析处理方法的配置信息;
f)数据组装配置表(tCombineConfig),存放由原子指令信息到目标任务信息的组装规则的配置信息;
g)数据核对配置表(tCheckConfig),存放由目标任务信息到静态配置信息的核对规则的配置信息;
h)定时周期任务表(tInitMissin)。
下面具体说明每个配置表:
a)命令定义表(tCommad_Def)
表结构描述
b)任务状态表(tMissionState)
表结构描述
c)任务类型配置表tMissionConfig
表结构描述
d)任务状态表(tCommandState)
表结构描述
e)报告分析配置表(tAnalyseConfig)
表结构描述
f)数据组装配置表(tCombineConfig)
表结构描述
字段名 | 代码 | 说明 |
任务ID | iMissionTypeId | FK->tMissionConfig |
组装的SQL语句 | strCombineSql |
其它规则描述 | strOtherRules | |
组装规则说明 | strCombineContent |
g)数据核对配置表(tCheckConfig)
表结构描述
字段名 | 代码 | 说明 |
任务ID | iMissionTypeId | FK->tMissionConfig |
核对规则描述 | vcRules | |
存放查询的SQL语句 | vcSelectSql1 | |
存放查询的SQL语句 | vcSelectSql2 | |
存放查询的SQL语句 | vcSelectSql3 | |
存放查询的SQL语句 | vcSelectSql4 | |
存放查询的SQL语句 | vcSelectSql5 | |
存放查询的SQL语句 | vcSelectSql6 | |
存放查询的SQL语句 | vcSelectSql7 | |
存放查询的SQL语句 | vcSelectSql8 | |
存放查询的SQL语句 | vcSelectSql9 | |
存放查询的SQL语句 | vcSelectSql10 | |
存放更新的SQL语句 | vcUpdatesql | |
存放插入的SQL语句 | vcInsertSql | |
存放删除的SQL语句 | vcDelelteSql |
h)定时周期任务表(tInitMissin)
表结构描述
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (8)
1.一种基于异构数据源数据核对的方法,其特征在于,接收用户通过人机交互界面设定的配置规则,根据所述配置规则对本系统数据和外系统数据进行核对,所述本系统和所述外系统为异构数据源,其中,所设定的配置规则包括:
确定需要进行核对的数据,并在本系统内建立信息表,所述信息表的内容为待核对的本系统资源对象;
配置数据核对任务,并配置核对任务的触发类型和处理类型;
配置设备指令集及对应的采集器;
为所述数据核对任务配置子任务,并将所述子任务与由至少一条设备指令组成的一组设备指令集做关联;
配置设备指令的回复数据报文的适配规则,根据所述适配规则从外系统动态提取数据,并将所提取的数据与所述信息表的信息内容做映射;
配置核对规则,所述核对规则确定核对数据项。
2.根据权利要求1所述的基于异构数据源数据核对的方法,其特征在于,所述根据配置规则对本系统数据和外系统数据进行核对的步骤包括:
将数据核对任务分解成至少一个子任务,每一个子任务都与由至少一条设备指令组成的一组设备指令集相关联;
分别根据每组设备指令集,通过调用相应的采集器从外系统采集原始数据,并将所采集的原始数据转换成文本数据,所述文本数据为相应的设备指令对应的回复数据报文;
根据所述适配规则对所述文本数据进行动态适配处理,以生成本系统可识别的资源对象,所述本系统可识别的资源对象对应所述本系统的信息表的一部分,所述本系统的信息表的内容为待核对的本系统资源对象;
将每个子任务所对应生成的本系统可识别的资源对象进行组装,以生成待核对的外系统资源对象,所述待核对的外系统资源对象对应所述本系统的信息表;
根据所确定的核对数据项,将待核对的外系统资源对象与本系统的信息表进行比对,并标注比对结果。
3.根据权利要求2所述的基于异构数据源数据核对的方法,其特征在于,
核对任务的触发类型包括手工核对和自动核对;
核对任务的处理类型包括核对结果进行手动确认和核对结果自动确认。
4.根据权利要求1所述的基于异构数据源数据核对的方法,其特征在于,所述适配规则为:
对所述回复数据报文的至少两个选定数据进行下面至少一种基本运算:加、减、乘、除;和/或
对所述回复数据报文的至少两个选定数据进行下面至少一种处理:过滤、匹配、去空格、拼接。
5.一种基于异构数据源数据核对的系统,其特征在于,包括:
接口模块,用于接收用户通过人机交互界面制定的配置规则;
核对模块,用于根据所述配置规则对本系统数据和外系统数据进行核对,所述本系统和所述外系统为异构数据源,其中,
所制定的配置规则包括:
确定需要进行核对的数据,并在本系统内建立信息表,所述信息表的内容为待核对的本系统资源对象;
配置数据核对任务,并配置核对任务的触发类型和处理类型;
配置设备指令集及对应的采集器;
为所述数据核对任务配置子任务,并将所述子任务与由至少一条设备指令组成的一组设备指令集做关联;
配置设备指令的回复数据报文的适配规则,根据所述适配规则从外系统动态提取数据,并将所提取的数据与所述信息表的信息内容做映射;
配置核对规则,所述核对规则确定核对数据项。
6.根据权利要求5所述的基于异构数据源数据核对的系统,其特征在于,所述核对模块包括:
任务分解单元,用于将数据核对任务分解成至少一个子任务,每一个子任务都与由至少一条设备指令组成的设备指令集相关联;
操作单元,用于分别根据每组设备指令集,通过调用相应的采集器从外系统采集原始数据,并将所采集的原始数据转换成文本数据,所述文本数据为相应的设备指令对应的回复数据报文;
报告分析单元,用于根据所述适配规则对所述文本数据进行动态适配处理,以生成本系统可识别的资源对象,所述本系统可识别的资源对象对应所述本系统的信息表的一部分,所述本系统的信息表的内容为待核对的本系统资源对象;
数据组装单元:用于将每个子任务所对应生成的本系统可识别的资源对象进行组装,以生成待核对的外系统资源对象,所述待核对的外系统资源对象对应所述本系统的信息表;
核对单元:用于根据所确定的核对数据项,将待核对的外系统资源对象与本系统的信息表进行比对,并标注比对结果,然后根据核对规则进行数据同步处理。
7.根据权利要求6所述的基于异构数据源数据核对的系统,其特征在于,
核对任务的触发类型包括手工核对和自动核对;
核对任务的处理类型包括核对结果由用户进行手动确认后再进行同步处理和核对结果由系统自动确认后进行同步处理。
8.根据权利要求5所述的基于异构数据源数据核对的系统,其特征在于,所述适配规则为:
对所述回复数据报文的至少两个选定数据进行下面至少一种基本运算:加、减、乘、除;或
对所述回复数据报文的至少两个选定数据进行下面至少一种处理:过滤、匹配、去空格、拼接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102621126A CN101968793B (zh) | 2010-08-25 | 2010-08-25 | 一种基于异构数据源数据核对的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102621126A CN101968793B (zh) | 2010-08-25 | 2010-08-25 | 一种基于异构数据源数据核对的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101968793A CN101968793A (zh) | 2011-02-09 |
CN101968793B true CN101968793B (zh) | 2012-09-05 |
Family
ID=43547950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102621126A Active CN101968793B (zh) | 2010-08-25 | 2010-08-25 | 一种基于异构数据源数据核对的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101968793B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8863082B2 (en) * | 2011-09-07 | 2014-10-14 | Microsoft Corporation | Transformational context-aware data source management |
CN103500179B (zh) * | 2013-09-09 | 2017-01-04 | 国家电网公司 | 一种数据源变更预警方法 |
CN104111991B (zh) * | 2014-07-02 | 2018-10-23 | 百度在线网络技术(北京)有限公司 | 通过搜索引擎进行提醒的方法和搜索引擎 |
CN104268291B (zh) * | 2014-10-23 | 2018-01-19 | 税友软件集团股份有限公司 | 一种数据一致性处理方法和系统 |
CN106571940A (zh) * | 2015-10-08 | 2017-04-19 | 中国移动通信集团广东有限公司 | 一种融合网管数据与资源数据的方法和装置 |
CN107357560A (zh) * | 2017-04-28 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 交互处理方法及装置 |
CN110647509B (zh) * | 2018-06-26 | 2024-05-14 | 北京亿阳信通科技有限公司 | 一种集客数据的快速核查共享方法及装置 |
CN109408565B (zh) * | 2018-10-19 | 2021-09-28 | 浪潮软件科技有限公司 | 一种数据同步交互方法、系统和数据交互平台 |
CN110175182B (zh) * | 2019-05-30 | 2021-07-02 | 口碑(上海)信息技术有限公司 | 数据核对方法及装置 |
CN110297842B (zh) * | 2019-06-25 | 2021-10-15 | 武汉联影医疗科技有限公司 | 一种数据比对方法、装置、终端和存储介质 |
CN111241202A (zh) * | 2020-01-19 | 2020-06-05 | 浪潮软件股份有限公司 | 一种数据全过程核对系统 |
CN111930842B (zh) * | 2020-08-10 | 2024-02-09 | 中国工商银行股份有限公司 | 一种数据核对方法及装置 |
CN112347180B (zh) * | 2020-12-04 | 2023-08-01 | 航天信息股份有限公司企业服务分公司 | 推送数据的方法及电子设备 |
CN112445829B (zh) * | 2020-12-14 | 2024-01-26 | 招商局金融科技有限公司 | 数据核对的方法、装置、设备及存储介质 |
CN113760681A (zh) * | 2021-03-10 | 2021-12-07 | 中科天玑数据科技股份有限公司 | 一种基于统一sql的多源异构数据质量校验方法和系统 |
CN113434528B (zh) * | 2021-08-26 | 2021-12-17 | 广州粤芯半导体技术有限公司 | 业务数据更新方法、业务方法及可读存储介质 |
CN116094844B (zh) * | 2023-04-10 | 2023-06-20 | 蓝象智联(杭州)科技有限公司 | 一种用于多方安全计算的地址核对方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004012057A2 (en) * | 2002-07-26 | 2004-02-05 | Datatrak International | Method and system of unifying data |
CN1862522A (zh) * | 2005-09-14 | 2006-11-15 | 华为技术有限公司 | 数据核对装置及核对方法 |
CN101075337A (zh) * | 2007-07-20 | 2007-11-21 | 中国建设银行股份有限公司 | 一种实现数据核对的方法和系统 |
CN101458705A (zh) * | 2008-12-29 | 2009-06-17 | 阿里巴巴集团控股有限公司 | 一种不同应用系统间的数据核对方法、装置及系统 |
CN101661587A (zh) * | 2009-09-29 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种数据核对方法及装置 |
CN101714157A (zh) * | 2009-09-29 | 2010-05-26 | 金蝶软件(中国)有限公司 | 异构数据库报表生成方法、装置和异构数据库系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136859B2 (en) * | 2001-03-14 | 2006-11-14 | Microsoft Corporation | Accessing heterogeneous data in a standardized manner |
-
2010
- 2010-08-25 CN CN2010102621126A patent/CN101968793B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004012057A2 (en) * | 2002-07-26 | 2004-02-05 | Datatrak International | Method and system of unifying data |
CN1862522A (zh) * | 2005-09-14 | 2006-11-15 | 华为技术有限公司 | 数据核对装置及核对方法 |
CN101075337A (zh) * | 2007-07-20 | 2007-11-21 | 中国建设银行股份有限公司 | 一种实现数据核对的方法和系统 |
CN101458705A (zh) * | 2008-12-29 | 2009-06-17 | 阿里巴巴集团控股有限公司 | 一种不同应用系统间的数据核对方法、装置及系统 |
CN101661587A (zh) * | 2009-09-29 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种数据核对方法及装置 |
CN101714157A (zh) * | 2009-09-29 | 2010-05-26 | 金蝶软件(中国)有限公司 | 异构数据库报表生成方法、装置和异构数据库系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101968793A (zh) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101968793B (zh) | 一种基于异构数据源数据核对的方法和系统 | |
CN100531055C (zh) | 数据同步系统及其方法 | |
AU648263B2 (en) | Portable and dynamic distributed applications architecture | |
CN108052681A (zh) | 一种关系型数据库间结构化数据的同步方法及系统 | |
CN112217656B (zh) | Sd-wan系统中的网络设备的配置信息同步方法和装置 | |
CN102841927A (zh) | 多数据库之间数据交互的方法装置及分布式数据交互系统 | |
CN101795206B (zh) | 一种在分布式构成设备上实现snmp代理的方法和装置 | |
CN101960439A (zh) | 客户端环境创建系统、客户端环境创建方法、客户端环境创建程序和存储介质 | |
CN113992769A (zh) | 一种工业互联网信息交换方法 | |
CN101834750A (zh) | 一种通用业务监控方法 | |
CN102090039B (zh) | 执行数据中间处理的方法、数据中间处理设备和信息系统 | |
CN112883022A (zh) | 一种基于xml模板的对象数据清洗转换方法 | |
CN112286628A (zh) | 一种统一纳管Kubernetes异构应用的系统及运行方法 | |
EP3987406A1 (en) | Graph processing system | |
CN110825919B (zh) | Id数据处理方法和装置 | |
CN101179444B (zh) | 配置生效方法、配置系统及配置网关 | |
CN105933396B (zh) | 一种协同各渠道系统接口实现长流程的方法及系统 | |
KR100974621B1 (ko) | Rfid 비즈니스 인식 프레임워크 | |
EP2666247B1 (en) | Timeslot interoperability between communicating platforms | |
CN107861749B (zh) | 一种基于配置的任务单元的流程编排系统及其实现方法 | |
CN102752138A (zh) | 异步配置管理方法和网络设备 | |
CN109726213A (zh) | 一种程序代码转换方法、装置、介质和计算设备 | |
CN113468340B (zh) | 一种产业知识图谱的构建系统及构建方法 | |
Seguel et al. | Constructing minimal protocol adaptors for service composition | |
CN116095081A (zh) | 基于区块链系统的事件处理方法及装置、设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |