一种oracle数据库多表关联实时数据处理方法及系统与流程

    技术2026-05-15  9


    本发明涉及数据库,特别是涉及一种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数据库多表关联实时数据处理系统,其特征在于,包括:


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

    技术研发人员:潘自强,陈涛,温家华,马明
    受保护的技术使用者:迪思杰(北京)数据管理技术有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-42909.html

    最新回复(0)