CN112463886B - 一种数据处理方法、装置、电子设备及存储介质 - Google Patents

一种数据处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112463886B
CN112463886B CN202011380363.4A CN202011380363A CN112463886B CN 112463886 B CN112463886 B CN 112463886B CN 202011380363 A CN202011380363 A CN 202011380363A CN 112463886 B CN112463886 B CN 112463886B
Authority
CN
China
Prior art keywords
index
data
synchronization
alias
data processing
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
Application number
CN202011380363.4A
Other languages
English (en)
Other versions
CN112463886A (zh
Inventor
刘文之
袁博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202011380363.4A priority Critical patent/CN112463886B/zh
Publication of CN112463886A publication Critical patent/CN112463886A/zh
Application granted granted Critical
Publication of CN112463886B publication Critical patent/CN112463886B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据处理方法、装置、电子设备及存储介质,在本发明实施例中,电子设备中预设有多种数据处理策略,并且每种数据处理策略与数据表的类别、同步方式、生命周期存在对应关系。当接收到数据同步请求信息,解析出数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期,然后根据预设的对应关系确定目标数据处理策略。基于目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将待同步的数据表中的数据同步存储至对应的存储索引中。这样针对不同的业务场景,会根据不同的数据处理策略来进行数据处理。从而能够充分匹配实际多种业务场景。

Description

一种数据处理方法、装置、电子设备及存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
在大数据时代,数据处理一般包括数据同步和数据检索等处理方案。在不同的业务场景中,关系型数据库中的数据表可能包括分区表和非分区表,数据同步方式可能包括全量同步和增量同步,分区表中可能包括拉链表这种常用的快照式表,数据表的生命周期包括永久和非永久等。不同的业务场景具有不同的特点,但是现有技术中在进行数据同步时,不对待同步的数据表的类别、同步方式和生命周期进行区分,一般都是一次性的将数据库中的数据同步至索引库中,然后用户在索引库中进行检索等操作,如果后续数据库中的数据有增加,然后再将数据库中增加的数据逐条同步至索引库中。
由于现有技术中在进行数据同步时,不对待同步的数据表的类别、同步方式和生命周期进行区分,都是采用单一的数据处理方案,因此不能很好的适用不同的业务需求。
发明内容
本发明实施例提供了一种数据处理方法、装置、电子设备及存储介质,用以解决目前的数据处理方案单一,不能充分匹配实际多种业务场景的问题。
本发明实施例提供了一种数据处理方法,所述方法包括:
接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;
根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中。
进一步地,所述预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期包括:
类别为非分区数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为非分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区拉链数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为非永久对应的数据处理策略为索引模板策略。
进一步地,若所述目标数据处理策略为循环索引策略,所述基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引包括:
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引、读取索引和删除索引,并为所述存储索引设置对应的存储别名,为所述读取索引设置对应的读取别名,为所述删除索引设置对应的删除别名;以使用户通过别名进行数据处理;
所述方法还包括:
通过索引刷新,更新所述存储索引、读取索引和删除索引和别名的对应关系,其中,将所述删除别名、读取别名和存储别名按照从左到右逻辑排序,在进行索引刷新时,将所述删除索引、读取索引和存储索引循环左移一位。
进一步地,所述将所述待同步的数据表中的数据同步存储至所述对应的存储索引中包括:
若所述待同步的数据表为拉链表,在同步周期中获取所述拉链表中存储数据量最大的分区中的第一数据量,判断所述第一数据量是否增大,如果是,将所述拉链表中存储数据量最大的分区中的数据存储至所述存储别名对应的索引中,并进行索引刷新;
若所述待同步的数据表为非分区表,在同步周期中获取所述非分区表中存储的第二总数据量,判断所述第二总数据量是否增大,如果是,将所述非分区表中存储的数据存储至所述存储别名对应的索引中,并进行索引刷新。
进一步地,若所述目标数据处理策略为单索引策略,所述基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引包括:
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,并为所述存储索引分别设置删除别名、读取别名和存储别名;以使用户通过别名进行数据处理。
进一步地,所述将所述待同步的数据表中的数据同步存储至所述对应的存储索引中包括:
在同步周期中获取所述待同步的数据表中数据增量标识的最大值,判断所述数据增量标识的最大值是否增大,如果是,将增大的数据增量标识对应的数据存储至所述存储别名对应的索引中。
进一步地,若所述目标数据处理策略为索引模板策略,所述基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引包括:
基于所述目标数据处理策略,根据所述待同步的数据表的分区,在Elasticsearch索引库中创建与所述待同步的数据表的分区分别对应的每个存储索引,并为所述每个存储索引设置读取别名;以使用户通过所述读取别名进行数据处理。
进一步地,所述方法还包括:
在同步周期中判断所述待同步的数据表中是否存在数据被清理的分区,如果是,删除所述数据被清理的分区对应的存储索引。
进一步地,所述方法还包括:
当接收到检索请求信息,通过所述Elasticsearch索引库的API接口,将所述检索指令中携带的SQL语句转换为所述Elasticsearch索引库支持的检索语句,基于所述检索语句从读取别名对应的索引中检索数据。
进一步地,当接收到检索请求信息之后,通过所述Elasticsearch索引库的API接口,将所述检索指令中携带的SQL语句转换为所述Elasticsearch索引库支持的检索语句之前,所述方法还包括:
判断所述检索指令中携带的SQL语句语法是否正确,如果否,输出SQL语句语法错误提示信息,如果是,进行后续步骤。
进一步地,所述方法还包括:
生成日志文件,其中,所述日志文件中包括数据处理过程中的数据同步开始时间、数据同步结束时间、同步数据量和创建索引信息。
另一方面,本发明实施例提供了一种数据处理装置,所述装置包括:
接收模块,用于接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;
确定模块,用于根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;
同步模块,用于基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中。
进一步地,所述预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期包括:
类别为非分区数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为非分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区拉链数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为非永久对应的数据处理策略为索引模板策略。
进一步地,若所述目标数据处理策略为循环索引策略,所述同步模块,具体用于基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引、读取索引和删除索引,并为所述存储索引设置对应的存储别名,为所述读取索引设置对应的读取别名,为所述删除索引设置对应的删除别名;以使用户通过别名进行数据处理;
所述装置还包括:
索引刷新模块,用于通过索引刷新,更新所述存储索引、读取索引和删除索引和别名的对应关系,其中,将所述删除别名、读取别名和存储别名按照从左到右逻辑排序,在进行索引刷新时,将所述删除索引、读取索引和存储索引循环左移一位。
进一步地,所述同步模块,具体用于若所述待同步的数据表为拉链表,在同步周期中获取所述拉链表中存储数据量最大的分区中的第一数据量,判断所述第一数据量是否增大,如果是,将所述拉链表中存储数据量最大的分区中的数据存储至所述存储别名对应的索引中,并触发所述索引刷新模块;若所述待同步的数据表为非分区表,在同步周期中获取所述非分区表中存储的第二总数据量,判断所述第二总数据量是否增大,如果是,将所述非分区表中存储的数据存储至所述存储别名对应的索引中,并触发所述索引刷新模块。
进一步地,若所述目标数据处理策略为单索引策略,所述同步模块,具体用于基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,并为所述存储索引分别设置删除别名、读取别名和存储别名;以使用户通过别名进行数据处理。
进一步地,所述同步模块,具体用于在同步周期中获取所述待同步的数据表中数据增量标识的最大值,判断所述数据增量标识的最大值是否增大,如果是,将增大的数据增量标识对应的数据存储至所述存储别名对应的索引中。
进一步地,若所述目标数据处理策略为索引模板策略,所述同步模块,具体用于基于所述目标数据处理策略,根据所述待同步的数据表的分区,在Elasticsearch索引库中创建与所述待同步的数据表的分区分别对应的每个存储索引,并为所述每个存储索引设置读取别名;以使用户通过所述读取别名进行数据处理。
进一步地,所述装置还包括:
删除模块,用于在同步周期中判断所述待同步的数据表中是否存在数据被清理的分区,如果是,删除所述数据被清理的分区对应的存储索引。
进一步地,所述装置还包括:
检索模块,用于当接收到检索请求信息,通过所述Elasticsearch索引库的API接口,将所述检索指令中携带的SQL语句转换为所述Elasticsearch索引库支持的检索语句,基于所述检索语句从读取别名对应的索引中检索数据。
进一步地,所述装置还包括:
判断模块,用于判断所述检索指令中携带的SQL语句语法是否正确,如果否,输出SQL语句语法错误提示信息,如果是,触发所述检索模块。
进一步地,所述装置还包括:
生成模块,用于生成日志文件,其中,所述日志文件中包括数据处理过程中的数据同步开始时间、数据同步结束时间、同步数据量和创建索引信息。
另一方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一项所述的方法步骤。
另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法步骤。
本发明实施例提供了一种数据处理方法、装置、电子设备及存储介质,所述方法包括:接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中。
上述的技术方案具有如下优点或有益效果:
由于在本发明实施例中,电子设备中预设有多种数据处理策略,并且每种数据处理策略与数据表的类别、同步方式、生命周期存在对应关系。当接收到数据同步请求信息,解析出数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期,然后根据预设的对应关系确定目标数据处理策略。基于目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将待同步的数据表中的数据同步存储至对应的存储索引中。这样针对不同的业务场景,会根据不同的数据处理策略来进行数据处理。从而能够充分匹配实际多种业务场景。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的数据处理过程示意图;
图2为本发明实施例2提供的循环索引策略初始化索引状态示意图;
图3为本发明实施例2提供的循环索引策略第一次索引刷新后的索引状态示意图;
图4为本发明实施例2提供的循环索引策略第二次索引刷新后的索引状态示意图;
图5为本发明实施例2提供的循环索引策略第三次索引刷新后的索引状态示意图;
图6为本发明实施例4提供的单索引策略索引状态示意图;
图7为本发明实施例5提供的索引模板策略索引状态示意图;
图8为本发明实施例6提供的数据检索流程图;
图9为本发明实施例7提供的数据处理流程图;
图10为本发明实施例8提供的数据处理装置结构示意图;
图11为本发明实施例9提供的电子设备结构示意图。
具体实施方式
下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面对本发明实施例涉及的术语进行解释说明:
Elasticsearch:Java语言开发的基于Lucene的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
Document(文档):存储在Elasticsearch中的一个JSON格式的字符串。类似关系型数据库表中的一行。
Index(索引):具有相同结构的文档集合。
Type(类型):索引的逻辑分区,一种类型被定义为具有一组公共字段的文档。类似关系型数据库中的表。
Mapping(映射):类似关系数据库中的表结构,每一个索引都有一个映射,它定义了索引中每一个字段类型,以及一个索引范围内的设置。
Template(模板):一个创建好的索引参数设置和映射的模板,在创建新索引的时候指定模板名称就可以使用模板定义好的参数设置和映射。
ES-DSL:Elasticsearch Domain Specific Language缩写,Elasticsearch领域内专用语言,基于JSON定义查询语句。
别名:Elasticsearch可以对一个或者多个索引指定别名,通过别名可以查询到一个或者多个索引的内容。在内部,Elasticsearch框架自动把别名被映射到索引上。
实施例1:
图1为本发明实施例提供的数据处理过程示意图,该过程包括以下步骤:
S101:接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期。
S102:根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略。
S103:基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中。
本发明实施例提供的数据处理方法应用于电子设备,该电子设备可以是PC、平板电脑等设备。
电子设备的界面上可以设置输入数据同步请求信息的窗口,用户在电子设备的界面上输入数据同步请求信息,并在数据同步请求信息中携带数据库中待同步的数据表的类别、同步方式和生命周期。其中。电子设备的界面上可以展示供用户选择的待同步的数据表,以及数据表的类别、同步方式和生命周期。用户在电子设备的界面上输入数据同步请求信息,并在电子设备的界面上选择待同步的数据表,以及数据表的类别、同步方式和生命周期,这些选择的数据表的类别、同步方式和生命周期携带在数据同步请求信息中。
电子设备接收到数据同步请求信息之后,通过解析数据同步请求信息获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期。电子设备保存有预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,在获取到数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期之后,根据预设的上述对应关系,将数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期对应的数据处理策略确定为目标数据处理策略。电子设备基于目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将待同步的数据表中的数据同步存储至所述对应的存储索引中。
具体的,本发明实施例中所述预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期包括:
类别为非分区数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为非分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区拉链数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为非永久对应的数据处理策略为索引模板策略。
具体如表1所示:
表1
数据表类型 同步方式 生命周期 数据处理策略
关系型数据库非分区表 全量 永久 循环索引策略
关系型数据库非分区表 增量 永久 单索引策略
关系型数据库分区拉链表 全量 永久 循环索引策略
关系型数据库分区表 增量 永久 单索引策略
关系型数据库分区表 增量 非永久 索引模板策略
由于在本发明实施例中,电子设备中预设有多种数据处理策略,并且每种数据处理策略与数据表的类别、同步方式、生命周期存在对应关系。当接收到数据同步请求信息,解析出数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期,然后根据预设的对应关系确定目标数据处理策略。基于目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将待同步的数据表中的数据同步存储至对应的存储索引中。这样针对不同的业务场景,会根据不同的数据处理策略来进行数据处理。从而能够充分匹配实际多种业务场景。
实施例2:
在上述实施例的基础上,在本发明实施例中,若所述目标数据处理策略为循环索引策略,所述基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引包括:
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引、读取索引和删除索引,并为所述存储索引设置对应的存储别名,为所述读取索引设置对应的读取别名,为所述删除索引设置对应的删除别名;以使用户通过别名进行数据处理;
所述方法还包括:
通过索引刷新,更新所述存储索引、读取索引和删除索引和别名的对应关系,其中,将所述删除别名、读取别名和存储别名按照从左到右逻辑排序,在进行索引刷新时,将所述删除索引、读取索引和存储索引循环左移一位。
在本发明实施例中,若所述目标数据处理策略为循环索引策略,在Elasticsearch索引库中创建对应的存储索引、读取索引和删除索引,并为每个索引分别设置对应的别名,即为存储索引设置对应的存储别名,为读取索引设置对应的读取别名,为删除索引设置对应的删除别名。用户通过别名进行数据处理,即通过存储别名向存储索引中存储数据,通过读取别名从读取索引中读取数据,通过删除别名,删除所述删除索引中的数据。
在每次同步数据完成后,执行索引刷新操作,通过索引刷新,更新所述存储索引、读取索引和删除索引和别名的对应关系,其中,将删除别名、读取别名和存储别名按照从左到右逻辑排序,在进行索引刷新时,将所述删除索引、读取索引和存储索引循环左移一位。也就是第一次索引刷新之后,删除别名对应读取索引,读取别名对应存储索引,存储别名对应删除索引。第二次索引刷新之后,删除别名对应存储索引,读取别名对应删除索引,存储别名对应读取索引。第三次索引刷新之后,删除别名对应删除索引,读取别名对应读取索引,存储别名对应存储索引。也就是说第三次索引刷新之后,别名和索引的对应关系回归到初始化状态。
循环索引策略:
循环索引策略应用于以全量方式同步永久存储的分区拉链表或者非分区表业务场景,主要针对需要同步的历史数据和实时数据量都比较大的情况。该策略的索引初始化方法初始化索引状态如图2所示。循环索引策略的索引初始化方法为要同步的表创建三个真实索引(图2中Index-D代表删除索引,Index-R代表读取索引,Index-W代表存储索引)、三种索引状态(图2中D、R、W,索引状态可用一个变量表示)、三个索引别名(图2中删除别名,读取别名和存储别名)。其中真实索引名称为表名称(这里用Index代替)附加三种操作类型的后缀,真实索引名称后缀-D代表初始化删除索引,真实索引名称后缀-R代表初始化读取索引,真实索引名称-W代表初始化存储索引,创建索引状态D对应删除索引,创建索引状态R对应读取索引,创建索引状态W对应存储索引。创建删除别名指向状态为D的真实索引,创建读取别名指向状态为R的真实索引,创建存储别名指向状态为W的真实索引。初始化完成后,同步任务线程可以执行首次同步,同步数据库表中的历史数据到存储别名指向的存储索引Index-W中,并在同步完成之后调用同步策略的索引刷新方法执行第一次刷新,刷新方式为索引别名指向的索引循环左移一位,如图3所示。
第一次刷新之后,删除别名指向了状态为R的索引Index-R,此时该索引仍然是一个空索引;读取别名指向了状态为W的索引Index-W,该索引中的数据为刚刚同步的最新数据;存储别名指向了状态为D的索引Index-D。因为目前Elasticsearch框架的别名不支持修改,刷新的实现方式为删除原有别名,根据索引状态后缀信息(D、R、W)给索引创建新的别名。第一次刷新之后,用户可以通过读取别名指向的Index-W索引读取数据,删除别名指向的索引Index-R中暂时没有数据,不做处理。同步任务在下一个同步周期可以继续向存储别名指向的索引Index-D中同步数据,第二次同步执行完成后,执行刷新索引操作。刷新方式与首次刷新方法一致,索引别名指向的索引循环左移一位,第二次刷新之后的索引状态图如图4所示。
第二次刷新执行完成后,读取别名指向状态为D的索引Index-D,该索引中的数据为第一次刷新之后同步的最新有效数据,直接通过索引的读取别名供用户查询;删除别名指向状态为W的索引Index-W,该索引中的数据为创建索引后、第一次刷新前给用户读取的数据,属于过期数据,同步任务可以直接调用循环索引策略的索引清理方法清理该索引中的数据,因为数据量比较大,Elasticsearch框架清理数据的时间可能较长,循环索引策略的清理数据方法直接删除索引然后重建同名索引;存储别名指向状态为R的索引Index-R,该索引是一个空索引,同步任务在下一个同步周期可以同步数据到这个索引中,第三次同步完成之后,同步任务可以调用刷新方法执行第三次刷新,刷新方式和前两次刷新一致。索引别名指向的索引循环左移一位,第三次刷新之后的索引状态图如图5所示。
第三次刷新完成后,所以别名指向索引信息回归到初始化后的状态,图5的索引别名指向和图2一致,读取别名指向状态为R的索引Index-R,该索引中为最新的同步数据,用户可以继续通过读取别名检索同步数据信息;删除别名指向状态为D的索引Index-D,该索引中的数据为过期数据,同步任务可以调用循环索引策略提供的索引清理方法清理该索引中的数据;存储别名指向状态为W的索引Index-W,该索引已经在第二次刷新的过程中进行了清空,同步任务可以在下一个同步周期继续全量同步数据到该索引中。
图2至图5为索引一个刷新周期的完整状态图,循环索引策略重复该同步刷新步骤,保证在实时数据和历史数据量都比较大的情况下,在同步数据的同时满足用户的查询需求。如果某次刷新之后,处于同步周期中的同步任务发现没有实时数据量增加,则可以由同步任务线程控制暂时不进行同步操作,等到下一个同步周期再根据实际数据量执行同步,同步完成之后再刷新索引,避免不必要的同步和刷新操作。
循环索引策略保证了在要同步的历史数据和实时数据都比较大的情况下,数据检索服务和数据同步服务同时进行,并且通过别名机制给用户在检索数据时感觉从始至终都在查询一个索引,索引本身没有发生变化。
实施例3:
在上述各实施例的基础上,在本发明实施例中,所述将所述待同步的数据表中的数据同步存储至所述对应的存储索引中包括:
若所述待同步的数据表为拉链表,在同步周期中获取所述拉链表中存储数据量最大的分区中的第一数据量,判断所述第一数据量是否增大,如果是,将所述拉链表中存储数据量最大的分区中的数据存储至所述存储别名对应的索引中,并进行索引刷新;
若所述待同步的数据表为非分区表,在同步周期中获取所述非分区表中存储的第二总数据量,判断所述第二总数据量是否增大,如果是,将所述非分区表中存储的数据存储至所述存储别名对应的索引中,并进行索引刷新。
拉链表是这样一种表:例如表里有多个分区,比如1,2,3,4,5个编号的分区,2分区中包括1分区中的数据,3分区中包括2分区中的数据,4分区中包括3分区中的数据,5分区中包括4分区中的数据,然后随着时间会有删除之前分区的策略。在本发明实施例中,通过判断拉链表中存储数据量最大的分区中的数据量是否增大来判断是否触发数据同步。具体的,电子设备在同步周期中获取拉链表中存储数据量最大的分区中的第一数据量,当判断当前的第一数据量相较于上一次获取的拉链表中存储数据量最大的分区中的第一数据量增大时,将所述拉链表中存储数据量最大的分区中的数据存储至所述存储别名对应的索引中,并进行索引刷新。否则不进行数据同步,也不进行索引刷新。
若待同步的数据表为非分区表,在本发明实施例中,通过判断非分区表中存储的总数据量是否增大来判断是否触发数据同步。具体的,电子设备在同步周期中获取所述非分区表中存储的第二总数据量,当判断当前的第二总数据量相较于上一次获取的第二总数据量增大时,将非分区表中存储的数据存储至存储别名对应的索引中,并进行索引刷新。否则不进行数据同步,也不进行索引刷新。
在本发明实施例中,电子设备通过在同步周期中判断数据表中存储的数据量是否增大,实现了自动实现数据同步及索引刷新。
业务场景为采用全量方式同步分区拉链表或者非分区表数据时,系统为用户创建全量同步任务,全量同步任务基于循环索引策略同步数据。
当同步的表为拉链表时,系统为该表创建完对应的索引和文档之后,同步任务线程首次执行同步任务,同步方式为从后向前遍历该表的全部有效分区,一直找到第一个有效分区,记录该分区的数据总量N1(N1≥0),基于循环索引策略同步数据到对应的索引中,同步的数据量为N1,达到同步数据量之后完成首次同步,并调用循环索引策略的刷新方法执行刷新操作,让用户能够通过索引的读取别名检索数据。首次同步完成之后,到达下一个同步周期时,同步任务线程进行数据量判断以确认是否进行下一次同步。同步任务线程从后向前遍历该表的全部分区,一直找到第一个有效分区,记录该分区数据量N2(N2≥0),判断条件:N2>N1是否存在,如果该条件不成立,则同步任务线程不进行同步也不执行刷新,等到下一个同步周期重新遍历分区,执行同步和刷新检测;如果条件:N2>N1存在,则按照循环索引策略,同步该分区中的数据到第二个索引中,同步数据量为N2,同步完成后,调用循环索引策略的刷新方法执行刷新操作。同步任务线程重复循环执行检测、同步和刷新的流程。
当同步的表为非分区表时,系统为该表创建完对应的索引和文档之后,同步任务线程统计并记录该表的数据总量N1(N1≥0),然后基于循环索引策略同步数据到指定的分区文档中,同步数据量为N1,同步完成之后,按照循环索引策略刷新索引。刷新完成之后,到达下一个同步周期时,同步任务线程统计该表的数据总量N2(N2≥0),然后,判断条件:N2>N1是否存在,如果条件成立,则基于循环索引策略同步数据到对应的索引中并执行刷新索引操作;如果条件不成立,则不执行同步和刷新操作,等待下一个执行周期检测该表的数据量,出现总量大于N1时,执行同步和刷新操作。同步任务线程重复循环执行检测、同步和刷新的流程。
如果在全量同步的过程中,用户在前端停止同步服务,清空同步数据,并重新开启同步任务。同步任务在后台删除掉原来的真实索引,并重新创建同名索引,基于循环索引策略重新同步数据到对应的索引中。
实施例4:
在上述各实施例的基础上,在本发明实施例中,若所述目标数据处理策略为单索引策略,所述基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引包括:
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,并为所述存储索引分别设置删除别名、读取别名和存储别名;以使用户通过别名进行数据处理。
单索引策略应用于以增量方式同步永久存储的分区表或者非分区表业务场景,属于一般性通用同步方法,配置该同步策略的原始物理表中需要具有整型增量字段或者日期时间类型字段作为增量标识,该策略为需要同步的表创建一个对应的索引(索引名称可与表名相同)。在该策略的初始化方法中,创建删除别名、读取别名和写入别名都指向该索引。索引状态图如图6所示。
该策略的刷新方法内部逻辑为空,因为只有一个索引,不涉及别名和索引切换。该策略的清空和删除方法实现逻辑为根据删除别名清空对应索引的数据,实现方式为删除原索引,然后重新创建同名索引。数据同步任务直接根据原表中的增量字段将数据同步到写入别名指向的索引中,并周期性检查原始表数据的增量信息,在存在增量数据的情况下同步增量数据到索引中。用户可以通过可读别名读取该索引中的数据。
在本发明实施例中,所述将所述待同步的数据表中的数据同步存储至所述对应的存储索引中包括:
在同步周期中获取所述待同步的数据表中数据增量标识的最大值,判断所述数据增量标识的最大值是否增大,如果是,将增大的数据增量标识对应的数据存储至所述存储别名对应的索引中。
在本发明实施例中,通过判断待同步的数据表中数据增量标识的最大值是否增大来判断是否触发数据同步。具体的,电子设备在同步周期中获取待同步的数据表中数据增量标识的最大值,当判断当前的数据增量标识的最大值相较于上一次获取的数据增量标识的最大值增大时,将增大的数据增量标识对应的数据存储至所述存储别名对应的索引中。否则不进行数据同步。
业务场景为以增量的方式同步永久存储的分区表或者非分区表时,采用基于单索引策略的增量同步任务。原始物理表中包括整型自增字段或者日期时间类型字段作为增量标识。首次同步数据时,同步任务线程首先记录此时表中的增量标识最大值N1,然后调用Elasticsearch框架的存储相关API同步数据到对应索引的_doc文档中,同步数据为增量标识N1之前的数据,首次同步完成之后,对要同步的表进行定时周期性增量标识检测,当增量标识增加时,记录增量标识的值N2,同步表中N1到N2之间的数据,然后重复执行循环检测和同步的流程,实现增量同步功能。单索引策略没有刷新操作,同步任务不执行索引刷新相关内容。用户可以直接检索同步到索引中的数据。
如果用户在前端执行停止同步任务,清空同步数据操作,并重新开启同步任务,系统删除原始的同步索引,删除记录的增量标识记录,重建一个同名的索引,重新获取增量标识最大字段,并重新同步数据。
实施例5:
在上述各实施例的基础上,在本发明实施例中,若所述目标数据处理策略为索引模板策略,所述基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引包括:
基于所述目标数据处理策略,根据所述待同步的数据表的分区,在Elasticsearch索引库中创建与所述待同步的数据表的分区分别对应的每个存储索引,并为所述每个存储索引设置读取别名;以使用户通过所述读取别名进行数据处理。
所述方法还包括:
在同步周期中判断所述待同步的数据表中是否存在数据被清理的分区,如果是,删除所述数据被清理的分区对应的存储索引。
索引模板策略应用于以增量方式采集非永久存储的分区表业务场景。该策略的初始化方法根据具体的同步表字段类型创建索引模板,针对于原表的多个分区,分别根据模板创建索引与之对应,然后定义读取别名指向创建的分区索引,如图7所示。
根据表实际的分区信息,创建索引Index-1,Index-2,Index-3等多个索引,定义一个读取别名指向全部索引。同步任务同步原表中不同分区中的数据到对应的分区索引中,用户通过统一的读取别名读取全部分区索引中的同步数据。
索引模板策略的刷新方法检查是否存在过期的索引,若存在则删除过期索引,反之什么都不做。索引清空方法根据索引读取别名查询出全部索引,然后统一删除掉。也就是在同步周期中判断所述待同步的数据表中是否存在数据被清理的分区,如果是,删除所述数据被清理的分区对应的存储索引。
业务场景为以增量的方式同步非永久存储的分区表时,采用基于索引模板策略的增量同步任务。
该策略的初始化方法根据具体的表的分区为同步的物理表创建对应的索引,同步任务同步分区的数据到对应的索引中,一个分区的数据对应一个具体的索引,同步任务记录好每个同步周期中最后一个有效分区N(该分区属于最新的有效分区,数据可能不全),并在下一个同步周期中,判断是否存在分区N+1,存在的情况下则删除分区N对应的索引,重新创建对应分区N的同步索引,并重新同步分区N中的数据到该索引中,同步完成后继续按照索引模板策略,创建对应分区N+1的索引,并同步该分区中的数据到对应索引中。同步任务根据实际业务场景执行刷新策略,在执行刷新策略的过程中,根据原始分区物理表的实际数据过期时间信息删除对应分区的同步索引。用户在前端可以通过一个索引别名检索全部索引中的数据。如果用户在前端执行停止同步任务,清空同步数据,并重新开启同步任务,系统删除读取别名指向的全部索引,并根据模板信息重新创建索引,同步有效分区的数据到对应的模板索引中。
实施例6:
在上述各实施例的基础上,在本发明实施例中,所述方法还包括:
当接收到检索请求信息,通过所述Elasticsearch索引库的API接口,将所述检索指令中携带的SQL语句转换为所述Elasticsearch索引库支持的检索语句,基于所述检索语句从读取别名对应的索引中检索数据。
本发明实施例中所基于的Elasticsearch框架提供了直接通过SQL查询的API接口:_xpack/sql,用户可直接通过Postman等工具,调用该Restful接口,以SQL语句的方式查询具体索引数据。但是直接通过该接口查询索引数据,存在部分语法不支持导致查询不到数据的情况(比如不支持索引名称中带有中划线的情况)。数据检索服务模块为用户提供单独的数据检索服务,用户在前端界面输入完整的查询SQL,数据检索服务模块调用Elasticsearch框架的API直接将SQL转为ES-DSL,然后提交该ES-DSL语句到Elasticsearch集群执行,将查询记录以分页的方式展现给用户。
当接收到检索请求信息之后,通过所述Elasticsearch索引库的API接口,将所述检索指令中携带的SQL语句转换为所述Elasticsearch索引库支持的检索语句之前,所述方法还包括:
判断所述检索指令中携带的SQL语句语法是否正确,如果否,输出SQL语句语法错误提示信息,如果是,进行后续步骤。
具体流程图如图8所示。电子设备首先接收用户从前端录入的SQL语句,进行基本的SQL语法验证,验证通过之后,调用Elasticsearch框架的API接口对用户提交的SQL语句进行转换,系统使用java语言开发,直接调用Elasticsearch框架的SQL解析类org.nlpcn.es4sql.SearchDao类的explain方法对SQL进行解析,如果解析失败提示SQL语法错误,或者存在目前不支持的语法,并给前端返回具体的解析异常信息。解析成功后得到完整的JSON格式的ES-DSL查询语句,提交该JSON语句到Elasticsearch集群中执行查询,对查询返回结果进行封装,以分页方式返回前端。使用SQL解析的方式保证了使用Elasticsearch原生支持的ES-DSL语句进行数据查询,避免了直接调用SQL接口查询时部分语法不支持的情况。
实施例7:
在上述各实施例的基础上,在本发明实施例中,所述方法还包括:
生成日志文件,其中,所述日志文件中包括数据处理过程中的数据同步开始时间、数据同步结束时间、同步数据量和创建索引信息。
同步任务在执行的过程中,将必要的参数信息、调用Elasticsearch框架API返回结果等信息以固定格式记录到本地数据库中,保证通过日志文件能够查看到同步过程中各个阶段的实际执行结果,服务日志管理模块按照具体日志时间以分页方式展示日志信息,并提供必要的界面跳转超链接。日志保留时间为固定时间(比如一周),系统通过单独的定时任务清理过期日志记录。通过有效的日志管理,能够查看具体的同步任务进度,配合定位同步中可能产生的异常问题。日志文件中包括数据处理过程中的数据同步开始时间、数据同步结束时间、同步数据量和创建索引信息,但并不限定只包括上述内容。
本发明实施例提出一种基于B/S架构的大数据服务系统,基于Elasticsearch6.8.4版本或者该版本以上版本提供针对于传统关系型数据库的数据同步服务和数据检索服务。方案核心设计思路为:
创建同步策略,提出适用于多种实际场景的同步策略,适用于全量和增量同步方式;
创建同步任务,基于具体同步策略执行同步任务,提供日志管理服务查看具体任务日志;
执行索引刷新,数据同步完成之后,按策略执行索引刷新操作,供用户检索同步数据;
优化数据检索,提出基于SQL方式查询索引,采用基于Elasticsearch框架原生API的方式解析SQL语句。
方案整体设计流程图如图9所示。首先用户在前端将需要同步的关系型数据库资源注册到系统中,保证系统能够正常连接并能读取到数据库的表记录和表结构;然后用户选择数据库中具体要同步的表,根据实际的业务场景,选择具体的数据表的类别、同步方式和生命周期,电子设备根据数据表的类别、同步方式和生命周期进行匹配确定数据处理策略,并开启同步功能,系统为该同步的表在Elasticsearch集群上创建对应存储索引和类型,并创建唯一同步任务线程,同步任务线程基于同步策略首次同步数据到对应的索引类型中;在数据首次正常同步进Elasticsearch的索引类型中后,刷新索引,提供可读取的索引文档数据给用户,系统按照具体的同步策略和同步周期持续执行同步并刷新索引;首次刷新完成后用户可以通过系统前端输入具体的SQL查询语句查询具体的同步数据信息,系统返回查询结果并分页展示;用户在前端可以直接查看同步任务和检索任务的日志信息,在前端可根据实际需要关闭同步任务。
电子设备预先配置数据源和数据源中具体物理表信息。可以将MySQL,Oracle,Postgresql等传统关系型数据库以数据资源的方式注册到系统中,注册信息包括但不限于:数据库连接IP地址,数据库登录用户名和密码,数据库连接端口号,实际连接数据库名称。数据库可以部署在单台服务器上或者采用分布式架构部署在多台服务器节点上,在这些数据库中创建的表可以包括分区表或者非分区表,表数据的生命周期可以为永久和非永久。能够支持增量同步的表需要包括整型自增列或者是日期时间字段列作为增量标识。数据库信息注册成功之后,系统能够读取到物理表结构和表记录,能够根据物理表中具体的字段类型为其创建索引和模板,用户可以通过系统前端读取到具体数据库中的物理表,为要同步的表在前端配置具体的数据处理策略,同步周期,并开启同步任务。开启同步任务之后,系统调用具体同步策略的初始化方法为要同步的物理表创建索引,在该索引下创建唯一一个类型_doc,同步任务根据具体的同步策略为物理表同步数据,同步的数据都存放到对应索引的_doc类型中,表中一行记录对应索引中一个文档。
数据同步:针对于不同的同步业务场景,本发明实施例中提出三种同步策略:循环索引策略,单索引策略,索引模板策略,同步策略管理模块为每种策略提供具体的索引初始化方法、索引刷新方法、索引清空方法和索引删除方法供同步任务调用。策略设计基于Elasticsearch框架的别名机制、模板机制以及Elasticsearch框架具有删除索引速度快等特点。
同步任务可以由用户在前端开启和关闭,关闭任务之后可以在前端控制清空同步数据,重新同步。同步任务按照配置的同步策略进行数据同步,系统为每一个需要同步的物理表资源创建唯一一个同步任务线程。系统调用完同步策略的初始化方法后,同步任务根据具体同步策略同步数据到创建的同步索引中,同步完成之后按照同步策略刷新索引,同步任务线程在同步过程中将必要的参数信息以及调用Elasticsearch框架API的返回结果信息以日志方式记录到本地数据库中。针对实际业务场景和同步策略的设计,系统将同步任务划分为:全量同步任务和增量同步任务两种,其中全量同步任务基于循环索引策略,增量同步任务基于单索引策略和索引模板策略。
本发明实施例提出基于Elasticsearch框架的同步策略,适用于多种实际同步业务场景,保证了在历史数据和实时数据量都比较大的情况下,数据检索服务和数据同步服务并行性。提出了单独的同步任务管理模块,更加灵活的实现同步功能。提出了单独同步日志管理模块,提供了直观的同步信息展示功能。提出了数据检索方案,通过前端提交SQL,系统基于Elasticsearch框架提供的API接口解析SQL,生成ES-DSL查询语句,让数据检索功能更好的对接用户。
实施例8:
图10为本发明实施例提供的数据处理装置结构示意图,所述装置包括:
接收模块11,用于接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;
确定模块12,用于根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;
同步模块13,用于基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中。
所述预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期包括:
类别为非分区数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为非分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区拉链数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为非永久对应的数据处理策略为索引模板策略。
若所述目标数据处理策略为循环索引策略,所述同步模块13,具体用于基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引、读取索引和删除索引,并为所述存储索引设置对应的存储别名,为所述读取索引设置对应的读取别名,为所述删除索引设置对应的删除别名;以使用户通过别名进行数据处理;
所述装置还包括:
索引刷新模块14,用于通过索引刷新,更新所述存储索引、读取索引和删除索引和别名的对应关系,其中,将所述删除别名、读取别名和存储别名按照从左到右逻辑排序,在进行索引刷新时,将所述删除索引、读取索引和存储索引循环左移一位。
所述同步模块13,具体用于若所述待同步的数据表为拉链表,在同步周期中获取所述拉链表中存储数据量最大的分区中的第一数据量,判断所述第一数据量是否增大,如果是,将所述拉链表中存储数据量最大的分区中的数据存储至所述存储别名对应的索引中,并触发所述索引刷新模块;若所述待同步的数据表为非分区表,在同步周期中获取所述非分区表中存储的第二总数据量,判断所述第二总数据量是否增大,如果是,将所述非分区表中存储的数据存储至所述存储别名对应的索引中,并触发所述索引刷新模块14。
若所述目标数据处理策略为单索引策略,所述同步模块13,具体用于基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,并为所述存储索引分别设置删除别名、读取别名和存储别名;以使用户通过别名进行数据处理。
所述同步模块13,具体用于在同步周期中获取所述待同步的数据表中数据增量标识的最大值,判断所述数据增量标识的最大值是否增大,如果是,将增大的数据增量标识对应的数据存储至所述存储别名对应的索引中。
若所述目标数据处理策略为索引模板策略,所述同步模块13,具体用于基于所述目标数据处理策略,根据所述待同步的数据表的分区,在Elasticsearch索引库中创建与所述待同步的数据表的分区分别对应的每个存储索引,并为所述每个存储索引设置读取别名;以使用户通过所述读取别名进行数据处理。
所述装置还包括:
删除模块15,用于在同步周期中判断所述待同步的数据表中是否存在数据被清理的分区,如果是,删除所述数据被清理的分区对应的存储索引。
所述装置还包括:
检索模块16,用于当接收到检索请求信息,通过所述Elasticsearch索引库的API接口,将所述检索指令中携带的SQL语句转换为所述Elasticsearch索引库支持的检索语句,基于所述检索语句从读取别名对应的索引中检索数据。
所述装置还包括:
判断模块17,用于判断所述检索指令中携带的SQL语句语法是否正确,如果否,输出SQL语句语法错误提示信息,如果是,触发所述检索模块16。
所述装置还包括:
生成模块18,用于生成日志文件,其中,所述日志文件中包括数据处理过程中的数据同步开始时间、数据同步结束时间、同步数据量和创建索引信息。
实施例9:
在上述各实施例的基础上,本发明实施例中还提供了一种电子设备,如图11所示,包括:处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信;
所述存储器303中存储有计算机程序,当所述程序被所述处理器301执行时,使得所述处理器301执行如下步骤:
接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;
根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中。
基于同一发明构思,本发明实施例中还提供了一种电子设备,由于上述电子设备解决问题的原理与数据处理方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
本发明实施例提供的电子设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、网络侧设备等。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口302用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在本发明实施例中处理器执行存储器上所存放的程序时,实现接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中。由于在本发明实施例中,电子设备中预设有多种数据处理策略,并且每种数据处理策略与数据表的类别、同步方式、生命周期存在对应关系。当接收到数据同步请求信息,解析出数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期,然后根据预设的对应关系确定目标数据处理策略。基于目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将待同步的数据表中的数据同步存储至对应的存储索引中。这样针对不同的业务场景,会根据不同的数据处理策略来进行数据处理。从而能够充分匹配实际多种业务场景。
实施例10:
在上述各实施例的基础上,本发明实施例还提供了一种计算机存储可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;
根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中。
基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,由于处理器在执行上述计算机可读存储介质上存储的计算机程序时解决问题的原理与数据处理方法相似,因此处理器在执行上述计算机可读存储介质存储的计算机程序的实施可以参见方法的实施,重复之处不再赘述。
上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD)等。
在本发明实施例中提供的计算机可读存储介质内存储计算机程序,计算机程序被处理器执行时实现接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中。由于在本发明实施例中,电子设备中预设有多种数据处理策略,并且每种数据处理策略与数据表的类别、同步方式、生命周期存在对应关系。当接收到数据同步请求信息,解析出数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期,然后根据预设的对应关系确定目标数据处理策略。基于目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将待同步的数据表中的数据同步存储至对应的存储索引中。这样针对不同的业务场景,会根据不同的数据处理策略来进行数据处理。从而能够充分匹配实际多种业务场景。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (22)

