CN117056379B - 一种元数据缓存方法、装置、电子设备及可读存储介质 - Google Patents
一种元数据缓存方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117056379B CN117056379B CN202311312549.XA CN202311312549A CN117056379B CN 117056379 B CN117056379 B CN 117056379B CN 202311312549 A CN202311312549 A CN 202311312549A CN 117056379 B CN117056379 B CN 117056379B
- Authority
- CN
- China
- Prior art keywords
- metadata
- area
- summary information
- coordination
- node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013515 script Methods 0.000 claims abstract description 42
- 230000008569 process Effects 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 abstract description 3
- 241000282813 Aepyceros melampus Species 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003054 catalyst Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual 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/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/2365—Ensuring data consistency and integrity
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种元数据缓存方法、装置、电子设备及可读存储介质,涉及信息技术领域,方法包括:目标协调节点获取到同一个脚本中的每个SQL语句;解析每个SQL语句,确定待请求元数据所属的对象和在对象中的区域;基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至目标协调节点对应的缓存中;基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使目标协调节点与其他协调节点缓存的元数据或元数据概要信息保持一致。如此,可以避免跑批的SQL语句、跑批的脚本被提交到不同协调节点执行,而导致元数据不同步的问题。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种元数据缓存方法、装置、电子设备及可读存储介质。
背景技术
Impala是用于处理存储在Hadoop集群中的大量数据的MPP(Massively ParallelProcessing,大规模并行处理)SQL(Structured Query Language,结构化查询语言)查询引擎。Impala为了追求性能上的极致,在架构上积极使用元数据缓存,尽可能的减少外部系统的RPC(Remote Procedure Call,远程过程调用),减少SQL语句执行延迟,从而提高吞吐量。但这种技术架构随着集群规模的不断扩大,元数据的增加,Impala的元数据缓存机制的相关问题逐渐凸显,会出现跑批的SQL语句由于提交到不同的协调节点,引起元数据不同步问题;会出现由于元数据加载的粒度为表级粒度,一个大表的加载,可能卡住整个加载队列的现象,甚至导致整个集群跑批性能断崖式下降等问题。
发明内容
有鉴于此,本发明实施例提供了一种元数据缓存方法、装置、电子设备及可读存储介质。
根据本发明第一方面,本发明实施例提供了一种元数据缓存方法,包括:
目标协调节点获取到同一个脚本中的每个结构化查询语言SQL语句;
解析每个SQL语句,确定待请求元数据所属的对象和在对象中的区域;
基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至目标协调节点对应的缓存中;
基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使目标协调节点与其他协调节点缓存的元数据或元数据概要信息保持一致。
可选地,目标协调节点获取到同一个脚本中的每个SQL语句,包括:
目标协调节点通过同一个会话获取到同一个脚本中的每个SQL语句。
可选地,基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,包括:
基于对象及区域对目标参数进行设定,以使元数据网关节点将获取到的与对象及区域对应的元数据或元数据概要信息,发送给其他协调节点,其他协调节点基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中。
可选地,基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,包括:
向其他协调节点发送元数据刷新指令,刷新指令包括待请求元数据所属的对象和在对象中的区域,以使其他协调节点基于对象及区域,从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中。
可选地,基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,包括:
在目标协调节点对应的缓存中查找对象及区域;
若未查找到对象及区域,基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息。
可选地,若基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据概要信息,元数据缓存方法还包括:
在执行SQL语句的过程中,基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据。
可选地,元数据缓存方法还包括:
基于预设策略对目标协调节点及其他协调节点缓存的元数据进行清除。
根据本发明第二方面,本发明实施例提供了一种元数据缓存装置,包括:
获取模块,用于目标协调节点获取到同一个脚本中的每个结构化查询语言SQL语句;
解析模块,用于解析每个SQL语句,确定待请求元数据所属的对象和在对象中的区域;
第一更新模块,用于基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至目标协调节点对应的缓存中;
第二更新模块,用于基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使目标协调节点与其他协调节点缓存的元数据或元数据概要信息保持一致。
根据本发明第三方面,本发明实施例提供了一种电子设备,包括:
至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行如第一方面或第一方面任意实施方式中的元数据缓存方法。
根据本发明第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行如第一方面或第一方面任意实施方式中的元数据缓存方法。
本发明实施例提供的一种元数据缓存方法、装置、电子设备及可读存储介质,通过目标协调节点获取到同一个脚本中的每个SQL语句;解析每个SQL语句,确定待请求元数据所属的对象和在对象中的区域;基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至目标协调节点对应的缓存中;基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使目标协调节点与其他协调节点缓存的元数据或元数据概要信息保持一致;如此,一个脚本中的所有SQL语句,都被提交到同一个协调节点执行,可以避免跑批的SQL语句被提交到不同协调节点执行,而导致的元数据不同步的问题;且确保各个协调节点上的元数据的一致性,可以避免由于跑批的脚本被提交到不同协调节点执行,而导致的数据不同步的问题;并且,是将与对象及区域对应的元数据或元数据概要信息更新至缓存中,从而元数据同步的粒度细化到了区域级别,元数据刷新更加轻量级。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为本发明实施例中一种元数据缓存方法的流程示意图;
图2示出了本发明实施例中Impala的架构示意图;
图3为本发明实施例中一种元数据缓存装置的结构示意图;
图4为本发明实施例中一种电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种元数据缓存方法,可应用于如Impala这样的可缓存元数据的元数据查询引擎。下述以Impala为例进行说明。如图1所示,元数据缓存方法包括:
S101,目标协调节点获取到同一个脚本中的每个SQL语句。
在本实施例中,Impala的架构如图2所示,包括元数据网关节点(Catalog),可通过RPC整合元数据库中的元数据,元数据库包括Hiver Metastore、Hdfs(Hadoop distributedfile system,分布式文件系统)、Ranger/Sentry。广播节点(StateStore),与Impala保持心跳,并且负责集群信息/元数据的广播。协调节点(Coordinator),负责接收SQL语句,生成SQL语句执行计划,SQL语句执行片段下发等。协调节点一般为2-4个,如图2所示的协调节点1、协调节点2和协调节点3。元数据网关节点和协调节点均可缓存元数据。
在本实施例中,目标协调节点为多个协调节点中的一个。
在本实施例中,一个跑批脚本通常涵盖多段SQL逻辑。由于Impala元数据缓存是采用异步广播的方式同步的,无论是从跑批性能上,还是减少catalog压力上,本发明实施例考虑尽可能的减少元数据的异步广播次数。为此,将跑批框架设计成一个脚本中的所有SQL语句,均请求到同一个协调节点,即目标协调节点,这种方案带来的好处就是确保同脚本多段SQL被提交到同一个coordinator执行,规避了元数据不同步带来的问题。
在一些实施例中,目标协调节点获取到同一个脚本中的每个SQL语句,包括:目标协调节点通过同一个会话获取到同一个脚本中的每个SQL语句。
具体地,外部系统要向目标协调节点发送脚本中的所有SQL语句时,可以通过传输控制协议(TCP)与目标协调节点建立JDBC(Java DataBase Connectivity,java数据库连接)连接,并形成JDBC连接的标识。然后将脚本中的每一个SQL语句,都基于JDBC标识,通过同一个JDBC连接,传输至目标协调节点。也即使得外部系统通过同一个会话(Session)与协调节点进行交互,同时通过F5源地址会话保持策略,确保同一个脚本的所有SQL语句,都请求到F5源地址之后的同一个协调节点,也即目标协调节点。这种方案带来的好处就是可以降低目标协调节点与外部系统连接的次数和开销,提升网络连接的使用效率。
S102,解析每个SQL语句,确定待请求元数据所属的对象和在对象中的区域。
在本实施例中,SQL语句中包括了待请求元数据所属的对象和在对象中的区域,从而目标协调节点获取到同一个脚本中的每个SQL语句后,对每个SQL语句进行解析,就可以得到待请求元数据所属的对象和在对象中的区域。其中,对象可以为表,在对象中的区域可以为表中的区域。
S103,基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至目标协调节点对应的缓存中。
在本实施例中,目标协调节点,如图2所示的协调节点1可以向元数据网关节点发送元数据异步加载请求。元数据网关节点将请求放入队列,异步线程处理请求,从Metastore、Hdfs、Ranger/Sentry加载最新的元数据,或元数据概要信息,并根据变更时间,增量更新到元数据网关节点的缓存中。然后元数据网关节点通过广播节点将加载的元数据或元数据概要信息广播到目标协调节点。目标协调节点然后可以先在目标协调节点的缓存中查找是否存在该对象,在该对象中是否存在与该区域对应的元数据,是否存在该对象及该区域的元数据概要信息。如果存在该对象,但不存在该区域对应的元数据,将该区域的元数据补充到对应的区域中。如果不存在该对象,则缓存该对象及该对象该区域对应的元数据。如果不存在该对象及该区域的元数据概要信息,则缓存该对象及该区域的元数据概要信息。
在本实施例中,通过从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,从而元数据同步的粒度细化到了对象的区域级别,甚至细化到了元数据概要信息级别,相比之前的对象级别,元数据刷新更加轻量级。
在一些实施例中,在确定待请求元数据所属的对象和在对象中的区域后,可以先在目标协调节点的缓存中查找是否存在该对象,在该对象中是否存在与该区域对应的元数据。如果都存在,就不需要再通过元数据网关来获取对应的元数据或元数据概要信息。因此,基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,包括:
在目标协调节点对应的缓存中查找对象及区域;
若未查找到对象及区域,基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息。
如此,可以在目标协调节点的缓存中存在该对象,及该区域的元数据时,不进行操作。仅在目标协调节点的缓存中不存在该对象或该区域的元数据时,才基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,避免没必要的网络开销。
S104,基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使目标协调节点与其他协调节点缓存的元数据或元数据概要信息保持一致。
在本实施例中其他协调节点为Impala架构中目标协调节点之外的协调节点。
在本实施例中,根据Impala集群的规模,一般会配置2~4个协调节点,前后依赖的跑批脚本可能会提交到不同的协调节点,这就需要确保不同协调节点元数据缓存的一致性,否则会引发数据不同步问题。
因此,在本实施例中,在目标协调节点基于对象及区域将元数据或元数据概要信息更新至目标协调节点对应的缓存中后,还可以基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使目标协调节点与其他协调节点缓存的元数据或元数据概要信息保持一致。
本发明实施例提供的一种元数据缓存,通过目标协调节点获取到同一个脚本中的每个SQL语句;解析每个SQL语句,确定待请求元数据所属的对象和在对象中的区域;基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至目标协调节点对应的缓存中;基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使目标协调节点与其他协调节点缓存的元数据或元数据概要信息保持一致。如此,一个脚本中的所有SQL语句,都被提交到同一个协调节点执行,可以避免跑批的SQL语句被提交到不同协调节点执行,而导致的元数据不同步的问题;且确保各个协调节点上的元数据的一致性,可以避免由于跑批的脚本被提交到不同协调节点执行,而导致的数据不同步的问题;并且,是将与对象及区域对应的元数据或元数据概要信息更新至缓存中,从而元数据同步的粒度细化到了区域级别,元数据刷新更加轻量级。
在一个可选的实施例中,步骤S104,基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,包括:
基于对象及区域对目标参数进行设定,以使元数据网关节点将获取到的与对象及区域对应的元数据或元数据概要信息,发送给其他协调节点,其他协调节点基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中。
具体实施时,可以在脚本运行结束前,设置参数sync_ddl=true,使得脚本中任何SQL语句,必须通过元数据网关节点将获取到的元数据或元数据概要信息,推送到所有协调节点上之后,才会返回。如此,各协调节点的元数据缓存可以保证强一致。
也就是说,本发明实施例提供一种元数据强制同步的方式,通过设置目标参数sync_ddl=true,启用该参数将会导致任何SQL语句必须通过元数据网关节点将更新的元数据信息推送到所有协调节点上之后,才会返回。由于强制同步会带来较大的资源消耗,因此,本发明实施例只在整个脚本结束前才设置sync_ddl=true,将对应脚本的元数据或元数据概要信息的变更强制同步到其他协调节点,以最大限度减少元数据强制同步造成的资源消耗。
在一个可选的实施例中,步骤S104,基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,包括:
向其他协调节点发送元数据刷新指令,刷新指令包括待请求元数据所属的对象和在对象中的区域,以使其他协调节点基于对象及区域,从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中。
具体实施时,可以在脚本中增加对其他协调节点元数据的刷新逻辑。在目标协调节点执行完脚本时,基于刷新逻辑,通过外部系统向其他协调节点发送元数据刷新指令,该外部系统为向目标协调节点发送脚本的节点,使得其他协调节点基于该元数据刷新指令,获取到需要执行刷新的对象和要刷新的元数据在对象中的区域,然后请求元数据网关节点执行重置元数据(reset Metadata)操作,并将是否刷新(is Fresh)参数设置为是。元数据网关节点接收到该请求之后执行重新加载该区域的元数据或者重新加载对象中所有元数据操作或者加载该对象该区域的元数据概要信息,从元数据库中读取最新的元数据或元数据概要信息,然后根据变更时间,增量更新到元数据网关节点的缓存中。然后通过广播节点广播到其他协调节点。其他协调节点收到元数据网关节点返回的元数据或元数据概要信息,并更新到自己的缓存中。
在本实施例中,元数据同步粒度细化到对象的区域级别,元数据刷新更加轻量级。
在一个可选的实施例中,若基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据概要信息,元数据缓存方法还包括:
在执行SQL语句的过程中,目标协调节点基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据。
具体实施时,目标协调节点对SQL语句进行解析,会先检查SQL语句中涉及的对象及区域是否已加载,获取未加载的对象及区域。针对未加载的对象及区域,通过元数据网关节点获取相关的元数据概要信息并缓存。在目标协调节点执行SQL语句的过程,如在生成SQL语句执行计划过程中,通过元数据网关节点,基于元数据概要信息从元数据库中获取到与对象及区域对应的元数据。
如此,元数据缓存粒度调整为元数据概要信息粒度,协调节点缓存元数据时,只需要缓存用到的元数据概要信息,从而可以提高Impala集群跑批性能。
在一个可选的实施例中,元数据缓存方法还包括:
基于预设策略对目标协调节点及其他协调节点缓存的元数据进行清除。
在本实施例中,在各个协调节点中可以增加清除缓存的预设策略。预设策略可以为内存阈值策略、生存时间值策略、LRU(Least Recently Used,在内存中但又不用的数据块)策略。
在本实施例中,基于预设策略对目标协调节点及其他协调节点缓存的元数据进行清除,可以实现将一些很久不用的元数据从缓存里面清除,提升Impala性能。
本发明实施例还提供了一种元数据缓存装置,如图3所示,包括:
获取模块31,用于目标协调节点获取到同一个脚本中的每个SQL语句;
解析模块32,用于解析每个SQL语句,确定待请求元数据所属的对象和在对象中的区域;
第一更新模块33,用于基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至目标协调节点对应的缓存中;
第二更新模块34,用于基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使目标协调节点与其他协调节点缓存的元数据或元数据概要信息保持一致。
本发明实施例提供的一种元数据缓存装置,通过目标协调节点获取到同一个脚本中的每个SQL语句;解析每个SQL语句,确定待请求元数据所属的对象和在对象中的区域;基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息,并基于对象及区域将元数据或元数据概要信息更新至目标协调节点对应的缓存中;基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使目标协调节点与其他协调节点缓存的元数据或元数据概要信息保持一致。如此,一个脚本中的所有SQL语句,都被提交到同一个协调节点执行,可以避免跑批的SQL语句被提交到不同协调节点执行,而导致的元数据不同步的问题;且确保各个协调节点上的元数据的一致性,可以避免由于跑批的脚本被提交到不同协调节点执行,而导致的数据不同步的问题;并且,是将与对象及区域对应的元数据或元数据概要信息更新至缓存中,从而元数据同步的粒度细化到了区域级别,元数据刷新更加轻量级。
在一个可选的实施例中,获取模块31,用于目标协调节点通过同一个会话获取到同一个脚本中的每个SQL语句。
在一个可选的实施例中,第二更新模块34,用于基于对象及区域对目标参数进行设定,以使元数据网关节点将获取到的与对象及区域对应的元数据或元数据概要信息,发送给其他协调节点,从而其他协调节点基于对象及区域将元数据或元数据概要信息更新至其他协调节点对应的缓存中。
在一个可选的实施例中,第二更新模块34,用于向其他协调节点发送元数据刷新指令,刷新指令包括待请求元数据所属的对象和在对象中的区域,以使其他协调节点基于对象及区域,从元数据库中获取到与对象及区域对应的元数据,并基于对象及区域将元数据更新至其他协调节点对应的缓存中。
在一个可选的实施例中,第一更新模块33,用于在目标协调节点对应的缓存中查找对象及区域;若未查找到对象及区域,基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据或元数据概要信息。
在一个可选的实施例中,第一更新模块33若基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据概要信息,第一更新模块33还用于在执行SQL语句的过程中,基于元数据网关节点从元数据库中获取到与对象及区域对应的元数据。
在一个可选的实施例中,元数据缓存装置还包括:
清除模块,用于基于预设策略对目标协调节点及其他协调节点缓存的元数据进行清除。
本发明的实施例,将跑批框架设计成一个脚本中的所有SQL语句,共用一个会话(Session),同时通过F5源地址会话保持策略,确保同一个脚本的所有SQL语句,都请求到F5之后的同一个协调节点。这样改进的优点是,降低了连接打开关闭的次数和开销,提升了网络连接的使用效率;确保同一脚本的多段SQL语句被提交到同一个协调节点执行,规避了元数据不同步带来的问题;且确保各个协调节点上的元数据的一致性,可以避免由于跑批的脚本被提交到不同协调节点执行,而导致的数据不同步的问题;并且,是将与对象及区域对应的元数据或元数据概要信息更新至缓存中,从而元数据同步的粒度细化到了区域级别,元数据刷新更加轻量级。
根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。
图4示出了可以用来实施本发明的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储电子设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如元数据缓存方法。例如,在一些实施例中,元数据缓存方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到电子设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的元数据缓存方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行元数据缓存方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种元数据缓存方法,其特征在于,包括:
目标协调节点获取到同一个脚本中的每个结构化查询语言SQL语句;
解析每个所述SQL语句,确定待请求元数据所属的对象和在所述对象中的区域;
基于元数据网关节点从元数据库中获取到与所述对象及所述区域对应的元数据或元数据概要信息,并基于所述对象及所述区域将所述元数据或元数据概要信息更新至所述目标协调节点对应的缓存中;
目标协调节点基于所述对象及所述区域将所述元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使所述目标协调节点与所述其他协调节点缓存的元数据或元数据概要信息保持一致。
2.根据权利要求1所述的元数据缓存方法,其特征在于,目标协调节点获取到同一个脚本中的每个结构化查询语言SQL语句,包括:
目标协调节点通过同一个会话获取到同一个脚本中的每个SQL语句。
3.根据权利要求1所述的元数据缓存方法,其特征在于,基于所述对象及所述区域将所述元数据或元数据概要信息更新至其他协调节点对应的缓存中,包括:
基于所述对象及所述区域对目标参数进行设定,以使元数据网关节点将获取到的与所述对象及所述区域对应的元数据或元数据概要信息,发送给所述其他协调节点,所述其他协调节点基于所述对象及所述区域将所述元数据或元数据概要信息更新至所述其他协调节点对应的缓存中。
4.根据权利要求1所述的元数据缓存方法,其特征在于,基于所述对象及所述区域将所述元数据或元数据概要信息更新至其他协调节点对应的缓存中,包括:
目标协调节点向其他协调节点发送元数据刷新指令,所述刷新指令包括待请求元数据所属的对象和在所述对象中的区域,以使其他协调节点基于所述对象及所述区域,从元数据库中获取到与所述对象及所述区域对应的元数据或元数据概要信息,并基于所述对象及所述区域将所述元数据或元数据概要信息更新至所述其他协调节点对应的缓存中。
5.根据权利要求1所述的元数据缓存方法,其特征在于,基于元数据网关节点从元数据库中获取到与所述对象及所述区域对应的元数据或元数据概要信息,包括:
在所述目标协调节点对应的缓存中查找所述对象及所述区域;
若未查找到所述对象及所述区域,基于元数据网关节点从元数据库中获取到与所述对象及所述区域对应的元数据或元数据概要信息。
6.根据权利要求1所述的元数据缓存方法,其特征在于,若基于元数据网关节点从元数据库中获取到与所述对象及所述区域对应的元数据概要信息,所述方法还包括:
在执行所述SQL语句的过程中,基于元数据网关节点从元数据库中获取到与所述对象及所述区域对应的元数据。
7.根据权利要求1所述的元数据缓存方法,其特征在于,还包括:
基于预设策略对所述目标协调节点及所述其他协调节点缓存的元数据进行清除。
8.一种元数据缓存装置,其特征在于,包括:
获取模块,用于目标协调节点获取到同一个脚本中的每个结构化查询语言SQL语句;
解析模块,用于解析每个所述SQL语句,确定待请求元数据所属的对象和在所述对象中的区域;
第一更新模块,用于基于元数据网关节点从元数据库中获取到与所述对象及所述区域对应的元数据或元数据概要信息,并基于所述对象及所述区域将所述元数据或元数据概要信息更新至所述目标协调节点对应的缓存中;
第二更新模块,用于目标协调节点基于所述对象及所述区域将所述元数据或元数据概要信息更新至其他协调节点对应的缓存中,以使所述目标协调节点与所述其他协调节点缓存的元数据或元数据概要信息保持一致。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-7任意一项所述的元数据缓存方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行如权利要求1-7任意一项所述的元数据缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311312549.XA CN117056379B (zh) | 2023-10-11 | 2023-10-11 | 一种元数据缓存方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311312549.XA CN117056379B (zh) | 2023-10-11 | 2023-10-11 | 一种元数据缓存方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117056379A CN117056379A (zh) | 2023-11-14 |
CN117056379B true CN117056379B (zh) | 2024-01-26 |
Family
ID=88655779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311312549.XA Active CN117056379B (zh) | 2023-10-11 | 2023-10-11 | 一种元数据缓存方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117056379B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339298A (zh) * | 2010-07-28 | 2012-02-01 | 中国移动通信集团公司 | Sql脚本元数据的更新方法、装置及系统 |
CN107729410A (zh) * | 2017-09-26 | 2018-02-23 | 广西电网有限责任公司电力科学研究院 | 一种适用于电力设备大数据的数据库引擎 |
CN107766451A (zh) * | 2017-09-26 | 2018-03-06 | 广西电网有限责任公司电力科学研究院 | 一种面向电力大数据的跨数据库关联检索方法 |
CN108595156A (zh) * | 2018-04-26 | 2018-09-28 | 宁波银行股份有限公司 | 一种基于Impala组件的批处理方法及系统 |
CN110515995A (zh) * | 2019-08-22 | 2019-11-29 | 深圳前海环融联易信息科技服务有限公司 | 快速生成大数据平台的etl作业方法及装置 |
CN111143382A (zh) * | 2019-12-13 | 2020-05-12 | 新华三大数据技术有限公司 | 数据处理方法、系统和计算机可读存储介质 |
CN112347076A (zh) * | 2020-11-05 | 2021-02-09 | 中国平安人寿保险股份有限公司 | 分布式数据库的数据存储方法、装置和计算机设备 |
CN114281258A (zh) * | 2021-12-22 | 2022-04-05 | 上海哔哩哔哩科技有限公司 | 基于数据存储的业务处理方法、装置、设备和介质 |
CN115269631A (zh) * | 2022-07-01 | 2022-11-01 | 阿里巴巴(中国)有限公司 | 数据查询方法、数据查询系统、设备及存储介质 |
CN116108057A (zh) * | 2023-04-11 | 2023-05-12 | 山东浪潮科学研究院有限公司 | 一种分布式数据库访问方法、装置、设备及存储介质 |
WO2023093245A1 (zh) * | 2021-11-26 | 2023-06-01 | 北京百度网讯科技有限公司 | 基于分布式文件系统的元数据查询方法、设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8442983B2 (en) * | 2009-12-31 | 2013-05-14 | Commvault Systems, Inc. | Asynchronous methods of data classification using change journals and other data structures |
US9607001B2 (en) * | 2012-07-13 | 2017-03-28 | Facebook, Inc. | Automated failover of a metadata node in a distributed file system |
-
2023
- 2023-10-11 CN CN202311312549.XA patent/CN117056379B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339298A (zh) * | 2010-07-28 | 2012-02-01 | 中国移动通信集团公司 | Sql脚本元数据的更新方法、装置及系统 |
CN107729410A (zh) * | 2017-09-26 | 2018-02-23 | 广西电网有限责任公司电力科学研究院 | 一种适用于电力设备大数据的数据库引擎 |
CN107766451A (zh) * | 2017-09-26 | 2018-03-06 | 广西电网有限责任公司电力科学研究院 | 一种面向电力大数据的跨数据库关联检索方法 |
CN108595156A (zh) * | 2018-04-26 | 2018-09-28 | 宁波银行股份有限公司 | 一种基于Impala组件的批处理方法及系统 |
CN110515995A (zh) * | 2019-08-22 | 2019-11-29 | 深圳前海环融联易信息科技服务有限公司 | 快速生成大数据平台的etl作业方法及装置 |
CN111143382A (zh) * | 2019-12-13 | 2020-05-12 | 新华三大数据技术有限公司 | 数据处理方法、系统和计算机可读存储介质 |
CN112347076A (zh) * | 2020-11-05 | 2021-02-09 | 中国平安人寿保险股份有限公司 | 分布式数据库的数据存储方法、装置和计算机设备 |
WO2023093245A1 (zh) * | 2021-11-26 | 2023-06-01 | 北京百度网讯科技有限公司 | 基于分布式文件系统的元数据查询方法、设备和存储介质 |
CN114281258A (zh) * | 2021-12-22 | 2022-04-05 | 上海哔哩哔哩科技有限公司 | 基于数据存储的业务处理方法、装置、设备和介质 |
CN115269631A (zh) * | 2022-07-01 | 2022-11-01 | 阿里巴巴(中国)有限公司 | 数据查询方法、数据查询系统、设备及存储介质 |
CN116108057A (zh) * | 2023-04-11 | 2023-05-12 | 山东浪潮科学研究院有限公司 | 一种分布式数据库访问方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117056379A (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442579B (zh) | 一种状态树数据存储方法、同步方法及设备和存储介质 | |
EP3595355A1 (en) | Resource obtaining method, apparatus and system | |
US7711720B2 (en) | Application server, cache program, and application server system | |
CN105354258B (zh) | 一种更新网站数据缓存的装置及方法 | |
CN111225010A (zh) | 数据处理方法、数据处理系统以及装置 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN112559560A (zh) | 元数据读取方法及装置、更新方法及装置、存储装置 | |
CN115599821A (zh) | 缓存控制方法、装置、设备及介质 | |
CN113568938A (zh) | 数据流处理方法、装置、电子设备及存储介质 | |
CN112883041B (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
CN114153986A (zh) | 一种知识图谱构建方法、装置、电子设备及存储介质 | |
CN113783916B (zh) | 信息同步方法及装置 | |
CN117056379B (zh) | 一种元数据缓存方法、装置、电子设备及可读存储介质 | |
CN112114856A (zh) | 一种热更新方法及装置 | |
CN116827946A (zh) | 负载均衡方法、数据同步方法、装置、电子设备及介质 | |
CN117009693A (zh) | http请求前端缓存方法、装置、电子设备及可读介质 | |
CN108037897B (zh) | 一种元数据扩散的方法、计算机装置及可读存储介质 | |
CN116185578A (zh) | 计算任务的调度方法和计算任务的执行方法 | |
CN112527802B (zh) | 基于键值数据库的软链接方法及装置 | |
CN113824675B (zh) | 管理登录态的方法和装置 | |
CN114461950A (zh) | 一种全局缓存方法、装置、电子设备及存储介质 | |
CN114706890A (zh) | 一种数据的多级查询方法、装置、电子设备及存储介质 | |
CN114756173A (zh) | 文件合并的方法、系统、设备和计算机可读介质 | |
CN114168494A (zh) | 一种缓存处理方法、装置、电子设备及存储介质 | |
CN113283596A (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 |