CN116644081A - 数据操作方法、装置、电子设备及存储介质 - Google Patents
数据操作方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116644081A CN116644081A CN202310656283.4A CN202310656283A CN116644081A CN 116644081 A CN116644081 A CN 116644081A CN 202310656283 A CN202310656283 A CN 202310656283A CN 116644081 A CN116644081 A CN 116644081A
- Authority
- CN
- China
- Prior art keywords
- data
- data table
- database
- target
- identifier
- 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 64
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000005192 partition Methods 0.000 claims description 158
- 238000004891 communication Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 230000008676 import Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000003054 catalyst Substances 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 101100328883 Arabidopsis thaliana COL1 gene Proteins 0.000 description 1
- 101100328886 Caenorhabditis elegans col-2 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000001360 synchronised 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及数据处理领域,具体公开了一种数据操作方法、装置、电子设备及存储介质。该方法包括:获取数据表操作请求中包含的数据库标识以及数据表标识;获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;根据所述数据表属性信息,对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作。该方式大幅提升了数据表的操作效率,且避免了手动输入信息出错的问题,提升了准确性。
Description
技术领域
本公开实施例涉及数据处理领域,具体涉及一种数据操作方法、装置、电子设备及存储介质。
背景技术
目前,大数据成为当前业界的技术热点,特别是随着云计算业务的部署,大数据作为其最重要的业务应用,其发展前景被寄予厚望。大数据的主要特点是体量大、种类多、速度快以及价值高等特点,并同时伴随着多源、异构以及海量的数据特征。
为了实现大数据的存储,各种类型的数据库也随之应运而生。数据库中存储着海量的数据表,在一些业务场景中,需要针对数据库中已创建的数据表执行各种类型的数据操作。
在相关技术中,为了能够对已创建的数据表执行数据操作,需要用户手动输入已创建的数据表的各项信息,以便根据用户手动输入的各项信息定位到数据库中对应的数据表,并执行相关数据操作。由此可见,在数据表数量较多的应用场景中,上述实现方式至少存在操作繁琐、效率低下的缺陷。
发明内容
鉴于上述问题,提出了本公开以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据操作方法、装置、电子设备及存储介质。
根据本公开实施例的一个方面,提供了一种数据操作方法,包括:
获取数据表操作请求中包含的数据库标识以及数据表标识;
获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;
从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;
根据所述数据表属性信息,对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作。
在一种可选的实现方式中,所述数据操作包括:写入操作;所述根据所述数据表属性信息,对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作具体包括:
获取与所述数据表操作请求相对应的待写入数据;其中,所述待写入数据包括:按照第一字段次序排列的多个待写入字段;
根据所述数据表属性信息,确定与所述目标数据表相对应的第二字段次序;
在所述第二字段次序与所述第一字段次序不匹配的情况下,对所述多个待写入字段的字段次序进行调整,将多个调整后的待写入字段写入所述目标数据表。
在一种可选的实现方式中,所述获取与所述数据表操作请求相对应的待写入数据具体包括:
根据所述数据库标识,确定与所述数据库标识相对应的目标数据格式;
获取与所述数据表操作请求相对应的原始操作数据,确定所述原始操作数据的原始数据格式;
对所述原始操作数据执行格式转换处理,得到与所述目标数据格式相匹配的所述待写入数据。
在一种可选的实现方式中,所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作之前,还包括:
获取与所述数据表操作请求相对应的分区调整参数,根据所述数据表属性信息确定所述目标数据表的初始分区信息;
根据所述分区调整参数中包含的调整类型以及虚拟分区字段,对所述目标数据表的初始分区信息进行调整,得到所述目标数据表调整后的分区信息;
则所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作具体包括:根据所述目标数据表调整后的分区信息,对所述目标数据表执行数据操作。
在一种可选的实现方式中,所述根据所述分区调整参数中包含的调整类型以及虚拟分区字段,对所述目标数据表的初始分区信息进行调整,得到所述目标数据表调整后的分区信息具体包括:
获取所述虚拟分区字段的字段值,根据所述数据表属性信息中包含的分区配置信息,确定与所述虚拟分区字段的字段值相对应的目标分区;
按照所述调整类型,对所述目标分区进行调整,得到所述调整后的分区信息;其中,所述调整类型包括:尺寸调整类型、和/或数据删除类型。
在一种可选的实现方式中,所述根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点具体包括:
根据所述数据库配置信息,确定与所述数据库标识相对应的集群拓扑结构;
根据所述集群拓扑结构,确定与所述数据库标识相对应的多个前端数据节点以及多个后端数据节点;
从所述多个前端数据节点中确定与所述数据表标识相对应的前端数据节点,以及,从多个后端数据节点中确定与所述数据表标识相对应的后端数据节点。
在一种可选的实现方式中,所述从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息包括:
根据所述集群拓扑结构,获取所述数据表标识相对应的前端数据节点的节点地址以及鉴权信息;
根据所述节点地址以及鉴权信息,从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;其中,所述鉴权信息包括:账号信息和/或密码信息。
在一种可选的实现方式中,所述方法执行之前,还包括:
根据目标数据库的数据库类型,生成所述数据库标识;
配置并加载与所述数据库标识相对应的目标数据库服务;
其中,所述获取数据表操作请求中包含的数据库标识以及数据表标识的步骤及其后续步骤通过所述目标数据库服务执行。
在一种可选的实现方式中,所述目标数据库为分布式关系型列式数据库;
并且,所述目标数据库服务中包括以下接口中的至少一个:信息获取接口、数据操作接口、以及分区操作接口;
则所述获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息的步骤通过调用所述信息获取接口实现;
所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作的步骤通过调用所述数据操作接口实现;
所述对所述目标数据表的初始分区信息进行调整的步骤通过调用所述分区操作接口实现。
在一种可选的实现方式中,所述目标数据库服务包括:基于批处理计算框架实现的插件服务;或者,所述目标数据库服务包括:基于微服务实现的对象关系映射框架服务。
依据本公开的再一方面,提供了一种数据操作装置,所述装置包括:
标识获取模块,适于获取数据表操作请求中包含的数据库标识以及数据表标识;
配置获取模块,适于获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;
属性获取模块,适于从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;
数据操作模块,适于根据所述数据表属性信息,对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作。
在一种可选的实现方式中,所述数据操作包括:写入操作;所述数据操作模块具体适于:
获取与所述数据表操作请求相对应的待写入数据;其中,所述待写入数据包括:按照第一字段次序排列的多个待写入字段;
根据所述数据表属性信息,确定与所述目标数据表相对应的第二字段次序;
在所述第二字段次序与所述第一字段次序不匹配的情况下,对所述多个待写入字段的字段次序进行调整,将多个调整后的待写入字段写入所述目标数据表。
在一种可选的实现方式中,所述数据操作模块具体适于:
根据所述数据库标识,确定与所述数据库标识相对应的目标数据格式;
获取与所述数据表操作请求相对应的原始操作数据,确定所述原始操作数据的原始数据格式;
对所述原始操作数据执行格式转换处理,得到与所述目标数据格式相匹配的所述待写入数据。
在一种可选的实现方式中,所述数据操作模块还适于:
获取与所述数据表操作请求相对应的分区调整参数,根据所述数据表属性信息确定所述目标数据表的初始分区信息;
根据所述分区调整参数中包含的调整类型以及虚拟分区字段,对所述目标数据表的初始分区信息进行调整,得到所述目标数据表调整后的分区信息;
则所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作具体包括:根据所述目标数据表调整后的分区信息,对所述目标数据表执行数据操作。
在一种可选的实现方式中,所述数据操作模块具体适于:
获取所述虚拟分区字段的字段值,根据所述数据表属性信息中包含的分区配置信息,确定与所述虚拟分区字段的字段值相对应的目标分区;
按照所述调整类型,对所述目标分区进行调整,得到所述调整后的分区信息;其中,所述调整类型包括:尺寸调整类型、和/或数据删除类型。
在一种可选的实现方式中,所述配置获取模块具体适于:
根据所述数据库配置信息,确定与所述数据库标识相对应的集群拓扑结构;
根据所述集群拓扑结构,确定与所述数据库标识相对应的多个前端数据节点以及多个后端数据节点;
从所述多个前端数据节点中确定与所述数据表标识相对应的前端数据节点,以及,从多个后端数据节点中确定与所述数据表标识相对应的后端数据节点。
在一种可选的实现方式中,所述属性获取模块具体适于:
根据所述集群拓扑结构,获取所述数据表标识相对应的前端数据节点的节点地址以及鉴权信息;
根据所述节点地址以及鉴权信息,从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;其中,所述鉴权信息包括:账号信息和/或密码信息。
在一种可选的实现方式中,所述装置还包括:
配置加载模块,适于根据目标数据库的数据库类型,生成所述数据库标识;配置并加载与所述数据库标识相对应的目标数据库服务;
其中,所述获取数据表操作请求中包含的数据库标识以及数据表标识的操作及其后续操作通过所述目标数据库服务执行。
在一种可选的实现方式中,所述目标数据库为分布式关系型列式数据库;
并且,所述目标数据库服务中包括以下接口中的至少一个:信息获取接口、数据操作接口、以及分区操作接口;
则所述获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息的操作通过调用所述信息获取接口实现;
所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作的操作通过调用所述数据操作接口实现;
所述对所述目标数据表的初始分区信息进行调整的操作通过调用所述分区操作接口实现。
在一种可选的实现方式中,所述目标数据库服务包括:基于批处理计算框架实现的插件服务;或者,所述目标数据库服务包括:基于微服务实现的对象关系映射框架服务。
依据本公开的再一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上述的数据操作方法。
依据本公开的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述的数据操作方法。
在本公开的实施例中,能够根据数据表操作请求中包含的数据库标识以及数据表标识,获取与数据库标识相对应的数据库配置信息,从而确定与数据表标识相对应的前端数据节点以及后端数据节点,以便从前端数据节点中获取与数据表标识相对应的数据表属性信息,并根据数据表属性信息,对后端数据节点中存储的与数据表标识相对应的目标数据表执行数据操作。由此可见,该方式预先配置了与数据库标识相对应的数据库配置信息,通过该数据库配置信息能够快速确定与数据表标识相对应的前端数据节点以及后端数据节点,并自动从前端数据节点中获取与数据表标识相对应的数据表属性信息,无需用户手动输入前端数据节点的节点地址以及数据表属性信息,直接根据数据库标识以及数据表标识即可自动定位数据库中的对应数据表,大幅提升了数据表的操作效率,且避免了手动输入信息出错的问题,提升了准确性。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本公开一个实施例提供的一种数据操作方法的流程图;
图2示出了本公开的一个具体示例提供的一种数据操作方法的流程图;
图3示出了本公开又一实施例提供的一种数据操作装置的示意图;
图4示出了本公开又一实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本公开一个实施例提供的一种数据操作方法的流程图。如图1所示,该方法包括:
步骤S110:获取数据表操作请求中包含的数据库标识以及数据表标识。
其中,数据表操作请求用于针对数据表执行数据操作。数据操作的具体操作类型包括:删除操作、写入操作、更新操作等各种类型。
具体实施时,数据表操作请求可通过多种语法格式生成,例如,数据表操作请求可通过结构化查询(Structured Query Language,SQL)语句实现。或者,数据表操作请求也可以通过其他形式的程序代码实现。无论数据表操作请求的具体实现形式如何,数据表操作请求中需要包含用于指示数据库标识以及数据表标识的参数信息。数据库标识用于确定数据表所在的数据库,数据表标识用于定位具体的数据表。
步骤S120:获取与数据库标识相对应的数据库配置信息,根据数据库配置信息确定与数据表标识相对应的前端数据节点以及后端数据节点。
其中,预先针对与数据库标识相对应的目标数据库,配置对应的数据库配置信息。该数据库配置信息用于存储目标数据库的集群拓扑结构、鉴权信息等各种基本信息。数据库配置信息可通过元数据服务或配置中心进行维护。
由于数据库配置信息中存储了目标数据库的集群拓扑结构,因此,能够基于数据库配置信息确定与数据表标识相对应的前端数据节点以及后端数据节点。其中,在数据库集群中,为了实现数据的快速访问,配置有若干前端数据节点以及后端数据节点。前端数据节点(Front End,FE)负责实现数据库正常工作所需的各项查询操作,例如,前端数据节点用于存储各个数据表的数据表属性信息。后端数据节点(Back End,BE)负责存储各个数据表的具体数据内容。
步骤S130:从前端数据节点中获取与数据表标识相对应的数据表属性信息。
通过访问前端数据节点,能够获取到前端数据节点中存储的与数据表标识相对应的数据表属性信息。其中,数据表属性信息用于对与数据表标识相对应的目标数据表的各项属性进行描述,具体包括:格式信息、字段数量及各字段的名称、多个字段之间的排列次序、分区设置情况等。
无论是需要向数据表中写入数据,还是需要从数据表中删除数据,都需要预先获取数据表属性信息,以确定数据表中的各个字段的存储格式及存储次序,以便实现写入操作或删除操作。
步骤S140:根据数据表属性信息,对后端数据节点中存储的与数据表标识相对应的目标数据表执行数据操作。
具体的,根据数据表属性信息,能够确定目标数据表的字段数量、字段次序、字段格式等具体信息,从而能够自动执行与目标数据表相匹配的数据操作。
由此可见,该方式预先配置了与数据库标识相对应的数据库配置信息,通过该数据库配置信息能够快速确定与数据表标识相对应的前端数据节点以及后端数据节点,并自动从前端数据节点中获取与数据表标识相对应的数据表属性信息,无需用户手动输入前端数据节点的节点地址以及数据表属性信息,直接根据数据库标识以及数据表标识即可自动定位数据库中的对应数据表,大幅提升了数据表的操作效率,且避免了手动输入信息出错的问题,提升了准确性。
在一种可选的实现方式中,上述数据操作包括:写入操作。该数据操作方法主要用于向数据库中已创建的数据表中写入数据。由于待写入的数据可能是从第三方数据表中获取的,因此,用户输入数据中的字段次序可能与目标数据表中的字段次序不同,在相关技术中,需要由用户在写入之前,预先获取目标数据表中的字段次序,并根据目标数据表中的字段次序对用户输入数据进行调整,以使调整后的用户输入数据的字段次序与目标数据表的字段次序相同。但是,上述方式存在着操作繁琐不便的弊端,为了解决上述问题,在本实施例中,可以自动根据与目标数据表相对应的字段次序对待写入数据的字段次序进行调整,以提升数据写入效率和准确性。
例如,在根据数据表属性信息,对后端数据节点中存储的与数据表标识相对应的目标数据表执行数据操作时,具体通过以下方式实现:首先,获取与数据表操作请求相对应的待写入数据;其中,待写入数据包括:按照第一字段次序排列的多个待写入字段。然后,根据数据表属性信息,确定与目标数据表相对应的第二字段次序。最后,在第二字段次序与第一字段次序不匹配的情况下,对多个待写入字段的字段次序进行调整,将多个调整后的待写入字段写入目标数据表。举例而言,假设多个待写入字段包括:第一字段、第二字段、第三字段,且第一字段次序为:第一字段、第三字段、第二字段;假设与目标数据表相对应的第二字段次序为:第一字段、第二字段、第三字段,则需要对多个待写入字段的字段次序进行调整,以使调整后的多个待写入字段的字段次序与目标数据表的字段次序一致。由此可见,通过上述方式,能够自动调整待写入字段的顺序,无需用户手动指定各个字段的内容,大幅降低了用户手动输入的数据量,避免了出错的可能性。
在又一种可选的实现方式中,由于用户输入数据的来源多样,导致用户输入数据的数据格式可能与数据库标识相对应的目标数据库的数据格式不匹配,从而导致数据写入错误的问题。为了解决上述问题,在本实施例中,能够通过自动格式转换的方式使用户输入数据与目标数据库的格式匹配。相应的,在获取与数据表操作请求相对应的待写入数据时,具体通过以下方式实现:首先,根据数据库标识,确定与数据库标识相对应的目标数据格式。然后,获取与数据表操作请求相对应的原始操作数据,确定原始操作数据的原始数据格式。最后,对原始操作数据执行格式转换处理,得到与目标数据格式相匹配的待写入数据。其中,与数据表操作请求相对应的原始操作数据通常是由用户通过预设接口输入的数据,由于用户输入的原始操作数据的原始数据格式通常与数据库标识对应的目标数据格式不同,因此,通过格式转换处理,能够得到与目标数据格式相匹配的待写入数据。
在一种可选的实现方式中,考虑到大数据场景中通常会涉及到分区相关的操作,而传统的数据操作方式并不支持分区操作,为了解决上述问题,在本实施例中,设置有虚拟分区字段,借助虚拟分区字段能够指向特定的某一分区,从而实现针对该分区的操作。并且,由于前端数据节点提供的数据表属性信息中包含目标数据表的初始分区信息,因此,根据初始分区信息能够快速定位虚拟分区字段所指向的目标分区,从而实现针对目标分区的分区调整操作。具体的,在对后端数据节点中存储的与数据表标识相对应的目标数据表执行数据操作之前,进一步执行以下操作:首先,获取与数据表操作请求相对应的分区调整参数,根据数据表属性信息确定目标数据表的初始分区信息。其中,与数据表操作请求相对应的分区调整参数可以包含在数据表操作请求中;或者,与数据表操作请求相对应的分区调整参数也可以包含在与数据表操作请求相关联的分区调整指令中,该分区调整指令可以为代码指令等各类指令。另外,数据表属性信息中包含目标数据表的初始分区信息,该初始分区信息用于表征目标数据表的分区数量以及各个分区的分区名称、尺寸大小等相关信息。然后,根据分区调整参数中包含的调整类型以及虚拟分区字段,对目标数据表的初始分区信息进行调整,得到目标数据表调整后的分区信息。其中,分区调整参数中包含的调整类型具体包括:分区尺寸调整类型、分区数据删除类型、分区创建类型等各种类型。相应的,在对后端数据节点中存储的与数据表标识相对应的目标数据表执行数据操作时,具体根据目标数据表调整后的分区信息,对目标数据表执行数据操作。
在一种具体的实现方式中,在根据分区调整参数中包含的调整类型以及虚拟分区字段,对目标数据表的初始分区信息进行调整,得到目标数据表调整后的分区信息时,具体通过以下方式实现:首先,获取虚拟分区字段的字段值,根据数据表属性信息中包含的分区配置信息,确定与虚拟分区字段的字段值相对应的目标分区。其中,在分区配置信息中包含了各个分区的分区标识信息,相应的,将分区标识信息与虚拟分区字段的字段值匹配的分区确定为目标分区。然后,按照调整类型,对目标分区进行调整,得到调整后的分区信息。通过上述方式,能够借助虚拟分区字段实现对分区的调整操作,从而为后续的数据写入等操作提供基础。
在一种可选的实现方式中,在根据数据库配置信息确定与数据表标识相对应的前端数据节点以及后端数据节点时,具体通过以下方式实现:首先,根据数据库配置信息,确定与数据库标识相对应的集群拓扑结构。其中,集群拓扑结构用于表征与数据库标识相对应的目标数据库的集群架构,例如,集群中包含的前端数据节点的数量以及分布位置,后端数据节点的数量以及分布位置等。然后,根据集群拓扑结构,确定与数据库标识相对应的多个前端数据节点以及多个后端数据节点。最后,从多个前端数据节点中确定与数据表标识相对应的前端数据节点,以及,从多个后端数据节点中确定与数据表标识相对应的后端数据节点。例如,从多个前端数据节点中确定目标数据库的入口节点,将该入口节点作为与数据表标识相对应的前端数据节点。
在又一种可选的实现方式中,为了提升数据库的安全性,在访问数据库之前,需要预先对用户执行鉴权操作,以确认用户的安全性。在相关技术中,通常需要由用户手动输入鉴权信息,由此导致输入代码复杂、且鉴权信息以明文方式出现在代码中容易造成泄露的问题。为了解决上述问题,在本实施例中,能够根据集群拓扑结构自动获取鉴权信息,避免了用户手动输入所导致的操作繁琐且容易泄露的问题。具体的,在从前端数据节点中获取与数据表标识相对应的数据表属性信息时,具体通过以下方式实现:首先,根据集群拓扑结构,获取数据表标识相对应的前端数据节点的节点地址以及鉴权信息。其中,鉴权信息用于对访问前端数据节点的用户身份进行鉴权,具体包括:账号信息和/或密码信息等。在集群拓扑结构中,存储着各个前端数据节点的节点地址以及鉴权信息。然后,根据节点地址以及鉴权信息,从前端数据节点中获取与数据表标识相对应的数据表属性信息。其中,数据表属性信息用于描述数据表的字段数量、字段名称、数据表来源、数据表用途、分区情况等各种相关内容。
本实施例中的数据操作方法可以应用于各类数据库场景中,为了便于针对指定的目标数据库进行操作,需要预先针对目标数据库配置目标数据库服务,该目标数据库服务用于实现对该目标数据库中存储的数据表执行数据操作的功能。相应的,在本实施例中的数据操作方法执行之前,进一步执行以下操作:根据目标数据库的数据库类型,生成数据库标识;配置并加载与数据库标识相对应的目标数据库服务。在该方式中,上述获取数据表操作请求中包含的数据库标识以及数据表标识的步骤及其后续步骤通过目标数据库服务执行,即:本实施例的执行主体为目标数据库服务。由此可见,在上述方式中,预先定义了与目标数据库相对应的数据库标识,并配置了与数据库标识相对应的目标数据库服务。相应的,在接收到包含数据库标识的数据表操作请求的情况下,即可自动调用目标数据库服务,以实现针对目标数据库中的数据表的操作功能。
在一种可选的实现方式中,目标数据库为分布式关系型列式数据库。相应的,目标数据库服务中包括以下接口中的至少一个:信息获取接口、数据操作接口、以及分区操作接口。其中,信息获取接口用于根据数据库配置信息,获取数据操作过程中所需的各项信息,包括前端数据节点的节点地址、鉴权信息等各类信息。相应的,获取与数据库标识相对应的数据库配置信息,根据数据库配置信息确定与数据表标识相对应的前端数据节点以及后端数据节点;从前端数据节点中获取与数据表标识相对应的数据表属性信息的步骤通过调用上述信息获取接口实现。数据操作接口用于访问目标数据库中的目标数据表,以实现针对目标数据表的具体操作,如写入操作、删除操作等。相应的,对后端数据节点中存储的与数据表标识相对应的目标数据表执行数据操作的步骤通过调用数据操作接口实现。分区操作接口用于管理目标数据表中的分区设置信息,例如,可以调整目标数据表的分区、删除分区数据等。相应的,对目标数据表的初始分区信息进行调整的步骤通过调用分区操作接口实现。通过封装不同的接口,能够直接调用相应的接口实现不同功能的操作,提升了操作的便捷性和准确性。
在一种可选的实现方式中,目标数据库服务包括:基于批处理计算框架实现的插件服务。例如,批处理计算框架可以为能够实现批处理功能的各类大数据框架,如spark框架等。由于数据库的种类多样,因此,为了便于批处理计算框架灵活处理各种类型的数据库,预先在批处理框架中加载插件服务,通过该插件服务实现针对目标数据库的数据操作功能。在又一种可选的实现方式,目标数据库服务还可以包括:基于微服务实现的对象关系映射框架服务。总之,本申请不限定目标数据库服务的具体实现方式,只要能够实现针对目标数据库执行数据操作的功能即可。
为了便于理解,下面分别以两个具体示例为例,详细介绍上述实施例的具体实现细节。在下述两个示例中,目标数据库为分布式关系型列式数据库,具体可以是Doris数据库。其中,Doris数据库是一个基于MPP架构实现的高性能、实时的分析型数据库。Doris数据库能够存储各种类型的业务数据,包括但不限于:游戏应用中的业务数据、广告应用中的报表分析数据等。另外,由于大数据场景中的业务数据是动态更新的,因此,需要根据业务数据的动态更新情况,对Doris数据库中的数据表执行不同类型的数据操作。例如,每天存在大量的新增业务数据需要导入Doris数据库,因此,需要针对Doris数据库中已创建的数据表执行数据写入操作或数据删除操作等。其中,数据导入方式主要包括:基于分布式计算的导入方式(对应于下文的示例一的业务场景)、以及基于微服务单节点的导入方式(对应于下文的示例二的业务场景)。
在相关技术中,基于Doris数据库的数据导入方式主要包括以下多种:Broker异步导入方式、Spark Load导入方式、流式同步导入方式等。但是,上述导入方式普遍存在着以下缺陷:导入语法格式冗余,异步查询交互复杂,且容易出现大量的数据错误问题。例如,在一种实现方式中,基于Spark框架操作Doris数据表时,用户需手动编写以下代码:
CREATE TEMPORARY VIEW spark_doris
USING doris
"table.identifier"="$YOUR_DORIS_DATABASE_NAME.$YOUR_DORIS_TAB LE_NAME",//输入数据表的表名;
"fenodes"="$YOUR_DORIS_FE_HOSTNAME:$YOUR_DORIS_FE_RESFUL_PORT",//输入前端节点的节点地址;
"doris.write.fields"="COL1,COL2,…",//输入数据表相关的列名,以便对列进行操作;
"user"="$YOUR_DORIS_USERNAME",
"password"="$YOUR_DORIS_PASSWORD"
);//以明文形式输入账号名和密码
INSERT INTO spark_doris
VALUES("VALUE1","VALUE2",...);//向后端节点存储的数据表中写入数据;
由此可见,在上述方式中,至少存在以下问题:
(1)用户需要手动输入账号和密码信息,且账号和密码信息显式配置,因此,不仅操作繁琐,而且容易导致信息泄露的问题。
(2)需要用户手动输入数据表中待操作的各个字段的字段信息等表元信息,因而导致表元信息的配置方式复杂且冗余。
(3)上述方式不支持针对数据表执行分区操作。由于上述方式中未针对分区进行相关的代码定义,因此,无法实现分区调整、分区创建等与分区设置相关的操作。但是,分区操作功能对于联机分析处理引擎而言是非常重要的。
除上述代码实现方式之外,在微服务环境中,还可以基于原生的流式导入接口实现数据操作功能,但是,该方式的复杂度更高,且同样存在上述三方面的缺陷。
为了解决上述问题,本申请提供了下述示例一及示例二中的两种实现方式:
示例一、
在示例一中,提供了一种基于分布式计算的数据导入方式,主要将基于批处理计算框架实现的插件服务作为上文提到的目标数据库服务。其中,批处理计算框架可以包括各类大数据框架,如Spark、Flink以及DataX框架(即数据同步框架,支持JSON格式的配置)等。在示例一中,批处理计算框架为Spark框架。由于Spark框架本身并不支持针对Doris数据库的数据操作功能,因此,在相关技术中,为了能够基于Spark框架对Doris数据库的数据表进行操作,需要编写大量的复杂代码实现。
为了解决上述问题,在本示例中,预先根据目标数据库(即Doris数据库)的数据库类型,生成了对应于Doris数据库的数据库标识,并且,配置并加载了与该数据库标识相对应的目标数据库服务。该目标数据库服务具体为基于Spark框架实现的插件服务(如Catalog插件,即用于管理数据库元信息的插件)。借助该插件服务能够实现针对Doris数据库的数据表进行操作的功能。其中,在该插件服务中,至少实现了上文提到的信息获取接口、数据操作接口、以及分区操作接口这三类接口。
图2示出了示例一提供的一种数据操作方法的流程示意图,如图2所示,该示例主要包括以下步骤:
步骤S201:接收数据表操作请求,获取该数据表操作请求中包含的数据库标识以及数据表标识。
例如,数据表操作请求可通过如下的Spark SQL代码语句实现:
INSERT INTO doris.alias_name.expamle_list_tbl
其中,doris为数据库标识,用于指代doris数据库,alias_name用于表征与doris数据库相对应的插件服务。例如,在doris数据库具体包括多个物理数据库的情况下,可以分别针对每个物理数据库配置不同的插件服务名称,相应的,通过alias_name能够调用与待访问的物理数据库相对应的插件服务。expamle_list_tbl为数据表标识,用于确定具体的数据表。由此可见,在数据表操作请求中至少需要包含数据库标识以及数据表标识,以便调用与数据库相对应的插件服务访问对应的数据表。
步骤S202:向与数据库标识相对应的配置存储中心发送包含数据库标识以及数据表标识的配置信息获取请求。
其中,与数据库标识相对应的配置存储中心用于统一存储目标数据库对应的配置信息,具体可以为元数据服务中心。
步骤S203:获取配置存储中心返回的与数据库标识相对应的数据库配置信息,根据数据库配置信息确定与数据表标识相对应的前端数据节点。
其中,配置存储中心返回的与数据库标识相对应的数据库配置信息至少包括:数据库的集群拓扑信息、与数据表标识相对应的前端数据节点(也叫入口数据节点)、前端数据节点的节点地址、前端数据节点对应的鉴权信息等。
步骤S204:访问与数据表标识相对应的前端数据节点,获取与数据表标识相对应的数据表属性信息。
具体的,根据前端数据节点的节点地址以及鉴权信息,访问与数据表标识相对应的前端数据节点,获取与数据表标识相对应的数据表属性信息。其中,数据表属性信息存储在前端数据节点上,用于表征数据表结构、字段特征、分区情况等具体内容。
在其他可选的实现方式中,也可以将数据库的集群拓扑信息存储在前端数据节点上,从前端数据节点中获取集群拓扑信息等数据库相关内容。
步骤S205:确定与数据表标识相对应的后端数据节点,针对后端数据节点中存储的与数据表标识相对应的目标数据表执行分区调整操作。
其中,与数据表标识相对应的后端数据节点可以直接根据配置存储中心返回的与数据库标识相对应的数据库配置信息确定,或者,也可以根据前端数据节点中存储的集群拓扑信息确定,具体取决于集群拓扑信息的存储位置(例如可存储于数据库配置信息中或存储于前端数据节点中),本申请不限定后端数据节点的具体确定方式。
由于后端数据节点是实际存储目标数据表的物理节点,因此,在本步骤中,针对后端数据节点中存储的与数据表标识相对应的目标数据表执行分区调整操作。具体的,可以通过以下方式实现分区调整:首先,获取与数据表操作请求相对应的分区调整参数。其中,与数据表操作请求相对应的分区调整参数可以直接包含在数据表操作请求中,或者,与数据表操作请求相对应的分区调整参数也可以包含在与数据表操作请求相关联的分区调整指令中,该分区调整指令可以为代码指令或其他各种形式的指令。然后,根据数据表属性信息确定目标数据表的初始分区信息。其中,初始分区信息用于表征目标数据表在执行数据操作之前的分区状态,包括分区数量、各个分区的名称等具体内容。最后,根据分区调整参数中包含的调整类型以及虚拟分区字段,对目标数据表的初始分区信息进行调整,得到目标数据表调整后的分区信息。其中,调整类型还可以为分区变更类型(用于执行分区的创建和删除等变更处理),也可以是数据删除类型(用于删除分区中的原有数据,以便于重新写入)等。
步骤S206:根据目标数据表调整后的分区信息,对后端数据节点中存储的与数据表标识相对应的目标数据表执行数据操作。
其中,数据操作通常为写入操作。具体实施时,在后端数据节点为多个的情况下,需要通过分布式写入方式分别写入多个后端数据节点。另外,在写入过程中,还可以自动根据目标数据库的存储格式,对用户输入数据进行格式调整。并且,还可以根据目标数据表的格式,自动调整待写入数据中的各个字段的顺序,以使写入过程能够自动适配数据表格式。
由此可见,在示例一中,借助Catalog插件,实现了针对数据表的基本元信息的读取、分区等相关操作、数据删除操作及元数据自适应写入,简化了数据写入方式,提升了数据写入效率。该方式能够大幅精简代码量,无需用户手动输入字段信息、账号密码等数据内容,直接通过Catalog插件实现对数据库配置信息的获取,从而自动实现数据的自适应写入。该方式中无需填写额外的元信息。由于人工编写代码容易出错,代码量越多则出错可能性越大,例如,字母的大小写、数字和相似字母之间经常难以分辨。而且,由于SQL代码缺乏灵活的调试手段,因此,通过降低代码量,能够大幅降低出错可能。
另外,在该示例中,还可以针对代码实现过程中的一些技术细节进行优化:
例如,在该示例的具体实现过程中,数据操作方法中的返回值可以设置为ACCEPT_ANY_SCHEMA,V1_BATCH_WRITE等数值,这些数值为Spark接口的枚举类,代表了插件本身能够支持的能力。通过将枚举值设置为上述数值能够实现字段自适应以及数据批写入功能。
又如,由于Spark SQL本身是面向Hive的数据库元信息模型建立的,在分区上采用的是多级自定义分区。而Doris则更加类似于关系型数据库,提供的是固定二级分区,其中,第二级分区为桶分区,不直接出现在数据操作中;一级分区名,需要进行全局的统一并默认指定为一个固定值。而且,Hive表的分区是用户自定义的,比如,游戏业务表可以按照“日期”、“游戏名”、“区服”等信息进行三级分区,每个分区对应各自的字段,例如“logdate=2023-01-01,game=游戏A,region=第一区服”。但是,doris数据表只能使用一级分区,因此,本实施例中采用虚拟分区字段p代表分区名,使虚拟分区字段p可以根据业务需要灵活对应于多个字段,比如p=“2023-01-01|游戏A|第一区服”。换言之,虚拟分区字段的字段值可以为多级字段值,以便灵活适配不同分区方式的计算框架。由此可见,为了解决SparkSQL的分区方式与Doris数据库的分区方式不同所导致的问题,本实施例提出了虚拟分区字段,并且,通过将虚拟分区字段的取值设置为多级字段值,能够使虚拟分区字段准确指向不同分区方式下的目标分区,从而便于进行分区调整操作。另外,分区表在删除数据时,也具有一定的特殊性。例如,分区表删除数据时,必须要指定分区的具体位置。为此,在本实施例中,具体需要通过下述代码where p=“2023-01-01|游戏A|第一区服”来设置分区条件,以定位分区位置。
再如,在流式写入后端数据节点时需要考虑很多细节特性,例如,需要进行读写并发以及数据格式控制等操作。具体实施时,可以采用expect 100的Http调用方式,以显式的维护一个长连接。并且,还可以采用双线程或多线程方式,来提升CPU和I/O利用率。而且,还可以废弃Doris数据库的流式接口中和Http协议相冲突的参数,以避免出错。另外,在流式写入后端数据节点时,还需要注意使用Expect:100-continue先建立会话并在独立线程中进行I/O,从而在占用相同虚拟资源的条件下,增加整体吞吐量。具体原因在于:操作系统在写入数据后,数据通过网络设备到达Doris数据库需要时间,在此期间内可以进行数据格式转换等计算工作,从而避免CPU空闲等待,从而提升利用率。
示例二、
在示例二中,提供了一种微服务实现的数据导入方式,主要通过基于微服务实现的对象关系映射框架实现上文提到的目标数据库服务。在示例二中,对象关系映射框架主要为ORM框架(即一种软件框架,用于桥接面向对象语言及关系型数据库)。示例二与示例一的主要原理类似,在该ORM框架中,也至少需要实现上文提到的信息获取接口、数据操作接口、以及分区操作接口这三类接口。另外,上述三类接口也可以通过对象的形式实现,具体取决于编程需求,本申请不限定具体实现形式。
示例二与示例一的主要区别在于:编程的具体实现细节不同。在ORM框架中,为了避免机械的编写大量重复代码,框架配套提供了代码生成工具。例如,代码生成工具具体可以为插件形式。例如,借助代码生成插件进行元数据读取操作,然后生成代码并格式化。
总之,采用本申请的两个示例中的方案之后,数据导入相关指标稳定,未出现数据、分区错乱及查询结果不一致等问题。同时,代码产出的效率也得到了提升,大幅降低了人工编写代码的工作量,提升了写入效率。
图3示出了本公开又一实施例提供的一种数据操作装置的示意图,该数据操作装置包括:
标识获取模块31,适于获取数据表操作请求中包含的数据库标识以及数据表标识;
配置获取模块32,适于获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;
属性获取模块33,适于从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;
数据操作模块34,适于根据所述数据表属性信息,对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作。
在一种可选的实现方式中,所述数据操作包括:写入操作;所述数据操作模块具体适于:
获取与所述数据表操作请求相对应的待写入数据;其中,所述待写入数据包括:按照第一字段次序排列的多个待写入字段;
根据所述数据表属性信息,确定与所述目标数据表相对应的第二字段次序;
在所述第二字段次序与所述第一字段次序不匹配的情况下,对所述多个待写入字段的字段次序进行调整,将多个调整后的待写入字段写入所述目标数据表。
在一种可选的实现方式中,所述数据操作模块具体适于:
根据所述数据库标识,确定与所述数据库标识相对应的目标数据格式;
获取与所述数据表操作请求相对应的原始操作数据,确定所述原始操作数据的原始数据格式;
对所述原始操作数据执行格式转换处理,得到与所述目标数据格式相匹配的所述待写入数据。
在一种可选的实现方式中,所述数据操作模块还适于:
获取与所述数据表操作请求相对应的分区调整参数,根据所述数据表属性信息确定所述目标数据表的初始分区信息;
根据所述分区调整参数中包含的调整类型以及虚拟分区字段,对所述目标数据表的初始分区信息进行调整,得到所述目标数据表调整后的分区信息;
则所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作具体包括:根据所述目标数据表调整后的分区信息,对所述目标数据表执行数据操作。
在一种可选的实现方式中,所述数据操作模块具体适于:
获取所述虚拟分区字段的字段值,根据所述数据表属性信息中包含的分区配置信息,确定与所述虚拟分区字段的字段值相对应的目标分区;
按照所述调整类型,对所述目标分区进行调整,得到所述调整后的分区信息;其中,所述调整类型包括:尺寸调整类型、和/或数据删除类型。
在一种可选的实现方式中,所述配置获取模块具体适于:
根据所述数据库配置信息,确定与所述数据库标识相对应的集群拓扑结构;
根据所述集群拓扑结构,确定与所述数据库标识相对应的多个前端数据节点以及多个后端数据节点;
从所述多个前端数据节点中确定与所述数据表标识相对应的前端数据节点,以及,从多个后端数据节点中确定与所述数据表标识相对应的后端数据节点。
在一种可选的实现方式中,所述属性获取模块具体适于:
根据所述集群拓扑结构,获取所述数据表标识相对应的前端数据节点的节点地址以及鉴权信息;
根据所述节点地址以及鉴权信息,从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;其中,所述鉴权信息包括:账号信息和/或密码信息。
在一种可选的实现方式中,所述装置还包括:
配置加载模块,适于根据目标数据库的数据库类型,生成所述数据库标识;配置并加载与所述数据库标识相对应的目标数据库服务;
其中,所述获取数据表操作请求中包含的数据库标识以及数据表标识的操作及其后续操作通过所述目标数据库服务执行。
在一种可选的实现方式中,所述目标数据库为分布式关系型列式数据库;
并且,所述目标数据库服务中包括以下接口中的至少一个:信息获取接口、数据操作接口、以及分区操作接口;
则所述获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息的操作通过调用所述信息获取接口实现;
所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作的操作通过调用所述数据操作接口实现;
所述对所述目标数据表的初始分区信息进行调整的操作通过调用所述分区操作接口实现。
在一种可选的实现方式中,所述目标数据库服务包括:基于批处理计算框架实现的插件服务;或者,所述目标数据库服务包括:基于微服务实现的对象关系映射框架服务。
上述各个模块的具体结构和工作原理可参照方法实施例相应部分的描述,此处不再赘述。
本申请又一实施例提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的虚拟场景中的对象加载方法。可执行指令具体可以用于使得处理器执行上述方法实施例中对应的各个操作。
图4示出了根据本公开又一实施例的一种电子设备的结构示意图,本公开具体实施例并不对电子设备的具体实现做限定。
如图4所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)506、存储器(memory)504、以及通信总线508。
其中:
处理器502、通信接口506、以及存储器504通过通信总线508完成相互间的通信。
通信接口506,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述视频图像的检测方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本公开实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU。也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器504,用于存放程序510。存储器504可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行上述视频图像的检测方法实施例中对应的各个操作。
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本公开也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的内容,并且上面对特定语言所做的描述是为了披露本公开的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的装置中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (13)
1.一种数据操作方法,包括:
获取数据表操作请求中包含的数据库标识以及数据表标识;
获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;
从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;
根据所述数据表属性信息,对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作。
2.根据权利要求1所述的方法,其中,所述数据操作包括:写入操作;所述根据所述数据表属性信息,对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作具体包括:
获取与所述数据表操作请求相对应的待写入数据;其中,所述待写入数据包括:按照第一字段次序排列的多个待写入字段;
根据所述数据表属性信息,确定与所述目标数据表相对应的第二字段次序;
在所述第二字段次序与所述第一字段次序不匹配的情况下,对所述多个待写入字段的字段次序进行调整,将多个调整后的待写入字段写入所述目标数据表。
3.根据权利要求2所述的方法,其中,所述获取与所述数据表操作请求相对应的待写入数据具体包括:
根据所述数据库标识,确定与所述数据库标识相对应的目标数据格式;
获取与所述数据表操作请求相对应的原始操作数据,确定所述原始操作数据的原始数据格式;
对所述原始操作数据执行格式转换处理,得到与所述目标数据格式相匹配的所述待写入数据。
4.根据权利要求2或3所述的方法,其中,所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作之前,还包括:
获取与所述数据表操作请求相对应的分区调整参数,根据所述数据表属性信息确定所述目标数据表的初始分区信息;
根据所述分区调整参数中包含的调整类型以及虚拟分区字段,对所述目标数据表的初始分区信息进行调整,得到所述目标数据表调整后的分区信息;
则所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作具体包括:根据所述目标数据表调整后的分区信息,对所述目标数据表执行数据操作。
5.根据权利要求4所述的方法,其中,所述根据所述分区调整参数中包含的调整类型以及虚拟分区字段,对所述目标数据表的初始分区信息进行调整,得到所述目标数据表调整后的分区信息具体包括:
获取所述虚拟分区字段的字段值,根据所述数据表属性信息中包含的分区配置信息,确定与所述虚拟分区字段的字段值相对应的目标分区;
按照所述调整类型,对所述目标分区进行调整,得到所述调整后的分区信息;其中,所述调整类型包括:尺寸调整类型、和/或数据删除类型。
6.根据权利要求1-5任一所述的方法,其中,所述根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点具体包括:
根据所述数据库配置信息,确定与所述数据库标识相对应的集群拓扑结构;
根据所述集群拓扑结构,确定与所述数据库标识相对应的多个前端数据节点以及多个后端数据节点;
从所述多个前端数据节点中确定与所述数据表标识相对应的前端数据节点,以及,从多个后端数据节点中确定与所述数据表标识相对应的后端数据节点。
7.根据权利要求6所述的方法,其中,所述从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息包括:
根据所述集群拓扑结构,获取所述数据表标识相对应的前端数据节点的节点地址以及鉴权信息;
根据所述节点地址以及鉴权信息,从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;其中,所述鉴权信息包括:账号信息和/或密码信息。
8.根据权利要求1-7任一所述的方法,其中,所述方法执行之前,还包括:
根据目标数据库的数据库类型,生成所述数据库标识;
配置并加载与所述数据库标识相对应的目标数据库服务;
其中,所述获取数据表操作请求中包含的数据库标识以及数据表标识的步骤及其后续步骤通过所述目标数据库服务执行。
9.根据权利要求8所述的方法,其中,所述目标数据库为分布式关系型列式数据库;
并且,所述目标数据库服务中包括以下接口中的至少一个:信息获取接口、数据操作接口、以及分区操作接口;
则所述获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息的步骤通过调用所述信息获取接口实现;
所述对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作的步骤通过调用所述数据操作接口实现;
所述对所述目标数据表的初始分区信息进行调整的步骤通过调用所述分区操作接口实现。
10.根据权利要求9所述的方法,其中,所述目标数据库服务包括:基于批处理计算框架实现的插件服务;或者,所述目标数据库服务包括:基于微服务实现的对象关系映射框架服务。
11.一种数据操作装置,所述装置包括:
标识获取模块,适于获取数据表操作请求中包含的数据库标识以及数据表标识;
配置获取模块,适于获取与所述数据库标识相对应的数据库配置信息,根据所述数据库配置信息确定与所述数据表标识相对应的前端数据节点以及后端数据节点;
属性获取模块,适于从所述前端数据节点中获取与所述数据表标识相对应的数据表属性信息;
数据操作模块,适于根据所述数据表属性信息,对所述后端数据节点中存储的与所述数据表标识相对应的目标数据表执行数据操作。
12.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-10任一项所述的数据操作方法。
13.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-10中任一项所述的数据操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310656283.4A CN116644081A (zh) | 2023-06-05 | 2023-06-05 | 数据操作方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310656283.4A CN116644081A (zh) | 2023-06-05 | 2023-06-05 | 数据操作方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116644081A true CN116644081A (zh) | 2023-08-25 |
Family
ID=87624472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310656283.4A Pending CN116644081A (zh) | 2023-06-05 | 2023-06-05 | 数据操作方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116644081A (zh) |
-
2023
- 2023-06-05 CN CN202310656283.4A patent/CN116644081A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108519967B (zh) | 图表可视化方法、装置、终端和存储介质 | |
US5327559A (en) | Remote and batch processing in an object oriented programming system | |
CN109656963B (zh) | 元数据获取方法、装置、设备及计算机可读存储介质 | |
US8645502B2 (en) | Dynamic interface to read database through remote procedure call | |
CN103064960A (zh) | 数据库查询方法及设备 | |
US20180307692A1 (en) | Software application interface for mediating access to services of a centralized data store | |
CN108427677B (zh) | 一种对象访问方法、装置及电子设备 | |
WO2023231665A1 (zh) | 分布式事务处理方法、系统、设备及可读存储介质 | |
CN107423037B (zh) | 应用程序接口定位方法及设备 | |
CN113094387A (zh) | 一种数据查询方法、装置、电子设备及机器可读存储介质 | |
CN111723161A (zh) | 一种数据处理方法、装置及设备 | |
CN112860730A (zh) | Sql语句的处理方法、装置、电子设备及可读存储介质 | |
CN105843899B (zh) | 一种可简化编程的大数据自动化解析方法及系统 | |
US9904702B2 (en) | Dynamic generation of database queries in query builders | |
CN113254519A (zh) | 多源异构数据库的访问方法、装置、设备和存储介质 | |
WO2021013057A1 (zh) | 数据管理方法、装置、设备与计算机可读存储介质 | |
US20080162631A1 (en) | Enabling Client Systems to Discover Services Accessible by Remote Procedure Calls (RPC) on Server Systems | |
CN112579676B (zh) | 异构系统间的数据处理方法、装置、存储介质和设备 | |
US9037542B2 (en) | Reducing programming complexity in client applications when interfacing with database servers operating with different programming interfaces | |
CN112434037A (zh) | 数据处理方法、处理装置、数据处理设备和存储介质 | |
CN114675982A (zh) | 一种业务集成系统的数据获取通用方法及系统 | |
CN109951376B (zh) | 一种即时通讯软件信息采集方法、装置、系统及存储介质 | |
CN113297305A (zh) | 会话状态处理方法、装置、设备和存储介质 | |
CN110928895B (zh) | 一种数据查询、数据表建立方法、装置及设备 | |
CN112491943A (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 |