1.一种数据处理方法,其特征在于,所述方法包括:
接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;
根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中;
所述预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期包括:
类别为非分区数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
若所述目标数据处理策略为循环索引策略,所述基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引包括:
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引、读取索引和删除索引,并为所述存储索引设置对应的存储别名,为所述读取索引设置对应的读取别名,为所述删除索引设置对应的删除别名;以使用户通过别名进行数据处理;
所述方法还包括:
通过索引刷新,更新所述存储索引、读取索引和删除索引和别名的对应关系,其中,将所述删除别名、读取别名和存储别名按照从左到右逻辑排序,在进行索引刷新时,将所述删除索引、读取索引和存储索引循环左移一位。
2.如权利要求1所述的方法,其特征在于,所述预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期还包括:
类别为非分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区拉链数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为非永久对应的数据处理策略为索引模板策略。
3.如权利要求1所述的方法,其特征在于,所述将所述待同步的数据表中的数据同步存储至所述对应的存储索引中包括:
若所述待同步的数据表为拉链表,在同步周期中获取所述拉链表中存储数据量最大的分区中的第一数据量,判断所述第一数据量是否增大,如果是,将所述拉链表中存储数据量最大的分区中的数据存储至所述存储别名对应的索引中,并进行索引刷新;
若所述待同步的数据表为非分区表,在同步周期中获取所述非分区表中存储的第二总数据量,判断所述第二总数据量是否增大,如果是,将所述非分区表中存储的数据存储至所述存储别名对应的索引中,并进行索引刷新。
4.如权利要求2所述的方法,其特征在于,若所述目标数据处理策略为单索引策略,所述基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引包括:
基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,并为所述存储索引分别设置删除别名、读取别名和存储别名;以使用户通过别名进行数据处理。
5.如权利要求4所述的方法,其特征在于,所述将所述待同步的数据表中的数据同步存储至所述对应的存储索引中包括:
在同步周期中获取所述待同步的数据表中数据增量标识的最大值,判断所述数据增量标识的最大值是否增大,如果是,将增大的数据增量标识对应的数据存储至所述存储别名对应的索引中。
6.如权利要求2所述的方法,其特征在于,若所述目标数据处理策略为索引模板策略,所述基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引包括:
基于所述目标数据处理策略,根据所述待同步的数据表的分区,在Elasticsearch索引库中创建与所述待同步的数据表的分区分别对应的每个存储索引,并为所述每个存储索引设置读取别名;以使用户通过所述读取别名进行数据处理。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
在同步周期中判断所述待同步的数据表中是否存在数据被清理的分区,如果是,删除所述数据被清理的分区对应的存储索引。
8.如权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
当接收到检索请求信息,通过所述Elasticsearch索引库的API接口,将检索指令中携带的SQL语句转换为所述Elasticsearch索引库支持的检索语句,基于所述检索语句从读取别名对应的索引中检索数据。
9.如权利要求8所述的方法,其特征在于,当接收到检索请求信息之后,通过所述Elasticsearch索引库的API接口,将所述检索指令中携带的SQL语句转换为所述Elasticsearch索引库支持的检索语句之前,所述方法还包括:
判断所述检索指令中携带的SQL语句语法是否正确,如果否,输出SQL语句语法错误提示信息,如果是,进行后续步骤。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
生成日志文件,其中,所述日志文件中包括数据处理过程中的数据同步开始时间、数据同步结束时间、同步数据量和创建索引信息。
11.一种数据处理装置,其特征在于,所述装置包括:
接收模块,用于接收数据同步请求信息,获取所述数据同步请求信息中携带的数据库中待同步的数据表的类别、同步方式和生命周期;
确定模块,用于根据预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期,确定所述数据同步请求信息对应的目标数据处理策略;
同步模块,用于基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,将所述待同步的数据表中的数据同步存储至所述对应的存储索引中;
预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期包括:
类别为非分区数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
若所述目标数据处理策略为循环索引策略,所述同步模块,具体用于基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引、读取索引和删除索引,并为所述存储索引设置对应的存储别名,为所述读取索引设置对应的读取别名,为所述删除索引设置对应的删除别名;以使用户通过别名进行数据处理;
所述装置还包括:
索引刷新模块,用于通过索引刷新,更新所述存储索引、读取索引和删除索引和别名的对应关系,其中,将所述删除别名、读取别名和存储别名按照从左到右逻辑排序,在进行索引刷新时,将所述删除索引、读取索引和存储索引循环左移一位。
12.如权利要求11所述的装置,其特征在于,所述预设的不同的数据处理策略分别对应的预设的数据表的类别、同步方式、生命周期还包括:
类别为非分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区拉链数据表、同步方式为全量同步、生命周期为永久对应的数据处理策略为循环索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为永久对应的数据处理策略为单索引策略;
类别为分区数据表、同步方式为增量同步、生命周期为非永久对应的数据处理策略为索引模板策略。
13.如权利要求11所述的装置,其特征在于,所述同步模块,具体用于若所述待同步的数据表为拉链表,在同步周期中获取所述拉链表中存储数据量最大的分区中的第一数据量,判断所述第一数据量是否增大,如果是,将所述拉链表中存储数据量最大的分区中的数据存储至所述存储别名对应的索引中,并触发所述索引刷新模块;若所述待同步的数据表为非分区表,在同步周期中获取所述非分区表中存储的第二总数据量,判断所述第二总数据量是否增大,如果是,将所述非分区表中存储的数据存储至所述存储别名对应的索引中,并触发所述索引刷新模块。
14.如权利要求12所述的装置,其特征在于,若所述目标数据处理策略为单索引策略,所述同步模块,具体用于基于所述目标数据处理策略,在Elasticsearch索引库中创建对应的存储索引,并为所述存储索引分别设置删除别名、读取别名和存储别名;以使用户通过别名进行数据处理。
15.如权利要求14所述的装置,其特征在于,所述同步模块,具体用于在同步周期中获取所述待同步的数据表中数据增量标识的最大值,判断所述数据增量标识的最大值是否增大,如果是,将增大的数据增量标识对应的数据存储至所述存储别名对应的索引中。
16.如权利要求12所述的装置,其特征在于,若所述目标数据处理策略为索引模板策略,所述同步模块,具体用于基于所述目标数据处理策略,根据所述待同步的数据表的分区,在Elasticsearch索引库中创建与所述待同步的数据表的分区分别对应的每个存储索引,并为所述每个存储索引设置读取别名;以使用户通过所述读取别名进行数据处理。
17.如权利要求16所述的装置,其特征在于,所述装置还包括:
删除模块,用于在同步周期中判断所述待同步的数据表中是否存在数据被清理的分区,如果是,删除所述数据被清理的分区对应的存储索引。
18.如权利要求11至17任一项所述的装置,其特征在于,所述装置还包括:
检索模块,用于当接收到检索请求信息,通过所述Elasticsearch索引库的API接口,将检索指令中携带的SQL语句转换为所述Elasticsearch索引库支持的检索语句,基于所述检索语句从读取别名对应的索引中检索数据。
19.如权利要求18所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断所述检索指令中携带的SQL语句语法是否正确,如果否,输出SQL语句语法错误提示信息,如果是,触发所述检索模块。
20.如权利要求19所述的装置,其特征在于,所述装置还包括:
生成模块,用于生成日志文件,其中,所述日志文件中包括数据处理过程中的数据同步开始时间、数据同步结束时间、同步数据量和创建索引信息。
21.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-10任一项所述的方法步骤。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的方法步骤。
CN202011380363.4A 2020-11-30 2020-11-30 一种数据处理方法、装置、电子设备及存储介质 Active CN112463886B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011380363.4A CN112463886B (zh) 2020-11-30 2020-11-30 一种数据处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011380363.4A CN112463886B (zh) 2020-11-30 2020-11-30 一种数据处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112463886A CN112463886A (zh) 2021-03-09
CN112463886B true CN112463886B (zh) 2024-06-04

