CN108228628B - 一种结构化查询语言数据库中的宽表生成方法及其装置 - Google Patents
一种结构化查询语言数据库中的宽表生成方法及其装置 Download PDFInfo
- Publication number
- CN108228628B CN108228628B CN201611161287.1A CN201611161287A CN108228628B CN 108228628 B CN108228628 B CN 108228628B CN 201611161287 A CN201611161287 A CN 201611161287A CN 108228628 B CN108228628 B CN 108228628B
- Authority
- CN
- China
- Prior art keywords
- data
- structured query
- query language
- language database
- log file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种结构化查询语言数据库中的宽表生成方法及其装置,所述方法,包括:获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据;根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作;接收数据转换操作完成的转换后数据,将所述转换后数据载入到目标数据库的宽表中。本申请实施例能够提升结构化查询语言数据库的查询性能。
Description
技术领域
本申请属于结构化查询语言技术领域,具体涉及一种结构化查询语言数据库中的宽表生成方法及其装置。
背景技术
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。结构化查询语言中的关联表指数据库中通过主外键建立关联系统的表。
通常结构化查询语言数据库中会存在大量的关联表,例如用户表与用户地址表。当需要查询用户的地址数据时,需要在程序中根据表的关联关系,书写各种关联查询的结构化查询语句,对用户表和用户地址表进行关联查询。
而目前的结构化查询语言数据库对于多个表的关联查询的性能远低于对单表的查询性能。为改善上述问题,目前结构化查询语言数据库所支持的视图技术,可通过自定义的结构化查询语言语句为用户生成多个关联表的视图,但其本质上仍是对多个表的关联查询,并不能提升查询性能。
因此,如何提升结构化查询语言数据库的查询性能,成为现有技术中亟需解决的技术问题。
发明内容
本申请实施例解决的技术问题之一在于提供一种结构化查询语言数据库中的宽表生成方法及其装置,其能够提升结构化查询语言数据库的查询性能。
本申请实施例提供一种结构化查询语言数据库中的宽表生成方法,包括:
获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据;
根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作;
接收数据转换操作完成的转换后数据,将所述转换后数据载入到目标数据库的宽表中。
在本申请实施例中,所述获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据包括:
通过模拟的从库与所述结构化查询语言数据库所建立的连接,获取所述结构化查询语言数据库的日志文件的位置信息;
根据所述位置信息,向所述结构化查询语言数据库发送备份命令,获得所述结构化查询语言数据库推送的日志文件;
解析所述日志文件,按照所述日志文件的格式获取所述结构化查询语言数据库中的变更数据。
在本申请实施例中,所述获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据还包括:
更新并保存所述结构化查询语言数据库的当前日志文件的位置信息。
在本申请实施例中,所述根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作包括:
根据所述变更数据获得所述日志文件对应的关联表,并判断所述关联表中的数据是否为主表数据;
如果所述数据为主表数据,且所述待执行操作为插入操作,根据关联表的关联关系,生成关联查询语句,查询所述结构化查询语言数据库,并将查询到的数据转换为目标库的事件数据对象;
如果所述数据为主表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
在本申请实施例中,所述根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作包括:
如果所述数据为从表数据,且所述待执行操作为插入操作,将插入操作转为对宽表更新操作;
如果所述数据为从表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
在本申请实施例中,所述接收数据转换操作完成的转换后数据,将所述转换后数据载入到目标数据库的宽表中包括:
接收数据载入请求,并将相同主键的数据按照数据的事件类型以及数据的内容生成事件操作语句;
调用所述结构化查询语言数据库,执行对应的结构化查询语言语句,完成数据载入。
在本申请实施例中,所述数据的事件类型包括插入事件、更新事件以及删除事件中至少一种。
对应上述方法,本申请提供一种结构化查询语言数据库中的宽表生成装置,包括:
数据提取器,用于获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据;
数据转换器,用于根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作;
数据下载器,用于接收数据转换操作完成的转换后数据,将所述转换后数据载入到目标数据库的宽表中。
在本申请实施例中,所述数据提取器包括:
位置管理器,用于通过模拟的从库与所述结构化查询语言数据库所建立的连接,获取所述结构化查询语言数据库的日志文件的位置信息;
命令发生器,用于根据所述位置信息,向所述结构化查询语言数据库发送备份命令,获得所述结构化查询语言数据库推送的日志文件;
事件解析器,用于解析所述日志文件,按照所述日志文件的格式获取所述结构化查询语言数据库中的变更数据。
在本申请实施例中,所述位置管理器还用于更新并保存所述结构化查询语言数据库的当前日志文件的位置信息。
在本申请实施例中,所述数据转换器包括:
关联管理器,用于根据所述变更数据获得所述日志文件对应的关联表,并判断所述关联表中的数据是否为主表数据;
第一主表处理器,用于如果所述数据为主表数据,且所述待执行操作为插入操作,根据关联表的关联关系,生成关联查询语句,查询所述结构化查询语言数据库,并将查询到的数据转换为目标库的事件数据对象;
第二主表处理器,用于如果所述数据为主表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
在本申请实施例中,所述数据转换器还包括:
第一从表处理器,用于如果所述数据为从表数据,且所述待执行操作为插入操作,将插入操作转为对宽表更新操作;
第二从表处理器,用于如果所述数据为从表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
在本申请实施例中,所述数据下载器包括:
数据合并器,用于接收数据载入请求,并将相同主键的数据按照数据的事件类型以及数据的内容生成事件操作语句;
载入执行器,用于调用所述结构化查询语言数据库,执行对应的结构化查询语言语句,完成数据载入。
在本申请实施例中,所述数据的事件类型包括插入事件、更新事件以及删除事件中至少一种。
本申请实施例获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得其变更数据。从而根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作,将所述转换后数据载入到目标数据库的宽表中。因此,本申请通过监控结构化查询语言数据库的日志文件,获取结构化查询语言数据库中表数据的变化内容,实时将结构化查询语言数据库中多个关联表的数据,同步到一张宽表中,从而提高程序的查询性能,简化查询操作。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种结构化查询语言数据库中的宽表生成方法一实施例流程图;
图2是本申请提供的一种结构化查询语言数据库中的宽表生成方法中步骤S1一实施例流程图;
图3是本申请提供的一种结构化查询语言数据库中的宽表生成方法中步骤S1另一实施例流程图;
图4是本申请提供的一种结构化查询语言数据库中的宽表生成方法中步骤S2一实施例流程图;
图5是本申请提供的一种结构化查询语言数据库中的宽表生成方法中步骤S2另一实施例流程图;
图6是本申请提供的一种结构化查询语言数据库中的宽表生成方法中步骤S3一实施例流程图;
图7是本申请提供的一种结构化查询语言数据库中的宽表生成装置一实施例结构图;
图8是本申请提供的一种结构化查询语言数据库中的宽表生成装置中数据提取器一实施例结构图;
图9是本申请提供的一种结构化查询语言数据库中的宽表生成装置中数据转换器一实施例结构图;
图10是本申请提供的一种结构化查询语言数据库中的宽表生成装置中数据转换器另一实施例结构图;
图11是本申请提供的一种结构化查询语言数据库中的宽表生成装置中数据下载器另一实施例结构图;
图12是本申请提供的结构化查询语言数据库中的宽表生成方法的电子设备的硬件结构示意图。
具体实施方式
本申请实施例获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得其变更数据。从而根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作,将所述转换后数据载入到目标数据库的宽表中。因此,本申请通过监控结构化查询语言数据库的日志文件,获取结构化查询语言数据库中表数据的变化内容,实时将结构化查询语言数据库中多个关联表的数据,同步到一张宽表中,从而提高程序的查询性能,简化查询操作。
尽管本申请能够具有许多不同形式的实施例,但在附图中显示并且将在本文详细描述的特定实施例,应该理解,这种实施例的公开应该被视为原理的示例,而非意图把本申请限制于显示和描述的特定实施例。在以下的描述中,相同的标号用于描述附图的几个示图中的相同、相似或对应的部分。
如本文所使用,术语“一个”或“一种”被定义为一个(种)或超过一个(种)。如本文所使用,术语“多个”被定义为两个或超过两个。如本文所使用,术语“其他”被定义为至少再一个或更多个。如本文所使用,术语“包含”和/或“具有”被定义为包括(即,开放式语言)。如本文所使用,术语“耦合”被定义为连接,但未必是直接连接,并且未必是以机械方式连接。如本文所使用,术语“程序”或“计算机程序”或类似术语被定义为设计用于在计算机系统上执行的指令序列。“程序”或“计算机程序”可包括子程序、函数、过程、对象方法、对象实现、可执行应用、小应用程序、小服务程序、源代码、目标代码、共享库/动态加载库和/或设计用于在计算机系统上执行的其它指令序列。
在整个本文件中对“一个实施例”、“某些实施例”、“实施例”或类似术语的提及表示结合实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,在整个本说明书的各种地方的这种词语的出现不必全部表示相同的实施例。另外,所述特定特征、结构或特性可非限制性地在一个或多个实施例中以任何合适的方式组合。
如本文所使用,术语“或者”应该被解释为是包括性的或者表示任何一种或任何组合。因此,“A、B或者C”表示“下面的任何一种:A;B;C;A和B;A和C;B和C;A,B和C”。仅当元件、功能、步骤或动作的组合以某种方式固有地相互排斥时,将会发生这种定义的例外。
为了使本领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
下面结合本申请附图进一步说明本申请具体实现。
参见图1,本申请一实施例提供一种结构化查询语言数据库中的宽表生成方法,包括:
S1、获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据。
在本申请一具体实现中,参见图2,所述步骤S1包括:
S11、通过模拟的从库与所述结构化查询语言数据库所建立的连接,获取所述结构化查询语言数据库的日志文件的位置信息。
具体地,本申请通过模拟成所述结构化查询语言数据库的从库,建立与所述结构化查询语言数据库的连接,通过位置管理器(LogPosisionManager)获取到上次解析成功的日志文件(Binlog文件)的位置信息。
S12、根据所述位置信息,向所述结构化查询语言数据库发送备份命令,获得所述结构化查询语言数据库推送的日志文件。
具体地,通过与所述结构化查询语言数据库的连接,根据所述位置信息,向所述结构化查询语言数据库发送备份命令(DUMP命令),
结构化查询语言数据库接收到所述备份命令后,通过连接向事件解析器(EventParser)推送指定的日志文件。
S13、解析所述日志文件,按照所述日志文件的格式获取所述结构化查询语言数据库中的变更数据。
事件解析器接收到所述日志文件后,按照所述日志文件的格式,解析所述日志文件,并将其转换为事件数据对象,获取所述结构化查询语言数据库中的变更数据。
在本申请一具体实现中,参见图3,所述步骤S1还包括:
S14、更新并保存所述结构化查询语言数据库的当前日志文件的位置信息。
具体地,将解析出来的事件数据对象处理完成,调用位置管理器记录当前日志文件的位置信息,以供下次同步数据时使用。
S2、根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作。
具体地,接收到所述变更数据后,调用关联管理器(RelationManager),获取所述日志文件对应的关联表的关联关系。根据所述关联关系及数据的待执行操作,分别执行不同的数据转换操作。
在本申请一具体实现中,参见图4,所述步骤S2包括:
S21、根据所述变更数据获得所述日志文件对应的关联表,并判断所述关联表中的数据是否为主表数据。
S22、如果所述数据为主表数据,且如所待执行操作为插入操作,根据关联表的关联关系,生成关联查询语句,查询所述结构化查询语言数据库,并将查询到的数据转换为目标库的事件数据对象。
S23、如果所述数据为主表数据,且所述待执行操作为删除操作或更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
在本申请再一具体实现中,参见图5,所述步骤S2还包括:
S24、如果所述数据为从表数据,且所述待执行操作为插入操作,将插入操作转为对目标库的宽表更新操作。
S25、如果所述数据为从表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
S3、接收数据转换操作完成的转换后数据,将所述转换后数据载入到目标数据库的宽表中。
在本申请再一具体实现中,参见图6,所述步骤S3包括:
S31、接收数据载入请求,并将相同主键的数据按照数据的事件类型以及数据的内容生成事件操作语句。
本申请实施例接收到的数据载入请求后,调用数据合并器(DataMerger)将相同主键的数据按照数据的事件类型以及数据的内容生成事件操作语句。
具体地,所述数据的事件类型包括插入事件、更新事件以及删除事件中至少一种。
S32、调用所述结构化查询语言数据库,执行对应的结构化查询语言语句,完成数据载入。
本申请实施例调用载入执行器(Load Action),执行数据载入动作。根据数据的事件类型(插入事件、更新事件以及删除事件),及数据的内容,生成插入事件、更新事件以及删除事件语句。
调用数据源管理器(Data Source Manager),获取目标库数据源,执行生成的对应的结构化查询语言语句,数据载入完成。
对应上述方法,参见图7,本申请一实施例提供一种结构化查询语言数据库中的宽表生成装置,包括:
数据提取器71,用于获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据。
数据转换器72,用于根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作。
数据下载器73,用于接收数据转换操作完成的转换后数据,将所述转换后数据载入到目标数据库的宽表中。
在本申请一具体实现中,参见图8,所述数据提取器71包括:
位置管理器711,用于通过模拟的从库与所述结构化查询语言数据库所建立的连接,获取所述结构化查询语言数据库的日志文件的位置信息。
命令发生器712,用于根据所述位置信息,向所述结构化查询语言数据库发送备份命令,获得所述结构化查询语言数据库推送的日志文件。
事件解析器713,用于解析所述日志文件,按照所述日志文件的格式获取所述结构化查询语言数据库中的变更数据。
具体地,本申请通过模拟成所述结构化查询语言数据库的从库,建立与所述结构化查询语言数据库的连接,通过位置管理器711(LogPosisionManager)获取到上次解析成功的日志文件(Binlog文件)的位置信息。
具体地,通过与所述结构化查询语言数据库的连接,根据所述位置信息,向所述结构化查询语言数据库发送备份命令(DUMP命令),
结构化查询语言数据库接收到所述备份命令后,通过连接向事件解析器713(EventParser)推送指定的日志文件。
事件解析器713接收到所述日志文件后,按照所述日志文件的格式,解析所述日志文件,并将其转换为事件数据对象,获取所述结构化查询语言数据库中的变更数据。
在本申请一具体实现中,所述位置管理器711还用于更新并保存所述结构化查询语言数据库的当前日志文件的位置信息。
具体地,将解析出来的事件数据对象处理完成,调用位置管理器记录当前日志文件的位置信息,以供下次同步数据时使用。
本申请接收到所述变更数据后,调用关联管理器(RelationManager),获取所述日志文件对应的关联表的关联关系。根据所述关联关系及数据的待执行操作,分别执行不同的数据转换操作。
在本申请一具体实现中,参见图9,所述数据转换器72包括:
关联管理器721,用于根据所述变更数据获得所述日志文件对应的关联表,并判断所述关联表中的数据是否为主表数。
第一主表处理器722,用于如果所述数据为主表数据,且所述待执行操作为插入操作,根据关联表的关联关系,生成关联查询语句,查询所述结构化查询语言数据库,并将查询到的数据转换为目标库的事件数据对象。
第二主表处理器723,用于如果所述数据为主表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
在本申请再一具体实现中,参见图10,所述数据转换器72还包括:
第一从表处理器724,用于如果所述数据为从表数据,且所述待执行操作为插入操作,将插入操作转为对宽表更新操作。
第二从表处理器725,用于如果所述数据为从表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
在本申请再一具体实现中,参见图11,所述数据下载器73包括:
数据合并器731,用于接收数据载入请求,并将相同主键的数据按照数据的事件类型以及数据的内容生成事件操作语句。
本申请实施例接收到的数据载入请求后,调用数据合并器(DataMerger)将相同主键的数据按照数据的事件类型以及数据的内容生成事件操作语句。
具体地,所述数据的事件类型包括插入事件、更新事件以及删除事件中至少一种。
载入执行器732,用于调用所述结构化查询语言数据库,执行对应的结构化查询语言语句,完成数据载入。
本申请实施例调用载入执行器(Load Action),执行数据载入动作。根据数据的事件类型(插入事件、更新事件以及删除事件),及数据的内容,生成插入事件、更新事件以及删除事件语句。
调用数据源管理器(Data Source Manager),获取目标库数据源,执行生成的对应的结构化查询语言语句,数据载入完成。
图12是本申请结构化查询语言数据库中的宽表生成方法的电子设备的硬件结构示意图。根据图12所示,该设备包括:
一个或多个处理器1210以及存储器1220,图12中以一个处理器1210为例。
结构化查询语言数据库中的宽表生成方法的设备还可以包括:输入装置1230和输出装置1230。
处理器1210、存储器1220、输入装置1230和输出装置1230可以通过总线或者其他方式连接,图12中以通过总线连接为例。
存储器1220作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的结构化查询语言数据库中的宽表生成方法对应的程序指令/模块(例如,附图5所示的建立模块51、组卷模块52、排版模块53)。处理器1210通过运行存储在存储器1220中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例结构化查询语言数据库中的宽表生成方法。
存储器1220可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据结构化查询语言数据库中的宽表生成装置的使用所创建的数据等。此外,存储器1220可以包括高速随机存取存储器1220,还可以包括非易失性存储器1220,例如至少一个磁盘存储器1220件、闪存器件、或其他非易失性固态存储器1220件。在一些实施例中,存储器1220可选包括相对于处理器1210远程设置的存储器1220,这些远程存储器1220可以通过网络连接至音效模式选择装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置1230可接收输入的数字或字符信息,以及产生与结构化查询语言数据库中的宽表生成装置的用户设置以及功能控制有关的键信号输入。输出装置1230可包括扬声器等设备。
所述一个或者多个模块存储在所述存储器1220中,当被所述一个或者多个处理器1210执行时,执行上述任意方法实施例中的结构化查询语言数据库中的宽表生成方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器1210、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(12)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种结构化查询语言数据库中的宽表生成方法,其特征在于,包括:
获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据;
根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行所述数据的转换操作;
接收数据转换操作完成的转换后数据,将所述转换后数据载入到目标数据库的宽表中;
其中,所述根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作包括:
根据所述变更数据获得所述日志文件对应的关联表,并判断所述关联表中的数据是否为主表数据;
如果所述数据为主表数据,且所述数据的待执行操作为插入操作,根据关联表的关联关系,生成关联查询语句,查询所述结构化查询语言数据库,并将查询到的数据转换为目标库的事件数据对象;
如果所述数据为主表数据,且所述数据的待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
2.如权利要求1所述的方法,其特征在于,所述获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据包括:
通过模拟的从库与所述结构化查询语言数据库所建立的连接,获取所述结构化查询语言数据库的日志文件的位置信息;
根据所述位置信息,向所述结构化查询语言数据库发送备份命令,获得所述结构化查询语言数据库推送的日志文件;
解析所述日志文件,按照所述日志文件的格式获取所述结构化查询语言数据库中的变更数据。
3.如权利要求2所述的方法,其特征在于,所述获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据还包括:
更新并保存所述结构化查询语言数据库的当前日志文件的位置信息。
4.如权利要求1所述方法,其特征在于,所述根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行数据转换操作包括:
如果所述数据为从表数据,且所述待执行操作为插入操作,将插入操作转为对宽表更新操作;
如果所述数据为从表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
5.如权利要求1所述方法,其特征在于,所述接收数据转换操作完成的转换后数据,将所述转换后数据载入到目标数据库的宽表中包括:
接收数据载入请求,并将相同主键的数据按照数据的事件类型以及数据的内容生成事件操作语句;
调用所述结构化查询语言数据库,执行对应的结构化查询语言语句,完成数据载入。
6.如权利要求5所述方法,其特征在于,所述数据的事件类型包括插入事件、更新事件以及删除事件中至少一种。
7.一种结构化查询语言数据库中的宽表生成装置,其特征在于,包括:
数据提取器,用于获取所述结构化查询语言数据库的日志文件,并通过所述日志文件获得所述结构化查询语言数据库中的变更数据;
数据转换器,用于根据所述变更数据获得所述日志文件对应的关联表的关联关系以及数据的待执行操作,执行所述数据的转换操作;
数据下载器,用于接收数据转换操作完成的转换后数据,将所述转换后数据载入到目标数据库的宽表中;
其中,所述数据转换器包括:
关联管理器,用于根据所述变更数据获得所述日志文件对应的关联表,并判断所述关联表中的数据是否为主表数据;
第一主表处理器,用于如果所述数据为主表数据,且所述待执行操作为插入操作,根据关联表的关联关系,生成关联查询语句,查询所述结构化查询语言数据库,并将查询到的数据转换为目标库的事件数据对象;
第二主表处理器,用于如果所述数据为主表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
8.如权利要求7所述的装置,其特征在于,所述数据提取器包括:
位置管理器,用于通过模拟的从库与所述结构化查询语言数据库所建立的连接,获取所述结构化查询语言数据库的日志文件的位置信息;
命令发生器,用于根据所述位置信息,向所述结构化查询语言数据库发送备份命令,获得所述结构化查询语言数据库推送的日志文件;
事件解析器,用于解析所述日志文件,按照所述日志文件的格式获取所述结构化查询语言数据库中的变更数据。
9.如权利要求8所述的装置,其特征在于,所述位置管理器还用于更新并保存所述结构化查询语言数据库的当前日志文件的位置信息。
10.如权利要求7所述装置,其特征在于,所述数据转换器还包括:
第一从表处理器,用于如果所述数据为从表数据,且所述待执行操作为插入操作,将插入操作转为对宽表更新操作;
第二从表处理器,用于如果所述数据为从表数据,且所述待执行操作为删除操作或者更新操作,直接将所述结构化查询语言数据库的事件数据对象转换为目标库的事件数据对象。
11.如权利要求7所述装置,其特征在于,所述数据下载器包括:
数据合并器,用于接收数据载入请求,并将相同主键的数据按照数据的事件类型以及数据的内容生成事件操作语句;
载入执行器,用于调用所述结构化查询语言数据库,执行对应的结构化查询语言语句,完成数据载入。
12.如权利要求11所述装置,其特征在于,所述数据的事件类型包括插入事件、更新事件以及删除事件中至少一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611161287.1A CN108228628B (zh) | 2016-12-15 | 2016-12-15 | 一种结构化查询语言数据库中的宽表生成方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611161287.1A CN108228628B (zh) | 2016-12-15 | 2016-12-15 | 一种结构化查询语言数据库中的宽表生成方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228628A CN108228628A (zh) | 2018-06-29 |
CN108228628B true CN108228628B (zh) | 2020-11-17 |
Family
ID=62650603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611161287.1A Active CN108228628B (zh) | 2016-12-15 | 2016-12-15 | 一种结构化查询语言数据库中的宽表生成方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108228628B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125207B (zh) * | 2018-10-30 | 2021-03-12 | 亿度慧达教育科技(北京)有限公司 | 一种数据获取方法、装置、连接器及presto引擎 |
CN109684332A (zh) * | 2018-12-20 | 2019-04-26 | 贵州工程应用技术学院 | 一种数据宽表生成方法、装置及系统 |
CN109840246A (zh) * | 2019-01-31 | 2019-06-04 | 北京三快在线科技有限公司 | 一种用于计算目标特征的历史数据的方法及装置 |
CN110245002B (zh) * | 2019-05-23 | 2023-02-17 | 创新先进技术有限公司 | 系统交互方法、装置、设备及存储介质 |
CN110955662A (zh) * | 2019-11-29 | 2020-04-03 | 车智互联(北京)科技有限公司 | 一种维护数据表关联关系的方法、计算设备及存储介质 |
CN111241125B (zh) * | 2020-01-08 | 2023-06-02 | 北京数培通网络科技有限公司 | 一种记录操作日志的方法、装置、电子设备和存储介质 |
CN113821492A (zh) * | 2020-06-19 | 2021-12-21 | 北京国电思达科技有限公司 | 一种基于Redis的风机数据读写方法、装置、系统和介质 |
CN113760836B (zh) * | 2021-01-27 | 2024-04-12 | 北京京东振世信息技术有限公司 | 一种宽表计算方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324901A (zh) * | 2008-08-06 | 2008-12-17 | 中国电信股份有限公司 | 数据挖掘方法、平台和系统 |
EP2660736A1 (en) * | 2012-04-30 | 2013-11-06 | Sap Ag | Partial merge in a multi-level storage architecture |
CN105279269A (zh) * | 2015-10-27 | 2016-01-27 | 中通服公众信息产业股份有限公司 | 一种支持表自由关联的sql生成方法和系统 |
CN105930446A (zh) * | 2016-04-20 | 2016-09-07 | 重庆重邮汇测通信技术有限公司 | 一种基于Hadoop分布式技术的电信客户标签生成方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577577A (zh) * | 2013-11-06 | 2014-02-12 | 北京京东尚科信息技术有限公司 | 一种保存数据库日志的方法、装置及系统 |
CN103678665B (zh) * | 2013-12-24 | 2016-09-07 | 焦点科技股份有限公司 | 一种基于数据仓库的异构大数据整合方法和系统 |
CN105320680A (zh) * | 2014-07-15 | 2016-02-10 | 中国移动通信集团公司 | 一种数据同步方法及装置 |
-
2016
- 2016-12-15 CN CN201611161287.1A patent/CN108228628B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324901A (zh) * | 2008-08-06 | 2008-12-17 | 中国电信股份有限公司 | 数据挖掘方法、平台和系统 |
EP2660736A1 (en) * | 2012-04-30 | 2013-11-06 | Sap Ag | Partial merge in a multi-level storage architecture |
CN105279269A (zh) * | 2015-10-27 | 2016-01-27 | 中通服公众信息产业股份有限公司 | 一种支持表自由关联的sql生成方法和系统 |
CN105930446A (zh) * | 2016-04-20 | 2016-09-07 | 重庆重邮汇测通信技术有限公司 | 一种基于Hadoop分布式技术的电信客户标签生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108228628A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228628B (zh) | 一种结构化查询语言数据库中的宽表生成方法及其装置 | |
CN110765744B (zh) | 多人协同文档编辑方法及系统 | |
WO2017181591A1 (zh) | 测试方法及系统 | |
WO2020233369A1 (zh) | 基于模拟端口改进软件集成系统的方法及相关设备 | |
CN112463634B (zh) | 微服务架构下的软件测试方法及装置 | |
CN112154420A (zh) | 自动智能云服务测试工具 | |
WO2019128829A1 (zh) | 动作执行方法、装置、存储介质及电子装置 | |
CN111341315B (zh) | 语音控制方法、装置、计算机设备和存储介质 | |
CN112286485B (zh) | 通过语音控制应用的方法、装置、电子设备与存储介质 | |
CN113157345A (zh) | 前端工程自动启动方法及装置 | |
CN111111201A (zh) | 一种基于游戏的技能创建方法、装置、服务器及介质 | |
CN113778897B (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN112084210A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
Hamza et al. | TCAIOSC: application code conversion | |
CN110600021A (zh) | 室外智能语音交互方法、装置和系统 | |
CN113495723B (zh) | 一种调用功能组件的方法、装置及存储介质 | |
CN113282268B (zh) | 音效配置方法和装置、存储介质及电子设备 | |
CN109522187B (zh) | 状态信息快速提取方法及装置 | |
KR20100056337A (ko) | 메뉴 테스트용 스크립트 생성 장치, 이를 포함하는 메뉴 테스트 자동화 시스템, 및 그 방법 | |
CN109634647B (zh) | 大型前端项目的构建方法及系统 | |
CN114637531A (zh) | 应用程序接口动态生成方法及装置 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
CN113949739A (zh) | 跨设备播放方法、装置、电子设备及存储介质 | |
CN108848398B (zh) | 一种本地弹幕消息的分发方法、装置、终端和存储介质 | |
CN111090854A (zh) | 目标程序的执行与转换方法、装置、终端和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |