System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种oracle数据库多表关联实时数据处理方法及系统技术方案_技高网

一种oracle数据库多表关联实时数据处理方法及系统技术方案

技术编号:43103601 阅读:15 留言:0更新日期:2024-10-26 09:46
本发明专利技术公开了一种oracle数据库多表关联实时数据处理方法及系统,该方法包括根据oracle数据库中多表关联的sql语句的原始表和目标表中解析出的配置关系构建模型树;根据模型树创建元数据信息;根据确定的模型树的结构,并通过原始表的行伪列标识信息、元数据信息以及原始表和目标表中字段的对应关系生成对应的目标表结果集;将转换后的目标表结果集通过TCP/IP协议发送至目标端对应的接收程序,以完成多表关联查询结果集的实时共享。本发明专利技术能够通过实时得到ctab行数据的变化来根据模型树实时转换得到最终的stab的数据实时变化,有效地完成最终的多表关联结果集实时数据分享。

【技术实现步骤摘要】

本专利技术涉及数据库,特别是涉及一种oracle数据库多表关联实时数据处理方法及系统


技术介绍

1、目前通过在源端数据库创建触发器的方式进行捕捉同步,对客户源端数据库需要做操作,对源端数据库具有侵入性,对很多客户来说不允许在生产环境做任何操作。所以具有一定的局限性。针对源端分析到的中间文件到目标端数据库的方法,需要同步的数据很多,资源使用量大,很难从纷繁复杂的数据中实时获取到用户想获取的数据。还可能需要客户在系统里直接多表关联查询,并且直接查询效率比较慢且消耗源端数据库资源比较多。


技术实现思路

1、本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。

2、为此,本专利技术提出了一种oracle数据库多表关联实时数据处理方法,不需要在数据库中建立触发器,并且不影响数据库原始性能,也不要额外权限,对数据库没有任何侵入性,因此,可以有效地实现数据的提取。

3、本专利技术的另一个目的在于提出另一种oracle数据库多表关联实时数据处理方法。

4、本专利技术的第三个目的在于提出一种oracle数据库多表关联实时数据处理系统。

5、本专利技术的第四个目的在于提出另一种oracle数据库多表关联实时数据处理系统。

6、为达上述目的,本专利技术一方面提出一种oracle数据库多表关联实时数据处理方法,应用于源端,所述方法包括:

7、根据oracle数据库中多表关联的sql语句的原始表和目标表中解析出的配置关系构建模型树;

8、根据所述模型树创建元数据信息;

9、根据确定的模型树的结构,并通过原始表的行伪列标识信息、元数据信息以及原始表和目标表中字段的对应关系生成对应的目标表结果集;

10、将转换后的所述目标表结果集通过tcp/ip协议发送至目标端对应的接收程序,以完成多表关联查询结果集的实时共享。

11、本专利技术实施例的oracle数据库多表关联实时数据处理方法还可以具有以下附加技术特征:

12、在本专利技术的一个实施例中,根据oracle数据库中多表关联的sql语句的原始表和目标表中解析出的配置关系构建模型树,包括:

13、对oracle数据库的配置文件中配置的sql语句的原始表和目标表配置项进行解析,得到完整的原始表的字段、数据类型以及目标表的字段;

14、解析数据类型以及原始表和目标表中字段的对应关系,并根据解析出的对应关系构建模型树。

15、在本专利技术的一个实施例中,在根据确定的模型树的结构之前,所述方法,还包括:

16、通过分析重做日志获取原始表的dml操作信息,并将所述dml操作信息存储到中间文件中;

17、读取所述中间文件。

18、在本专利技术的一个实施例中,通过原始表的行伪列标识信息、元数据信息以及原始表和目标表中字段的对应关系生成对应的目标表结果集,包括:

19、对原始表的插入操作进行判断:若原始表的字段的值满足配置文件中关联表的条件,影响目标表结果集,根据模型树完成原始表数据变化列到对应目标表数据变化列的转换,并根据元数据信息组装成第一中间文件结果集发送至目标端;

20、对原始表的更新操作进行判断:若原始表更新的列不在目标表的字段中,判断为不影响目标表结果集,不发送给目标端;若原始表更新的列在目标表的字段中,根据模型树判断为不影响目标表结果集,不发送给目标端;若原始表更新的列在目标表的字段中,根据模型树判定为影响目标表结果集,根据模型树完成原始表数据变化列到对应目标表数据变化列的转换,并根据元数据信息组装成第二中间文件结果集发送至目标端;