Family

ID=74805087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011380363.4A Active CN112463886B (zh) 2020-11-30 2020-11-30 一种数据处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112463886B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925783A (zh) * 2021-03-26 2021-06-08 北京金山云网络技术有限公司 业务数据处理方法和装置、电子设备和存储介质
CN113076314B (zh) * 2021-03-30 2024-04-19 深圳市酷开网络科技股份有限公司 数据表的存储方法、装置及计算机可读存储介质
CN113204588A (zh) * 2021-05-18 2021-08-03 绿漫科技有限公司 一种基于ElasticSearch快速搭建搜索平台的方法
CN113779349A (zh) * 2021-08-11 2021-12-10 中央广播电视总台 数据检索系统、装置、电子设备和可读存储介质
CN114036158B (zh) * 2021-11-18 2023-05-12 广州宸祺出行科技有限公司 一种Elasticsearch与MySQL的联合查询方法和装置
CN114442940A (zh) * 2022-01-04 2022-05-06 网易(杭州)网络有限公司 一种数据处理方法、装置、介质和电子设备
CN117708234A (zh) * 2023-12-05 2024-03-15 北京名道恒通信息技术有限公司 数据同步方法、装置、电子设备和计算机可读存储介质
CN118069752A (zh) * 2024-03-27 2024-05-24 江苏省联合征信有限公司 一种支持自适应同步方式的数据同步方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451225A (zh) * 2011-12-23 2017-12-08 亚马逊科技公司 用于半结构化数据的可缩放分析平台
CN109739929A (zh) * 2018-12-18 2019-05-10 中国人民财产保险股份有限公司 数据同步方法、装置及系统
CN110321301A (zh) * 2018-03-30 2019-10-11 华为技术有限公司 一种数据处理的方法及装置
WO2020001108A1 (zh) * 2018-06-29 2020-01-02 阿里巴巴集团控股有限公司 基于区块链的数据处理方法和装置
CN111563095A (zh) * 2020-04-30 2020-08-21 上海新炬网络信息技术股份有限公司 一种基于HBase的数据检索装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10067969B2 (en) * 2015-05-29 2018-09-04 Nuodb, Inc. Table partitioning within distributed database systems
US10922296B2 (en) * 2017-03-01 2021-02-16 Sap Se In-memory row storage durability
CN111356996B (zh) * 2018-06-02 2023-07-21 西部数据技术公司 用于版本验证的系统和计算机实现的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451225A (zh) * 2011-12-23 2017-12-08 亚马逊科技公司 用于半结构化数据的可缩放分析平台
CN110321301A (zh) * 2018-03-30 2019-10-11 华为技术有限公司 一种数据处理的方法及装置
WO2020001108A1 (zh) * 2018-06-29 2020-01-02 阿里巴巴集团控股有限公司 基于区块链的数据处理方法和装置
CN109739929A (zh) * 2018-12-18 2019-05-10 中国人民财产保险股份有限公司 数据同步方法、装置及系统
CN111563095A (zh) * 2020-04-30 2020-08-21 上海新炬网络信息技术股份有限公司 一种基于HBase的数据检索装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
信息生命周期理论在企业数据中心的应用研究;王印红;郭相坤;;中国管理信息化(综合版)(第03期);全文 *
铁路运输设备技术状态大数据平台构建方法研究;王华伟;史天运;蒋荟;;中国铁路(第02期);全文 *

