CN116955417A - 数据多表联合检索的优化方法、装置及电子设备 - Google Patents
数据多表联合检索的优化方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116955417A CN116955417A CN202311210188.8A CN202311210188A CN116955417A CN 116955417 A CN116955417 A CN 116955417A CN 202311210188 A CN202311210188 A CN 202311210188A CN 116955417 A CN116955417 A CN 116955417A
- Authority
- CN
- China
- Prior art keywords
- data
- constructing
- wide
- synchronization
- data synchronization
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000005457 optimization Methods 0.000 title claims abstract description 42
- 238000003860 storage Methods 0.000 claims abstract description 41
- 239000012634 fragment Substances 0.000 claims abstract description 15
- 230000007246 mechanism Effects 0.000 claims description 72
- 238000012544 monitoring process Methods 0.000 claims description 32
- 230000006870 function Effects 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000013499 data model Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229920001971 elastomer Polymers 0.000 description 1
- 239000000806 elastomer Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
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/245—Query processing
- G06F16/2453—Query optimisation
-
- 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
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据多表联合检索的优化方法、装置及电子设备,该方法包括:获取需要关联的源业务表,基于所述源业务表提取关联查询字段;基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。本发明可以解决现有技术中多个业务表关联数据的查询效率低的技术问题。
Description
技术领域
本发明涉及数据检索技术领域,具体涉及一种数据多表联合检索的优化方法、装置及电子设备。
背景技术
当下的应用系统越来越多地面临着处理大量数据的挑战,因此处理数据的能力和速度成为各个系统中非常重要的因素。而传统的数据存储方式和查询方法往往无法满足系统需要快速处理大量数据的要求。其中,关系型数据库因为其结构限制、读写锁和数据冗余等问题,面对大规模数据处理和高并发查询时性能表现非常差,因此在此场景下不得不寻找替代方案。
此时,搜索引擎在处理数据方面的优势逐渐凸显出来,搜索引擎具有分布式、高并发、可扩展等特性,能够很好地解决传统关系型数据库面临的问题。而Elasticsearch就是一种基于搜索引擎技术实现的开源分布式搜索引擎,它采用了倒排索引和分片存储技术,能够支持全文检索、关键词检索、聚合检索、地理位置检索等多种复杂查询方式,并且性能表现非常优异。
然而,虽然Elasticsearch能够很好地支持单个表的高效查询,但在多个表之间进行关联查询时,由于Elasticsearch只支持单表查询,查询涉及的所有表中的数据并将其合并的过程非常耗时,效率不高。因此需要一种新的方法来支持多个业务表关联数据的查询。
发明内容
有鉴于此,有必要提供一种数据多表联合检索的优化方法、装置及电子设备,用以解决现有技术中多个业务表关联数据的查询效率低的技术问题。
为了实现上述目的,本发明提供了一种数据多表联合检索的优化方法,包括:
获取需要关联的源业务表,基于所述源业务表提取关联查询字段;
基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;
基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。
进一步地,数据多表联合检索的优化方法,还包括:
构建数据更新的触发机制、数据同步的频率控制机制以及数据同步方式;
基于所述数据更新的触发机制、所述数据同步的频率控制机制和所述数据同步机制,构建数据同步流程;
基于所述数据同步流程,以及预设的数据同步算法和数据同步机制,对所述源业务表与所述宽表文档实现执行数据同步。
进一步地,所述构建数据更新的触发机制、数据同步的频率控制机制以及数据同步方式,包括:
构建数据更新的触发条件,基于所述触发条件构建数据更新的触发机制;
确定数据更新频率和实时性要求,基于所述数据更新频率和所述实时性要求,确定数据同步间隔,基于所述数据同步间隔,构建数据同步的频率控制机制;
获取业务需求,基于业务需求构建对应的数据同步方式。
进一步地,所述触发条件包括:时间间隔触发条件、数据更新事件触发条件和业务需求触发条件;
所述触发机制包括:定时触发机制、监听数据更新事件触发机制和业务逻辑判断触发机制。
进一步地,所述数据同步算法为:基于Elasticsearch将同步发生变化的数据更新到宽表中。
进一步地,所述数据同步机制为:
在基于Elasticsearch监控到源业务表发生数据变更的情况下,抽取源业务表发生变更的数据,并将发生变更的数据转换为符合宽表的目标数据;
基于Elasticsearch将所述目标数据同步到宽表中。
进一步地,数据多表联合检索的优化方法,还包括:
构建监控报警机制;所述监控报警机制,包括:性能监控、数据一致性监控、异常数据处理、容错机制、监控报警、性能优化和测试验证。
本发明还提供一种数据多表联合检索的优化装置,包括:
提取模块,用于获取需要关联的源业务表,基于所述源业务表提取关联查询字段;
第一构建模块,用于基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;
第二构建模块,用于基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。
本发明还提供一种电子设备,包括存储器和处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现如上述任意一项所述的数据多表联合检索的优化方法中的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的数据多表联合检索的优化方法。
采用上述实现方式的有益效果是:本发明提供的数据多表联合检索的优化方法、装置及电子设备,通过源业务表提取关联查询字段,基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。
由于目前的Elasticsearch方案对于多业务表的关联查询,需要进行复杂的数据模型设计和索引优化,开发难度较大;在数据分布不均匀或者单个数据分片较大的情况下,查询速度下降。本发明通过基于Elasticsearch构建宽表的方法,将多个业务表的数据冗余到同一个表中,并利用Elasticsearch的搜索和聚合等功能,提高了查询性能,解决现有技术中多个业务表关联数据的查询效率低的技术问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的数据多表联合检索的优化方法一实施例的流程示意图;
图2为本发明提供的数据多表联合检索的优化装置一实施例的结构示意图;
图3为本发明提供的电子设备的一个实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请实施例的描述中,除非另有说明, “多个”的含义是两个或两个以上。
本发明实施例中术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
在本发明实施例中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相似的技术效果即可。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其他实施例相结合。
本发明提供了一种数据多表联合检索的优化方法、装置及电子设备,以下分别进行说明。
如图1所示,本发明提供一种数据多表联合检索的优化方法,包括:
步骤110、获取需要关联的源业务表,基于所述源业务表提取关联查询字段;
步骤120、基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;
步骤130、基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。
可以理解的是,Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。本发明采用宽表设计的方式将多个业务表的数据冗余到同一个表中,通过一定的规则来保证数据的正确性和完整性。具体地,将关联查询的字段冗余到宽表中,以避免在查询过程中进行多表关联操作。同时,利用Elasticsearch的倒排索引和分片存储技术,对宽表中的数据进行高效存储和索引,以提高查询效率。
按照以下步骤建立宽表:
步骤1001、根据需要选择要关联的多个业务表:
根据实际需求,选择需要进行关联查询的多个业务表。在电子商务平台的案例中,可以选择用户信息表、订单信息表和商品信息表作为关联的业务表。
步骤1002、设计宽表结构:
根据关联查询的字段,设计宽表的结构。将涉及关联查询的字段从多个业务表中提取出来,并合并到宽表中。在宽表中,除了包含关联查询的字段外,还可以根据需要添加适当的索引和约束,以提高查询性能和数据的完整性。
步骤1003、创建宽表的数据库模式:
根据宽表的设计结构,创建对应的数据库模式。使用关系型数据库管理系统(如MySQL、PostgreSQL等),创建宽表所需的表结构,并定义字段类型、约束等信息。
步骤1004、在Elasticsearch中创建对应的宽表文档:
利用Elasticsearch的文档存储和索引功能,创建对应的宽表文档。每个宽表文档对应着一个记录,其中包含了多个业务表的冗余数据。在创建宽表文档时,需要将关联查询的字段映射到Elasticsearch文档的字段,并选择适当的数据类型进行存储。
步骤1005、为Elasticsearch中的宽表文档进行索引和存储优化:
创建倒排索引:对于需要进行搜索的字段,使用Elasticsearch的倒排索引进行存储和索引。倒排索引可以快速定位包含特定值的文档,提高查询效率。
配置分片策略:将宽表数据进行分片存储,将数据分布到多个节点上。这样可以提高数据的并行处理能力,加快查询速度。可以根据数据量和查询需求的特点,调整分片数量和分片规则,以达到最佳性能。
通过宽表设计和数据冗余的技术方案,结合Elasticsearch的倒排索引和分片存储技术,可以实现多业务表关联数据查询的速度优化。宽表的建立和Elasticsearch的高效存储和索引机制相结合,可以提高查询效率,降低系统负载,并满足高并发访问的需求。
在一些实施例中,数据多表联合检索的优化方法,还包括:
构建数据更新的触发机制、数据同步的频率控制机制以及数据同步方式;
基于所述数据更新的触发机制、所述数据同步的频率控制机制和所述数据同步机制,构建数据同步流程;
基于所述数据同步流程,以及预设的数据同步算法和数据同步机制,对所述源业务表与所述宽表文档实现执行数据同步。
所述构建数据更新的触发机制、数据同步的频率控制机制以及数据同步方式,包括:
构建数据更新的触发条件,基于所述触发条件构建数据更新的触发机制;
确定数据更新频率和实时性要求,基于所述数据更新频率和所述实时性要求,确定数据同步间隔,基于所述数据同步间隔,构建数据同步的频率控制机制;
获取业务需求,基于业务需求构建对应的数据同步方式。
所述触发条件包括:时间间隔触发条件、数据更新事件触发条件和业务需求触发条件;
所述触发机制包括:定时触发机制、监听数据更新事件触发机制和业务逻辑判断触发机制。
所述数据同步算法为:基于Elasticsearch将同步发生变化的数据更新到宽表中。
所述数据同步机制为:
在基于Elasticsearch监控到源业务表发生数据变更的情况下,抽取源业务表发生变更的数据,并将发生变更的数据转换为符合宽表的目标数据;
基于Elasticsearch将所述目标数据同步到宽表中。
可以理解的是,在开始实现数据同步之前,需要设计一个合理的数据同步流程,该流程涉及以下几个方面:
步骤1011、数据更新的触发机制:
1)定义数据更新的触发条件,可以是以下一种或多种情况:
a.时间间隔触发:设置一个固定的时间间隔,例如每小时、每天、每周等,当时间达到触发条件时进行数据同步;
b.数据更新事件触发:监测源数据库或应用程序中的数据变更事件,例如表的插入、更新和删除操作;
c.根据特定的业务需求,定义触发数据同步的条件,例如特定字段的变化或特定业务操作的发生。
2) 根据确定的触发条件,实现数据更新的触发机制,可以按照以下步骤进行:
a.存储触发条件:将触发条件存储在配置文件、数据库表或其他适合的存储介质中,以便后续使用。
b.定时触发机制:使用定时任务工具或编程语言提供的定时触发功能,设置定时器以在指定的时间间隔触发数据同步操作。
c.监听数据更新事件:通过数据库触发器、消息队列、应用程序的事件机制等方式,监听数据更新事件,一旦事件触发,即进行数据同步操作。
d.业务逻辑判断:根据业务需求,在业务逻辑层面判断触发条件是否满足,并在条件满足时触发数据同步操作。
步骤1012、确定数据同步的频率:
1)分析数据更新的频率和实时性要求:
a.分析源数据库或应用程序中数据的更新频率,即数据变更的发生频率;
b.确定实时性要求,即数据变更需要多快被同步到目标系统。
2)确定数据同步的时间间隔:
a.根据分析结果,确定合适的数据同步时间间隔,使得同步操作能够满足实时性要求;
b.根据业务需求和系统负载情况,考虑数据同步的并发性和性能开销,避免频繁同步导致系统负担过重。
3)实现数据同步的频率控制机制:
a.在数据同步系统中引入定时触发机制,可通过以下方式实现:使用定时任务调度工具,如Cron表达式,设置定时器以按照设定的时间间隔触发数据同步操作。在应用程序中使用定时器或定时触发器,编写代码定时触发数据同步操作;
b.考虑引入灵活性,使得数据同步的频率可以根据实际情况进行调整,例如通过配置文件或管理界面来修改同步时间间隔。
步骤1013、同步方式:选择适当的同步方式,可以是增量同步或全量同步,或者根据业务需求采用其他同步方式。
1)增量同步:即只同步新增、更新和删除操作。在实现增量同步时,我们需要确定如何捕获数据的变化,并将变化的数据同步到目标系统。常用的实现方式包括轮询、日志追踪和数据库触发器。
a.轮询:在源数据库或应用程序中设置一个标记位或时间戳,每隔一段时间就轮询查询这个标记位或时间戳,以检测数据变化。如果发现有变化,则同步这些变化数据到目标系统。
b.日志追踪:在源数据库中启用日志追踪功能,通过监测日志文件的变化,捕获数据的变化情况。当发现有数据变化时,将变化的数据同步到目标系统。
c.触发器:在源数据库中设置触发器,当有数据变化时触发器,将变化的数据同步到目标系统。
2)全量同步:全量同步是指将源数据库或应用程序中的所有数据都同步到目标系统,即一次性将整个数据库或应用程序的数据全部同步。与增量同步相比,全量同步的优点在于可以保证目标系统中的数据完全一致,同时也可以在目标系统中构建一个全量备份。缺点在于全量同步需要传输大量的数据,可能会出现各种异常情况,例如网络故障、源数据库宕机、目标数据库访问超时等。因此,我们需要考虑数据同步的容错处理机制,以保证数据同步的可靠性和完整性。
实现数据同步的算法和机制对应的步骤具体如下:
步骤1021:数据同步算法的设计,结合Elasticsearch的能力,可以采用以下算法和机制来实现数据同步:
1)增量同步算法:利用Elasticsearch的功能来实现增量同步,即仅同步发生变化的数据到宽表中,以减少同步的数据量和提高同步效率。
a.设计一个增量同步标记字段:在源业务表中添加一个用于标记数据变化的字段,如"last_modified"字段,记录数据最后一次修改的时间戳。
b.使用Elasticsearch的"search-after" API:通过比较宽表中记录的最后同步的时间戳或文档ID,与源业务表中的"last_modified"字段进行比较,识别出变化的数据。利用"search-after" API可以在查询时指定上一次同步的时间戳或文档ID,只返回更新时间戳或文档ID大于该值的数据。
c.利用Elasticsearch的滚动搜索(Scroll)机制:使用滚动搜索可以在多次查询中获取满足特定条件的所有文档,以获取变化的数据。首先执行一次初始查询,并记录滚动ID,然后使用该滚动ID进行后续的查询,直到获取所有变化的数据为止。
步骤1022:数据同步机制的实施:
1)数据变更监听:利用Elasticsearch的变更监听功能,实时监控源业务表的变更操作,如新增、更新和删除等。
a.使用Elasticsearch的Watcher(触发器)功能:配置Watcher监控源业务表的索引,并定义相应的触发条件和操作。当有数据变更时,Watcher将触发指定的操作,如发送通知或执行数据同步操作;
b.结合消息队列:将源业务表的变更操作发布到消息队列中,由消费者实时监听并处理。可以使用Elasticsearch的Watcher与消息队列的集成,实现数据变更的异步处理。
2)数据抽取与转换: 一旦源业务表发生变更,将变更的数据抽取出来,并进行必要的数据转换、格式化和映射操作,以适应宽表的结构和数据类型。
a.使用Elasticsearch的查询和过滤功能:根据源业务表的变更情况,使用Elasticsearch的查询和过滤功能,将发生变更的数据抽取出来;
b.数据格式化和映射:根据宽表的数据结构和数据类型要求,对源业务表的数据进行格式化和映射,确保数据的一致性和准确性。
3)增量数据同步: 利用Elasticsearch的索引和更新功能,将发生变更的数据同步到宽表中。
a.使用Elasticsearch的索引操作:将变更的数据通过Elasticsearch的索引操作,将其同步到宽表中的对应索引;
b.利用Elasticsearch的更新功能:当源业务表的数据发生更新时,使用Elasticsearch的更新功能,更新宽表中对应文档的数据。
在一些实施例中,数据多表联合检索的优化方法,还包括:
构建监控报警机制;所述监控报警机制,包括:性能监控、数据一致性监控、异常数据处理、容错机制、监控报警、性能优化和测试验证。
可以理解的是,本发明引入监控和报警机制为了及时发现并处理数据同步中的异常情况,我们需要引入监控和报警机制。这可以包括以下几个方面:
步骤1031:性能监控:监控数据同步的性能指标,例如同步速度、延迟时间等,以确保同步操作在可接受的范围内。
步骤1032:数据一致性监控:监控源数据和目标数据的一致性,及时发现数据不一致的情况,并采取相应措施进行补偿。
步骤1033:异常处理:定义异常处理机制,包括处理同步错误、数据丢失、冲突等异常情况。可以采取回滚、重新同步、报警等方式来处理异常情况,保证数据同步的可靠性和稳定性。
步骤1034:容错机制:引入容错机制,以应对网络故障、系统崩溃等异常情况。可以使用备份服务器、数据镜像等方式来确保数据同步的持续性和可用性。
步骤1035:监控报警:实施监控和报警机制,及时发现数据同步的异常情况,并发送通知或报警信息给相关人员。这可以通过使用监控工具和日志分析来实现。
步骤1036:性能优化:持续优化数据同步的性能,提高同步效率和稳定性。可以采用多线程同步、批量处理、异步处理等技术手段来优化性能。
步骤1037:测试验证:进行充分的测试和验证,确保数据同步策略的正确性和可靠性。包括功能测试、性能测试、负载测试等,以保证系统在不同场景下的稳定性和可用性。
综上所述,本发明提供的数据多表联合检索的优化方法,通过源业务表提取关联查询字段,基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。
由于目前的Elasticsearch方案对于多业务表的关联查询,需要进行复杂的数据模型设计和索引优化,开发难度较大;在数据分布不均匀或者单个数据分片较大的情况下,查询速度下降。本发明通过基于Elasticsearch构建宽表的方法,将多个业务表的数据冗余到同一个表中,并利用Elasticsearch的搜索和聚合等功能,提高了查询性能,解决现有技术中多个业务表关联数据的查询效率低的技术问题。
相比传统的关联查询方式,本发明利用Elasticsearch的倒排索引和分片存储技术,能够更快地查询到关联数据,减少了查询时间。通过优化数据模型设计和索引优化,本方案能够更好地支持多业务表的关联查询,减少了数据模型设计的复杂性。
本发明基于Elasticsearch的分布式架构,能够支持水平扩展,可以根据业务需求增加或减少节点数量,以提高系统的处理能力。通过合理的数据分片策略和数据分布均衡的设计,本方案能够有效地解决数据分布不均匀和单个数据分片过大的问题,提高了查询的稳定性和可扩展性。
本发明通过设计高可用和故障恢复机制,能够在网络抖动、节点宕机等异常情况下保证系统的正常运行,提高了系统的可靠性和稳定性。通过合理的数据备份和数据恢复策略,本方案能够有效地防止数据丢失和数据损坏,保证了数据的完整性和可靠性。
本发明采用Elasticsearch作为数据存储和查询引擎,具有高效的实时索引和查询功能,可以支持对实时数据的查询和分析。同时,Elasticsearch提供的实时搜索和实时聚合等功能,也可以保证查询结果的实时性和准确性。
基于以上优势,使用Elasticsearch构建宽表支持多业务表关联数据查询速度优化方法具有明显的优势和创新性,能够有效地提升多表关联查询的性能、可扩展性和可靠性。
如图2所示,本发明还提供一种数据多表联合检索的优化装置200,该优化装置200包括:
提取模块210,用于获取需要关联的源业务表,基于所述源业务表提取关联查询字段;
第一构建模块220,用于基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;
第二构建模块230,用于基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。
上述实施例提供的数据多表联合检索的优化装置可实现上述数据多表联合检索的优化方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述数据多表联合检索的优化方法实施例中的相应内容,此处不再赘述。
如图3所示,本发明还相应提供了一种电子设备300。该电子设备300包括处理器301、存储器302及显示器303。图3仅示出了电子设备300的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代地实施更多或者更少的组件。
存储器302在一些实施例中可以是电子设备300的内部存储单元,例如电子设备300的硬盘或内存。存储器302在另一些实施例中也可以是电子设备300的外部存储设备,例如电子设备300上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,存储器302还可既包括电子设备300的内部储存单元也包括外部存储设备。存储器302用于存储安装电子设备300的应用软件及各类数据。
处理器301在一些实施例中可以是一个中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器302中存储的程序代码或处理数据,例如本发明中的数据多表联合检索的优化方法。
显示器303在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器303用于显示在电子设备300的信息以及用于显示可视化的用户界面。电子设备300的部件301-303通过系统总线相互通信。
在本发明的一些实施例中,当处理器301执行存储器302中的数据多表联合检索的优化程序时,可实现以下步骤:
获取需要关联的源业务表,基于所述源业务表提取关联查询字段;
基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;
基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。
应当理解的是:处理器301在执行存储器302中的数据多表联合检索的优化程序时,除了上面的功能之外,还可实现其他功能,具体可参见前面相应方法实施例的描述。
进一步地,本发明实施例对提及的电子设备300的类型不作具体限定,电子设备300可以为手机、平板电脑、个人数字助理(personaldigitalassistant,PDA)、可穿戴设备、膝上型计算机(laptop)等便携式电子设备。便携式电子设备的示例性实施例包括但不限于搭载IOS、android、microsoft或者其他操作系统的便携式电子设备。上述便携式电子设备也可以是其他便携式电子设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。还应当理解的是,在本发明其他一些实施例中,电子设备300也可以不是便携式电子设备,而是具有触敏表面(例如触控面板)的台式计算机。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据多表联合检索的优化方法,该方法包括:
获取需要关联的源业务表,基于所述源业务表提取关联查询字段;
基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;
基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,程序可存储于计算机可读存储介质中。其中,计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上对本发明所提供的数据多表联合检索的优化方法、装置及电子设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种数据多表联合检索的优化方法,其特征在于,包括:
获取需要关联的源业务表,基于所述源业务表提取关联查询字段;
基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;
基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略;
所述优化方法,还包括:
构建数据更新的触发机制、数据同步的频率控制机制以及数据同步方式;
基于所述数据更新的触发机制、所述数据同步的频率控制机制和所述数据同步机制,构建数据同步流程;
基于所述数据同步流程,以及预设的数据同步算法和数据同步机制,对所述源业务表与所述宽表文档实现执行数据同步。
2.根据权利要求1所述的数据多表联合检索的优化方法,其特征在于,所述构建数据更新的触发机制、数据同步的频率控制机制以及数据同步方式,包括:
构建数据更新的触发条件,基于所述触发条件构建数据更新的触发机制;
确定数据更新频率和实时性要求,基于所述数据更新频率和所述实时性要求,确定数据同步间隔,基于所述数据同步间隔,构建数据同步的频率控制机制;
获取业务需求,基于业务需求构建对应的数据同步方式。
3.根据权利要求2所述的数据多表联合检索的优化方法,其特征在于,所述触发条件包括:时间间隔触发条件、数据更新事件触发条件和业务需求触发条件;
所述触发机制包括:定时触发机制、监听数据更新事件触发机制和业务逻辑判断触发机制。
4.根据权利要求1所述的数据多表联合检索的优化方法,其特征在于,所述数据同步算法为:基于Elasticsearch将同步发生变化的数据更新到宽表中。
5.根据权利要求1所述的数据多表联合检索的优化方法,其特征在于,所述数据同步机制为:
在基于Elasticsearch监控到源业务表发生数据变更的情况下,抽取源业务表发生变更的数据,并将发生变更的数据转换为符合宽表的目标数据;
基于Elasticsearch将所述目标数据同步到宽表中。
6.根据权利要求1-5任一项所述的数据多表联合检索的优化方法,其特征在于,还包括:
构建监控报警机制;所述监控报警机制,包括:性能监控、数据一致性监控、异常数据处理、容错机制、监控报警、性能优化和测试验证。
7.一种数据多表联合检索的优化装置,其特征在于,包括:
提取模块,用于获取需要关联的源业务表,基于所述源业务表提取关联查询字段;
第一构建模块,用于基于所述关联查询字段以及预设的索引和约束条件构建宽表结构,并基于所述宽表结构构建宽表的数据库模式;
第二构建模块,用于基于所述宽表的数据库模式,利用Elasticsearch的文档存储和索引功能构建宽表文档,并为所述宽表文档创建倒排索引和分片存储策略。
8.一种电子设备,其特征在于,包括存储器和处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现如权利要求1至6中任意一项所述的数据多表联合检索的优化方法中的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的数据多表联合检索的优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311210188.8A CN116955417A (zh) | 2023-09-19 | 2023-09-19 | 数据多表联合检索的优化方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311210188.8A CN116955417A (zh) | 2023-09-19 | 2023-09-19 | 数据多表联合检索的优化方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955417A true CN116955417A (zh) | 2023-10-27 |
Family
ID=88453217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311210188.8A Pending CN116955417A (zh) | 2023-09-19 | 2023-09-19 | 数据多表联合检索的优化方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955417A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150302058A1 (en) * | 2014-04-17 | 2015-10-22 | Wisconsin Alumni Research Foundation | Database system with highly denormalized database structure |
CN111460024A (zh) * | 2020-04-29 | 2020-07-28 | 上海东普信息科技有限公司 | 基于Elasticsearch的实时业务系统 |
CN113157734A (zh) * | 2021-04-20 | 2021-07-23 | 平安银行股份有限公司 | 基于搜索框架的数据处理方法、装置、设备及存储介质 |
CN113821573A (zh) * | 2021-08-27 | 2021-12-21 | 济南浪潮数据技术有限公司 | 海量数据快速检索服务构建方法、系统、终端及存储介质 |
CN114385680A (zh) * | 2021-12-15 | 2022-04-22 | 江苏电力信息技术有限公司 | 一种基于Elasticsearch的数据库多表关联查询速度优化方法 |
EP4020253A1 (en) * | 2020-12-23 | 2022-06-29 | Xiamen Meiya Pico Information Co., Ltd | A data model creation method and terminal thereof |
CN115114319A (zh) * | 2022-06-15 | 2022-09-27 | 北京快乐茄信息技术有限公司 | 基于数据宽表进行数据查询的方法、装置及设备 |
CN115269730A (zh) * | 2022-08-04 | 2022-11-01 | 北京京东振世信息技术有限公司 | 宽表同步方法及装置 |
CN116069804A (zh) * | 2022-11-30 | 2023-05-05 | 东软集团股份有限公司 | 搜索引擎数据同步方法、装置、电子设备和存储介质 |
-
2023
- 2023-09-19 CN CN202311210188.8A patent/CN116955417A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150302058A1 (en) * | 2014-04-17 | 2015-10-22 | Wisconsin Alumni Research Foundation | Database system with highly denormalized database structure |
CN111460024A (zh) * | 2020-04-29 | 2020-07-28 | 上海东普信息科技有限公司 | 基于Elasticsearch的实时业务系统 |
EP4020253A1 (en) * | 2020-12-23 | 2022-06-29 | Xiamen Meiya Pico Information Co., Ltd | A data model creation method and terminal thereof |
CN113157734A (zh) * | 2021-04-20 | 2021-07-23 | 平安银行股份有限公司 | 基于搜索框架的数据处理方法、装置、设备及存储介质 |
CN113821573A (zh) * | 2021-08-27 | 2021-12-21 | 济南浪潮数据技术有限公司 | 海量数据快速检索服务构建方法、系统、终端及存储介质 |
CN114385680A (zh) * | 2021-12-15 | 2022-04-22 | 江苏电力信息技术有限公司 | 一种基于Elasticsearch的数据库多表关联查询速度优化方法 |
CN115114319A (zh) * | 2022-06-15 | 2022-09-27 | 北京快乐茄信息技术有限公司 | 基于数据宽表进行数据查询的方法、装置及设备 |
CN115269730A (zh) * | 2022-08-04 | 2022-11-01 | 北京京东振世信息技术有限公司 | 宽表同步方法及装置 |
CN116069804A (zh) * | 2022-11-30 | 2023-05-05 | 东软集团股份有限公司 | 搜索引擎数据同步方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754875B2 (en) | Copying data changes to a target database | |
US11416344B2 (en) | Partial database restoration | |
Baker et al. | Megastore: Providing scalable, highly available storage for interactive services. | |
US9058334B2 (en) | Parallel file system processing | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
US9753792B2 (en) | Method and system for byzantine fault tolerant data replication | |
US11176110B2 (en) | Data updating method and device for a distributed database system | |
CN109298978B (zh) | 一种指定位置的数据库集群的恢复方法及系统 | |
EP2380090B1 (en) | Data integrity in a database environment through background synchronization | |
CN102722584B (zh) | 数据存储系统及方法 | |
US20120278429A1 (en) | Cluster system, synchronization controlling method, server, and synchronization controlling program | |
CN111651519B (zh) | 数据同步方法、数据同步装置、电子设备及存储介质 | |
CN103617277A (zh) | 一种还原误删除的数据表内容的方法 | |
US20210165573A1 (en) | Managing Replication State for Deleted Objects | |
CN111046036A (zh) | 数据同步方法、装置、系统及存储介质 | |
US20210165760A1 (en) | Managing Dependent Delete Operations among Data Stores | |
JP2020057416A (ja) | 分散データベースにおけるデータブロックを処理する方法およびデバイス | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
EP3696658B1 (en) | Log management method, server and database system | |
US9390111B2 (en) | Database insert with deferred materialization | |
US20190196918A1 (en) | Methods and systems of operating a database management system dmbs in a strong consistency mode | |
CN102779134B (zh) | 基于Lucene的分布式搜索方法 | |
WO2023115935A1 (zh) | 数据处理方法、相关装置及设备 | |
CN116955417A (zh) | 数据多表联合检索的优化方法、装置及电子设备 | |
CN115469810A (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 |