21、对原始表的删除操作进行判断:将原始表删除其中一条记录,根据模型树判断为影响目标表结果集,根据模型树完成原始表数据变化列到对应目标表数据变化列的转换,并根据元数据信息组装成第三中间文件结果集发送至目标端。

22、为达上述目的,本专利技术另一方面提出一种oracle数据库多表关联实时数据处理方法,应用于目标端,所述方法包括:

23、通过tcp/ip协议接收第一中间文件结果集、第二中间文件结果集和第三中间文件结果集;

24、按照目标系统的格式要求利用目标系统的接口分别顺序装载接收到的第一中间文件结果集、第二中间文件结果集和第三中间文件结果集对应的增量文件,以完成多表关联查询结果集的实时共享。

25、为达上述目的,本专利技术另一方面提出一种oracle数据库多表关联实时数据处理系统,包括:

26、模型解析模块,用于根据oracle数据库中多表关联的sql语句的原始表和目标表中解析出的配置关系构建模型树;

27、元数据模块,用于根据所述模型树创建元数据信息;

28、增量转换模块,用于根据确定的模型树的结构,并通过原始表的行伪列标识信息、元数据信息以及原始表和目标表中字段的对应关系生成对应的目标表结果集;

29、增量发送模块,用于将转换后的所述目标表结果集通过tcp/ip协议发送至目标端对应的接收程序,以完成多表关联查询结果集的实时共享。

30、为达上述目的,本专利技术另一方面提出一种oracle数据库多表关联实时数据处理系统,包括:

31、增量接收模块,用于通过tcp/ip协议接收第一中间文件结果集、第二中间文件结果集和第三中间文件结果集;

32、数据装载模块,用于按照目标系统的格式要求利用目标系统的接口分别顺序装载接收到的第一中间文件结果集、第二中间文件结果集和第三中间文件结果集对应的增量文件,以完成多表关联查询结果集的实时共享。

33、本专利技术实施例的oracle数据库多表关联实时数据处理方法和系统,对多表关联的复杂sql进行模型构建,构建的模型中包含关联查询涉及的所有原始表,定义为ctab,最终查询的结果集呈现的结果表定义为stab,模型构建的对应关系中包含ctab的各列元素和stab各列元素的对应关系,包含直接引用的列以及使用复杂函数转换的列元素;模型构建中包含了ctab的唯一元素和stab多条元素的对应关系的,然后通过实时得到ctab行数据的变化来根据模型树实时转换得到最终的stab的数据实时变化,完成最终的多表关联结果集实时数据分享。

34、本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。

本文档来自技高网...

【技术保护点】

1.一种oracle数据库多表关联实时数据处理方法,其特征在于,应用于源端,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,根据oracle数据库中多表关联的sql语句的原始表和目标表中解析出的配置关系构建模型树,包括:

3.根据权利要求1所述的方法,其特征在于,在根据确定的模型树的结构之前,所述方法,还包括:

4.根据权利要求3所述的方法,其特征在于,通过原始表的行伪列标识信息、元数据信息以及原始表和目标表中字段的对应关系生成对应的目标表结果集,包括:

5.一种oracle数据库多表关联实时数据处理方法,其特征在于,应用于目标端服务器,所述方法包括:

6.一种oracle数据库多表关联实时数据处理系统,其特征在于,包括:

7.根据权利要求6所述的系统,其特征在于,模型解析模块,还用于:

8.根据权利要求6所述的系统,其特征在于,在增量转换模块之前,还包括增量分析模块,用于:

9.根据权利要求8所述的系统,其特征在于,增量转换模块,还用于:

10.一种oracle数据库多表关联实时数据处理系统,其特征在于,包括:

...

【技术特征摘要】

1.一种oracle数据库多表关联实时数据处理方法,其特征在于,应用于源端,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,根据oracle数据库中多表关联的sql语句的原始表和目标表中解析出的配置关系构建模型树,包括:

3.根据权利要求1所述的方法,其特征在于,在根据确定的模型树的结构之前,所述方法,还包括:

4.根据权利要求3所述的方法,其特征在于,通过原始表的行伪列标识信息、元数据信息以及原始表和目标表中字段的对应关系生成对应的目标表结果集,包括:

5....

【专利技术属性】
技术研发人员:潘自强陈涛温家华马明
申请(专利权)人:迪思杰北京数据管理技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1