Also Published As

Publication number Publication date
CN112463886A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112463886B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN112199366B (zh) 数据表处理方法、装置及设备
CN107247808B (zh) 一种分布式NewSQL数据库系统及图片数据查询方法
US11182356B2 (en) Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems
CN102541757B (zh) 写缓存方法、缓存同步方法和装置
US8924373B2 (en) Query plans with parameter markers in place of object identifiers
US11556534B2 (en) Subquery predicate generation to reduce processing in a multi-table join
US8090700B2 (en) Method for updating databases
US20130159281A1 (en) Efficient querying using on-demand indexing of monitoring tables
CN112685446B (zh) 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质
US20100293161A1 (en) Automatically avoiding unconstrained cartesian product joins
CN113204571B (zh) 涉及写入操作的sql执行方法、装置及存储介质
CN109885642B (zh) 面向全文检索的分级存储方法及装置
CN114020790A (zh) 一种数据查询的方法及装置
CN108140022B (zh) 数据查询方法和数据库系统
CN112970011B (zh) 记录查询优化中的谱系
CN116450890A (zh) 图数据处理方法、装置、系统、电子设备及存储介质
US20190384754A1 (en) In-place updates with concurrent reads in a decomposed state
US20180011897A1 (en) Data processing method having structure of cache index specified to transaction in mobile environment dbms
CN114428776A (zh) 一种面向时序数据的索引分区管理方法和系统
WO2016100737A1 (en) Method and system to search logs that contain a massive number of entries
US20120066228A1 (en) Baselines over indexed, versioned data
CN115809268B (zh) 一种基于分片索引的自适应查询方法和装置
CN116842244A (zh) 搜索引擎数据同步方法、系统、设备和存储介质
CN111008198A (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