CN117539962B - 数据处理方法、装置、计算机设备和存储介质 - Google Patents

数据处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN117539962B
CN117539962B CN202410028878.XA CN202410028878A CN117539962B CN 117539962 B CN117539962 B CN 117539962B CN 202410028878 A CN202410028878 A CN 202410028878A CN 117539962 B CN117539962 B CN 117539962B
Authority
CN
China
Prior art keywords
data
storage node
partition
request
information
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
CN202410028878.XA
Other languages
English (en)
Other versions
CN117539962A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202410028878.XA priority Critical patent/CN117539962B/zh
Publication of CN117539962A publication Critical patent/CN117539962A/zh
Application granted granted Critical
Publication of CN117539962B publication Critical patent/CN117539962B/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
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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
    • 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/2282Tablespace storage structures; Management thereof
    • 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/23Updating
    • G06F16/235Update request formulation
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2445Data retrieval commands; View definitions

Landscapes

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

Abstract

本申请涉及一种数据处理方法、装置、计算机设备、存储介质和计算机程序产品,可应用于数据库。方法包括:接收数据操作请求,数据操作请求可以为数据查询请求,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息;从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;将数据操作请求发送至目标存储节点进行处理。提升了数据处理效率。

Description

数据处理方法、装置、计算机设备和存储介质
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着互联网技术的发展,各种各样的互联网应用涌现,随着业务发展互联网应用的开发方对存储服务的需求也在剧增。
传统技术中,存储服务提供方只能为存储服务需求方配置单一的数据分区策略,这种方式无法满足存储服务需求方灵活的分区策略需求,数据库接收到数据操作请求后数据处理效率也不高。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升数据处理效率的数据处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种数据处理方法。该方法包括:
接收数据操作请求,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息;
从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;
基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;
将数据操作请求发送至目标存储节点进行处理。
第二方面,本申请还提供了一种数据处理装置。该装置包括:
接收模块,用于接收数据操作请求,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息;
获取模块,用于从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;
确定模块,用于基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;
发送模块,用于将数据操作请求发送至目标存储节点进行处理。
在一些实施例中,接收模块,还用于接收数据定义请求,对数据定义请求进行解析,得到分区配置信息,分区配置信息包括主分区字段、至少一个主分区字段值各自对应的次分区字段以及至少一个主分区字段值各自对应的存储节点群组信息;将分区配置信息发送至元数据节点进行存储,并对数据定义请求进行调整,生成数据表创建请求,将数据表创建请求发送至分布式存储系统中的各存储节点,以指示各存储节点基于数据表创建请求携带的信息创建数据表。
在一些实施例中,接收模块,还用于在数据定义请求中确定出数据表创建语句和分区配置语句,将数据定义请求中的分区配置语句删除,得到数据表创建请求。
在一些实施例中,数据操作请求为数据插入请求;接收模块具体用于将数据操作请求携带的数据作为待操作数据;发送模块具体用于将数据插入请求发送至目标存储节点,以指示目标存储节点在基于数据表创建请求携带的信息创建的数据表中,插入待操作数据。
在一些实施例中,数据操作请求为数据搬移请求,接收模块具体用于向源存储节点发送数据读取请求,以指示源存储节点对数据读取请求进行解析,得到源数据表标识,在源数据表标识对应的源数据表中读取数据,并将读取到的数据返回;将源存储节点返回的数据作为待操作数据;发送模块具体用于将数据搬移请求发送至目标存储节点,以指示目标存储节点对数据搬移请求进行解析,得到源数据表标识,将源数据表标识对应的源数据表中的数据,搬移至基于数据表创建请求携带的信息创建的数据表中。
在一些实施例中,数据操作请求为数据查询请求;接收模块具体用于将数据操作请求携带的数据作为待操作数据;发送模块具体用于将数据查询请求发送至目标存储节点,以指示目标存储节点将待操作数据作为关键索引信息,在基于数据表创建请求携带的信息创建的数据表中,查找关键索引信息对应的存储数据,并向终端返回存储数据。
在一些实施例中,接收模块具体用于从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,将匹配成功的字段对应的值作为主分区索引信息。
在一些实施例中,接收模块具体用于基于主分区索引信息生成分区信息获取请求,将分区信息获取请求发送至元数据节点,以指示元数据节点将分区信息获取请求中的主分区索引信息和预先存储的至少一个主分区字段值进行匹配,将匹配成功的主分区字段值对应的次分区字段和存储节点群组信息返回;将元数据节点返回的次分区字段作为主分区索引信息对应的次分区字段,将元数据节点返回的存储节点群组信息,作为主分区索引信息对应的存储节点群组信息。
在一些实施例中,获取模块具体用于对次分区索引信息进行哈希运算,得到次分区索引信息对应的哈希运算结果;基于存储节点群组信息包含的存储节点的数量,对哈希运算结果进行取模运算,得到次分区索引信息对应的节点映射参数。
在一些实施例中,确定模块还用于获取存储节点群组信息包含的存储节点的数量,基于数量确定存储节点群组信息包含的各个存储节点的序号;将存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数,基于存储节点群组信息包含的各个存储节点各自对应的映射参数,构建节点映射关系。
在一些实施例中,数据操作请求为数据查询请求,发送模块还用于从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,在均匹配失败的情况下,向分布式存储系统中的各存储节点群发数据查询请求。
在一些实施例中,数据操作请求为数据查询请求,发送模块还用于将次分区字段分别和待操作数据中各个字段进行匹配,在均匹配失败的情况下,向存储节点群组信息包含的各个存储节点群发数据查询请求。
第三方面,本申请还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
接收数据操作请求,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息;
从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;
基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;
将数据操作请求发送至目标存储节点进行处理。
第四方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收数据操作请求,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息;
从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;
基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;
将数据操作请求发送至目标存储节点进行处理。
第五方面,本申请还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收数据操作请求,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息;
从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;
基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;
将数据操作请求发送至目标存储节点进行处理。
上述数据处理方法、装置、计算机设备、存储介质和计算机程序产品,接收到数据操作请求后,首先获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,进一步从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息,从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;将数据操作请求发送至目标存储节点进行处理。打破了当前分布式数据库仅支持单一分区策略的限制,支持多种分区策略的组合,实现了多级数据分区,在确定主分区索引信息对应的存储节点群组信息后,可进一步基于次分区索引信息从存储节点群组信息包含的存储节点中,确定出用于处理上述数据操作请求的存储节点,进而将数据操作请求发送给存储节点,和将数据操作请求群发给存储节点群组信息中每个存储节点进行处理的方式相比,极大提升了数据处理效率,减小了存储资源的浪费。
附图说明
图1为一个实施例中数据处理方法的应用环境图;
图2为一个实施例中数据处理方法的流程示意图;
图3为一个实施例中数据定义方法的流程示意图;
图4为一个实施例中接收到数据插入请求后的流程示意图;
图5为一个实施例中接收到数据搬移请求后的流程示意图;
图6为一个实施例中接收到数据查询请求后的流程示意图;
图7为一个实施例中哈希环的示意图;
图8为另一个实施例中数据处理方法的流程示意图;
图9为一个实施例中数据处理方法的场景示例图;
图10为又一个实施例中数据处理方法的流程示意图;
图11为一个实施例中数据处理装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与分布式存储系统104进行通信。终端102向分布式存储系统104发送数据操作请求,分布式存储系统104接收到数据操作请求后,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息;从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;在预先设置的节点映射关系中查找节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;将数据操作请求发送至目标存储节点进行处理。目标存储节点得到处理结果后,可将处理结果返回给终端102。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。分布式存储系统104也可称为服务器,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例提供的数据处理方法,可应用云技术(Cloud technology)中的数据库(Database),云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible Markup Language,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(Structured Query Language)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
在一些实施例中,如图2所示,提供了一种数据处理方法,以该方法应用于图1中的分布式存储系统为例进行说明,包括以下步骤:
步骤202,接收数据操作请求,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息。
其中,分布式存储系统中包括计算引擎和存储节点集群,存储节点集群包括多个存储节点,本申请实施例提供的数据处理方法具体可由分布式存储系统中的计算引擎来执行。
其中,数据操作请求可以为客户端触发的对相应的数据进行特定操作的请求,示例性的,数据操作请求可以为数据插入请求、数据查询请求、数据搬移请求等,数据操作请求对应的待操作数据可以为数据操作请求所请求操作的数据。
其中,待操作数据包括多个字段的值,计算引擎可在分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,将匹配成功的字段的值作为主分区索引信息,进一步再在分区配置信息中查找该主分区索引信息对应的次分区字段和存储节点群组信息。
在待操作数据中所有字段与主分区字段均匹配失败的情况下,计算引擎可将数据操作请求群发给存储节点集群中的每个存储节点进行处理;在分区配置信息中无法查找到主分区索引信息对应的次分区字段和存储节点群组信息的情况下,计算引擎也可将数据操作请求群发给存储节点集群中的每个存储节点进行处理。
其中,分区配置信息可以为专门为存储资源使用者配置存储资源的管理人员预先通过相应的客户端配置的,分区配置信息可以包括主分区字段、至少一个主分区字段值、每个主分区字段值对应的次分区字段、每个主分区字段值对应的存储节点群组信息等。
其中,计算引擎可以将分区配置信息存储在本地,也可以将分区配置信息发送至元数据节点进行存储,本申请实施例中的主分区也可以称为一级分区,次分区可以包括二级分区、三级分区、四级分区、……等、本申请实施例以次分区包括二级分区为例进行说明。
其中,在分区配置信息由元数据节点进行存储的情况下,计算引擎接收到数据操作请求后,可获取数据操作请求对应的待操作数据,将待操作数据发送给元数据节点,元数据节点将待操作数据中的多个字段分别和主分区字段进行匹配,将匹配成功的字段的值作为主分区索引信息,进一步再在分区配置信息中查找该主分区索引信息对应的次分区字段和存储节点群组信息,将上述主分区索引信息、次分区字段和存储节点群组信息返回给计算引擎。
对象可在终端上触发数据操作请求,终端上安装有存储资源使用者开发的客户端,对象具体可在该客户端上触发数据操作请求,下面对数据操作请求为数据插入请求、数据查询请求或者数据搬移请求时,如何获取次分区字段和存储节点群组信息的过程进行说明:
在数据操作请求为数据插入请求的情况下,数据插入请求中携带有多个字段的值,可将数据插入请求携带的数据作为待操作数据,计算引擎可在分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,若均匹配失败,则将数据插入请求群发给存储节点集群中的每个存储节点;若其中一个字段匹配成功,则将该字段的值作为主分区索引信息,进一步再在分区配置信息中,查找是否存在该主分区索引信息对应的次分区字段和存储节点群组信息,若存在,说明上述管理人员预先为该主分区索引信息配置了次分区字段和存储节点群组信息;若不存在,说明管理人员未为该主分区索引信息配置次分区字段和存储节点群组信息,则将数据插入请求群发给存储节点集群中的每个存储节点。
在数据操作请求为数据搬移请求的情况下,数据搬移请求中携带有源数据表标识,计算引擎可基于源数据表标识生成数据读取请求,将存储节点集群中的所有存储节点均作为源存储节点,向源存储节点发送数据读取请求,源存储节点对接收到的数据读取请求进行解析,得到源数据表标识,在源数据表标识对应的源数据表中读取数据,得到多个字段的值,源存储节点将读取到的多个字段的值返回给计算引擎。计算引擎将源存储节点返回的数据作为待操作数据,计算引擎可在分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,若均匹配失败,则将数据搬移请求群发给存储节点集群中的每个存储节点;若其中一个字段匹配成功,则将该字段的值作为主分区索引信息,进一步再在分区配置信息中,查找是否存在该主分区索引信息对应的次分区字段和存储节点群组信息,若存在,说明上述管理人员预先为该主分区索引信息配置了次分区字段和存储节点群组信息;若不存在,说明管理人员未为该主分区索引信息配置次分区字段和存储节点群组信息,则将数据搬移请求群发给存储节点集群中的每个存储节点。
在数据操作请求为数据查询请求的情况下,数据查询请求中携带有多个字段的值,可将数据查询请求携带的数据作为待操作数据,计算引擎可在分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,若均匹配失败,则将数据查询请求群发给存储节点集群中的每个存储节点;若其中一个字段匹配成功,则将该字段的值作为主分区索引信息,进而在对象预先配置的分区配置信息中,查找是否存在主分区索引信息对应的次分区字段和存储节点群组信息,若存在,说明上述管理人员预先为该主分区索引信息配置了次分区字段和存储节点群组信息;若不存在,说明管理人员未为该主分区索引信息配置次分区字段和存储节点群组信息,则将数据查询请求群发给存储节点集群中的每个存储节点。
步骤204,从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数。
其中,计算引擎在分区配置信息中查找到主分区索引信息对应的次分区字段和存储节点群组信息后,从待操作数据中查找次分区字段的值,将查找到的值作为次分区索引信息。
其中,计算引擎在得到次分区索引信息后,可对次分区索引信息进行哈希运算,得到哈希运算结果,基于哈希运算结果计算得到节点映射参数。
在具体实现中,在得到哈希运算结果后,计算引擎可使用哈希运算结果对预设值进行取模运算,将取模运算结果作为节点映射参数。示例性的,预设值可以为存储节点群组信息包含的存储节点的个数,也可以为一致性哈希算法中的取模数值,一致性哈希算法中的取模数值可以为
步骤206,基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系。
其中,计算引擎可获取存储节点群组信息中各个存储节点各自对应的映射参数,基于各个存储节点各自对应的映射参数,建立存储节点和映射参数之间的对应关系,得到节点映射关系。
在一种可能的实现方式中,计算引擎可获取存储节点群组信息包含的存储节点的个数,基于该个数确定存储节点群组信息中各存储节点的映射参数。
示例性的,存储节点群组信息包含的存储节点的个数的3,可将0,1,2分别作为这3个存储节点的映射参数。
在一种可能的实现方式中,计算引擎可获取存储节点群组信息包含的各个存储节点的标识,针对存储节点群组信息中的每个存储节点,对该存储节点的标识进行哈希运算,得到该存储节点对应的哈希运算结果,基于该存储节点对应的哈希运算结果计算得到该存储节点对应的映射参数。
其中,存储节点的标识可以为存储节点的名称、序号、互联网协议地址(InternetProtocol Address,简称IP地址)等,本申请实施例对此不做限定。
在具体实现中,在得到存储节点对应的哈希运算结果后,计算引擎可使用存储节点对应的哈希运算结果对预设值进行取模运算,将取模运算结果作为存储节点对应的映射参数。示例性的,这里的预设值也可以为一致性哈希算法中的取模数值,一致性哈希算法中的取模数值可以为
其中,计算引擎在获取到次分区索引信息对应的节点映射参数后,可基于上述节点映射关系确定该节点映射参数对应的目标存储节点。
在具体实现中,在节点映射参数为对存储节点群组信息包含的存储节点的个数进行取模运算得到;且,节点映射关系中的映射参数是基于存储节点群组信息包含的存储节点的个数得到的情况下,计算引擎可直接将节点映射关系中的映射参数分别和分区索引信息对应的节点映射参数进行匹配,将匹配成功的映射参数对应的存储节点,作为目标存储节点。
在具体实现中,在节点映射参数为对一致性哈希算法中的取模数值进行取模运算得到;且,节点映射关系中的映射参数也是对一致性哈希算法中的取模数值进行取模运算得到的情况下,计算引擎可基于节点映射关系中的映射参数,将存储节点群组信息中的各存储节点标记在哈希环上,同时将次分区索引信息对应的节点映射参数也标记在哈希环上,按照顺时针方向在哈希环上搜索,将率先搜索到的映射参数对应的存储节点,作为目标存储节点。
步骤208,将数据操作请求发送至目标存储节点进行处理。
其中,计算引擎在确定目标存储节点后,可将数据操作请求发送给目标存储节点,由目标存储节点对相应的数据进行特定操作。
在具体实现中,在数据操作请求为数据插入请求的情况下,数据插入请求中携带有多个字段的值,可将数据插入请求携带的数据作为待操作数据,目标存储节点可将待操作数据插入预先创建的数据表中。在数据操作请求为数据搬移请求的情况下,数据搬移请求携带有源数据表标识,目标存储节点可从源存储节点中搬移该源数据表标识对应的源数据表中的数据。在数据操作请求为数据查询请求的情况下,数据查询请求中携带有多个字段的值,目标存储节点可基于多个字段的值在预先创建的数据表中查询对应的存储数据。
上述实施例中,接收到数据操作请求后,首先获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,进一步从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息,从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;将数据操作请求发送至目标存储节点进行处理。打破了当前分布式数据库仅支持单一分区策略的限制,支持多种分区策略的组合,实现了多级数据分区,在确定主分区索引信息对应的存储节点群组信息后,可进一步基于次分区索引信息从存储节点群组信息包含的存储节点中,确定出用于处理上述数据操作请求的存储节点,进而将数据操作请求发送给存储节点,和将数据操作请求群发给存储节点群组信息中每个存储节点进行处理的方式相比,极大提升了数据处理效率,减小了存储资源的浪费。
在一些实施例中,本申请实施例提供的数据处理方法,还包括:接收数据定义请求,对数据定义请求进行解析,得到分区配置信息,分区配置信息包括主分区字段、至少一个主分区字段值各自对应的次分区字段以及至少一个主分区字段值各自对应的存储节点群组信息;将分区配置信息发送至元数据节点进行存储,并对数据定义请求进行调整,生成数据表创建请求,将数据表创建请求发送至分布式存储系统中的各存储节点,以指示各存储节点基于数据表创建请求携带的信息创建数据表。
其中,专门为存储资源使用者配置存储资源的管理人员可在相应的客户端上配置分区配置信息,还可在客户端上配置表创建信息,客户端可基于分区配置信息和表创建信息,生成数据定义请求,并将数据定义请求发给计算引擎。
在具体实现中,客户端可基于表创建信息,生成数据表创建语句,基于分区配置信息生成分区配置语句,对数据表创建语句和分区配置语句进行组合,得到数据定义请求。
其中,计算引擎接收到数据定义请求后,对数据定义请求进行解析,得到数据表创建语句和分区配置语句,进一步对分区配置语句进行解析,得到分区配置信息,分区配置信息包括主分区字段、至少一个主分区字段值、每个主分区字段值对应的次分区字段、每个主分区字段值对应的存储节点群组信息等。计算引擎得到分区配置信息后,可将分区配置信息发送给元数据节点,元数据节点接收到分区配置信息,对分区配置信息进行存储。示例性的,元数据节点可以为开源的分布式协调器ZooKeeper。
在具体实现中,计算引擎可基于分区配置信息生成数据写入请求,将数据写入请求发送给元数据节点,元数据节点接收到数据写入请求后,对数据写入请求进行解析,得到分区配置信息,对分区配置信息进行存储,存储完成后,向计算引擎返回写入成功消息。
其中,计算引擎可对数据定义请求进行调整,生成分布式存储系统中的存储节点可以识别的数据表创建请求,并将数据表创建请求发送至分布式存储系统中的各存储节点,各存储节点接收到数据表创建请求后,基于数据表创建请求携带的信息创建数据表,后续接收到数据操作请求后,在该数据表中执行对应的操作。
其中,计算引擎可以在接收到元数据节点返回的写入成功消息后,再将数据表创建请求发送至分布式存储系统中的各存储节点。
参见图3所示,计算引擎接收到数据定义请求后,执行如下步骤:1、对数据定义请求进行解析,得到数据表创建语句和分区配置语句,对分区配置语句进行解析,得到分区配置信息,基于分区配置信息生成数据写入请求,将数据写入请求发送给元数据节点。2、元数据节点对数据写入请求进行解析,得到分区配置信息,对分区配置信息进行存储,存储完成后,向计算引擎返回写入成功消息。3、计算引擎对数据定义请求进行调整,生成分布式存储系统中的存储节点可以识别的数据表创建请求。4、将数据表创建请求发送至分布式存储系统中的各存储节点,图3中以分布式存储系统包括SET1、SET2、SET3、SET4四个存储节点示意。5、各存储节点接收到数据表创建请求后,基于数据表创建请求携带的信息创建数据表,并向计算引擎返回创建成功消息。
上述实施例中,计算引擎在接收到数据定义请求后,首先对数据定义请求进行解析,得到分区配置信息,将分区配置信息发送至元数据节点进行存储,后续计算引擎接收到数据操作请求后,将对应的待操作数据发送给元数据节点,由元数据节点来确定主分区索引信息、次分区字段和存储节点群组信息,并将这些数据返回给计算引擎。另外,计算引擎可对数据定义请求进行调整,生成分布式存储系统中的存储节点可以识别的数据表创建请求,并将数据表创建请求发送至分布式存储系统中的各存储节点,这样仅仅需要对计算引擎进行升级,增加解析分区配置语句的能力即可,无需对存储节点进行能力升级,提升了本申请实施例提供的数据处理方法的兼容性。
在一些实施例中,对数据定义请求进行调整,生成数据表创建请求,包括:在数据定义请求中确定出数据表创建语句和分区配置语句,将数据定义请求中的分区配置语句删除,得到数据表创建请求。
如前述实施例描述,专门为存储资源使用者配置存储资源的管理人员可在相应的客户端上配置分区配置信息,还可在客户端上配置表创建信息,客户端可基于表创建信息,生成数据表创建语句,基于分区配置信息生成分区配置语句,对数据表创建语句和分区配置语句进行组合,得到数据定义请求,并将数据定义请求发给计算引擎。计算引擎接收到数据定义请求后,可对数据定义请求进行解析,以确定出数据表创建语句和分区配置语句。
其中,计算引擎在确定出数据表创建语句和分区配置语句后,一方面,可进一步对分区配置语句进行解析,得到分区配置信息,并将分区配置信息发送给元数据节点,元数据节点接收到分区配置信息,对分区配置信息进行存储。另一方面,可将数据定义请求中的分区配置语句删除,从而得到数据表创建请求。
其中,计算引擎在得到数据表创建请求后,将数据表创建请求发送至分布式存储系统中的各存储节点,各存储节点接收到数据表创建请求后,对数据表创建请求进行解析,得到表创建信息,基于该表创建信息创建数据表,后续接收到数据操作请求后,在该数据表中执行对应的操作。
上述实施例中,计算引擎接收到数据定义请求后,在数据定义请求中确定出数据表创建语句和分区配置语句,将数据定义请求中的分区配置语句删除,从而得到分布式存储系统中的存储节点可以识别的数据表创建请求,并将数据表创建请求发送至分布式存储系统中的各存储节点,这样仅仅需要对计算引擎进行升级,增加解析分区配置语句的能力即可,无需对存储节点进行能力升级,提升了本申请实施例提供的数据处理方法的兼容性。
在一些实施例中,数据操作请求为数据插入请求;获取数据操作请求对应的待操作数据,包括:将数据操作请求携带的数据作为待操作数据;将数据操作请求发送至目标存储节点进行处理,包括:将数据插入请求发送至目标存储节点,以指示目标存储节点在基于数据表创建请求携带的信息创建的数据表中,插入待操作数据。
其中,在数据操作请求为数据插入请求的情况下,数据插入请求中携带有多个字段的值,可将数据插入请求携带的数据作为待操作数据,计算引擎可在分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,若均匹配失败,则将数据插入请求群发给存储节点集群中的每个存储节点;若其中一个字段匹配成功,则将该字段的值作为主分区索引信息,进一步再在分区配置信息中,查找是否存在该主分区索引信息对应的次分区字段和存储节点群组信息,若存在,从待操作数据查找次分区字段的值,将查找到的值作为次分区索引信息,获取次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,将数据插入请求发送至目标存储节点,参见前述实施例的描述,分布式存储系统中各存储节点均基于表创建信息创建了数据表,此处目标存储节点可在该数据表中插入上述待操作数据;若不存在,说明管理人员未为该主分区索引信息配置次分区字段和存储节点群组信息,则将数据插入请求群发给存储节点集群中的每个存储节点。
参见图4所示,在数据操作请求为数据插入请求的情况下,各主体之间可进行如下交互:1、计算引擎本地存储有主分区字段的情况下,计算引擎接收到数据操作请求后,获取数据操作请求对应的待操作数据,将待操作数据中的多个字段分别和主分区字段进行匹配,将匹配成功的字段的值作为主分区索引信息,基于主分区索引信息生成分区信息获取请求,将分区信息获取请求发送至元数据节点。2、元数据节点接收到分区信息获取请求后,对分区信息获取请求进行解析得到主分区索引信息,将主分区索引信息分别和分区配置信息中至少一个主分区字段值进行匹配,若和某个主分区字段值匹配成功,则进一步从分区配置信息中获取该主分区字段值对应的次分区字段和存储节点群组信息,并将该次分区字段和存储节点群组信息返回给计算引擎。3、计算引擎从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数,基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点。4、将数据插入请求发送至目标存储节点。
上述实施例中,提供了数据操作请求为数据插入请求的情况下,将数据插入请求携带的数据作为待操作数据,从待操作数据中确定主分区索引信息,进一步从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息,从待操作数据查找次分区字段对应的次分区索引信息,最后基于次分区索引信息确定用于处理上述数据插入请求的存储节点,进而将数据插入请求发送给该存储节点,和将数据插入请求群发给存储节点群组信息中每个存储节点进行处理的方式相比,极大提升了数据插入效率,减小了存储资源的浪费。
在一些实施例中,数据操作请求为数据搬移请求,获取数据操作请求对应的待操作数据,包括:向源存储节点发送数据读取请求,以指示源存储节点对数据读取请求进行解析,得到源数据表标识,在源数据表标识对应的源数据表中读取数据,并将读取到的数据返回;将源存储节点返回的数据作为待操作数据;将数据操作请求发送至目标存储节点进行处理,包括:将数据搬移请求发送至目标存储节点进行处理。
其中,在数据操作请求为数据搬移请求的情况下,数据搬移请求中携带有源数据表标识,计算引擎可基于源数据表标识生成数据读取请求,将存储节点集群中的所有存储节点均作为源存储节点,向源存储节点发送数据读取请求,源存储节点对接收到的数据读取请求进行解析,得到源数据表标识,在源数据表标识对应的源数据表中读取数据,源数据表标识对应的源数据表可能包含多行数据,每行数据都包含多个字段的值,源存储节点可逐行读取,将读取到每行数据依次返回给计算引擎。
计算引擎可将源存储节点每次返回的数据作为待操作数据,计算引擎可在分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,若均匹配失败,则将数据搬移请求群发给存储节点集群中的每个存储节点;若其中一个字段匹配成功,则将该字段的值作为主分区索引信息,进一步再在分区配置信息中,查找是否存在该主分区索引信息对应的次分区字段和存储节点群组信息,若存在,从待操作数据查找次分区字段的值,将查找到的值作为次分区索引信息,获取次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,将数据插入请求发送至目标存储节点,参见前述实施例的描述,分布式存储系统中各存储节点均基于表创建信息创建了数据表,此处目标存储节点可对数据搬移请求进行解析,得到源数据表标识,将源数据表标识对应的源数据表中的数据,搬移至该数据表中;若不存在,说明管理人员未为该主分区索引信息配置次分区字段和存储节点群组信息,则将数据搬移请求群发给存储节点集群中的每个存储节点。
参见图5所示,在数据操作请求为数据搬移请求的情况下,各主体之间可进行如下交互:1、计算引擎基于源数据表标识生成数据读取请求,向源存储节点发送数据读取请求。2、源存储节点对接收到的数据读取请求进行解析,得到源数据表标识,在源数据表标识对应的源数据表中读取数据,将读取到每行数据依次返回给计算引擎。3、计算引擎将源存储节点返回的数据作为待操作数据,将待操作数据中的多个字段分别和主分区字段进行匹配,将匹配成功的字段的值作为主分区索引信息,基于主分区索引信息生成分区信息获取请求,将分区信息获取请求发送至元数据节点。4、元数据节点接收到分区信息获取请求后,对分区信息获取请求进行解析得到主分区索引信息,将主分区索引信息分别和分区配置信息中至少一个主分区字段值进行匹配,若和某个主分区字段值匹配成功,则进一步从分区配置信息中获取该主分区字段值对应的次分区字段和存储节点群组信息,并将该次分区字段和存储节点群组信息返回给计算引擎。5、计算引擎从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数,基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点。6、将数据搬移请求发送至目标存储节点。
上述实施例中,提供了数据操作请求为数据搬移请求的情况下,计算引擎可向源存储节点发送数据读取请求,以指示源存储节点对数据读取请求进行解析,得到源数据表标识,在源数据表标识对应的源数据表中读取数据,并将读取到的数据返回,计算引擎将源存储节点返回的数据作为待操作数据,从待操作数据中确定主分区索引信息,进一步从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息,从待操作数据查找次分区字段对应的次分区索引信息,最后基于次分区索引信息确定用于处理上述数据搬移请求的存储节点,进而将数据搬移请求发送给该存储节点,和将数据搬移请求群发给存储节点群组信息中每个存储节点进行处理的方式相比,极大提升了数据搬移效率,减小了存储资源的浪费。
在一些实施例中,数据操作请求为数据查询请求;获取数据操作请求对应的待操作数据,包括:将数据操作请求携带的数据作为待操作数据;将数据操作请求发送至目标存储节点进行处理,包括:将数据查询请求发送至目标存储节点,以指示目标存储节点将待操作数据作为关键索引信息,在基于数据表创建请求携带的信息创建的数据表中,查找关键索引信息对应的存储数据,并向终端返回存储数据。
其中,在数据操作请求为数据查询请求的情况下,数据查询请求中携带有多个字段的值,可将数据查询请求携带的数据作为待操作数据,计算引擎可在分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,若均匹配失败,则将数据查询请求群发给存储节点集群中的每个存储节点;若其中一个字段匹配成功,则将该字段的值作为主分区索引信息,进一步再在分区配置信息中,查找是否存在该主分区索引信息对应的次分区字段和存储节点群组信息,若存在,从待操作数据查找次分区字段的值,将查找到的值作为次分区索引信息,获取次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,将数据插入请求发送至目标存储节点,参见前述实施例的描述,分布式存储系统中各存储节点均基于表创建信息创建了数据表,此处目标存储节点可将待操作数据作为关键索引信息,在该数据表中查找关键索引信息对应的存储数据,并向终端返回存储数据;若不存在,说明管理人员未为该主分区索引信息配置次分区字段和存储节点群组信息,则将数据插入请求群发给存储节点集群中的每个存储节点。
参见图6所示,在数据操作请求为数据查询请求的情况下,各主体之间可进行如下交互:1、计算引擎本地存储有主分区字段的情况下,计算引擎接收到数据操作请求后,获取数据操作请求对应的待操作数据,将待操作数据中的多个字段分别和主分区字段进行匹配,将匹配成功的字段的值作为主分区索引信息,基于主分区索引信息生成分区信息获取请求,将分区信息获取请求发送至元数据节点;在待操作数据中的多个字段和主分区字段均匹配失败的情况下,执行4.1,即,将数据查询请求发送给分布式存储系统中每个存储节点。2、元数据节点接收到分区信息获取请求后,对分区信息获取请求进行解析得到主分区索引信息,将主分区索引信息分别和分区配置信息中至少一个主分区字段值进行匹配,若和某个主分区字段值匹配成功,则进一步从分区配置信息中获取该主分区字段值对应的次分区字段和存储节点群组信息,若只能查找到存储节点群组信息,则只将存储节点群组信息返回给计算引擎,若次分区字段和存储节点群组信息都能查到,则将次分区字段和存储节点群组信息均返回给计算引擎。3、计算引擎在只接收到存储节点群组信息的情况下,执行4.2,即,将数据查询请求发送给存储节点群组信息中的每个存储节点。计算引擎同时接收到次分区字段和存储节点群组信息的情况下,从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数,基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,并执行4.3,即,将数据查询请求发送至目标存储节点。5、接收到数据查询请求的存储节点返回查询结果。
上述实施例中,提供了数据操作请求为数据查询请求的情况下,将数据操作请求携带的数据作为待操作数据,从待操作数据中确定主分区索引信息,进一步从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息,从待操作数据查找次分区字段对应的次分区索引信息,最后基于次分区索引信息确定用于处理上述数据查询请求的存储节点,进而将数据查询请求发送给该存储节点,和将数据查询请求群发给存储节点群组信息中每个存储节点进行处理的方式相比,极大提升了数据查询效率,减小了存储资源的浪费。
在一些实施例中,从待操作数据中确定主分区索引信息,包括:从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,将匹配成功的字段对应的值作为主分区索引信息。
如前述实施例描述,管理人员预先可通过相应的客户端配置分区配置信息,计算引擎可以将分区配置信息存储在本地,也可以将分区配置信息发送至元数据节点进行存储。
其中,在分区配置信息存储于计算引擎本地的情况下,计算引擎可直接从本地读取分区配置信息,从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,将匹配成功的字段对应的值作为主分区索引信息。
其中,在分区配置信息存储于元数据节点的情况下,计算引擎接收到数据操作请求后,可获取数据操作请求对应的待操作数据,将待操作数据发送给元数据节点,元数据节点从分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,将匹配成功的字段的值作为主分区索引信息,再在分区配置信息中查找该主分区索引信息对应的次分区字段和存储节点群组信息,将上述主分区索引信息、次分区字段和存储节点群组信息返回给计算引擎。
上述实施例中,在分区配置信息存储于计算引擎本地的情况下,计算引擎可直接查找主分区字段,进而确定主分区索引信息;在分区配置信息存储于元数据节点的情况下,计算引擎可通过元数据节点查找主分区字段以及确定主分区索引信息,主分区索引信息后续可用于确定存储节点群组信息和次分区索引信息,次分区索引信息后续可用于定位用于处理数据操作请求的存储节点,极大提升了数据处理效率。
在一些实施例中,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息,包括:基于主分区索引信息对应的主分区字段和主分区索引信息,生成分区信息获取请求,将分区信息获取请求发送至元数据节点,以指示元数据节点将分区信息获取请求中的主分区字段,和预先存储的主分区字段进行匹配,在匹配成功的情况下,将分区信息获取请求中的主分区索引信息和预先存储的至少一个主分区字段值进行匹配,将匹配成功的主分区字段值对应的次分区字段和存储节点群组信息返回;将元数据节点返回的次分区字段作为主分区索引信息对应的次分区字段,将元数据节点返回的存储节点群组信息,作为主分区索引信息对应的存储节点群组信息。
其中,管理人员预先可通过相应的客户端配置分区配置信息,计算引擎可以将分区配置信息存储在本地;也可以将分区配置信息发送至元数据节点进行存储;也可以在本地和元数据节点处都存储一份分区配置信息;还可将分区配置信息中的主分区字段存储在本地,将分区配置信息整体再发送至元数据节点进行存储,本申请实施例对此不做限定。
其中,计算引擎本地存储有主分区字段的情况下,计算引擎接收到数据操作请求后,获取数据操作请求对应的待操作数据,将待操作数据中的多个字段分别和主分区字段进行匹配,将匹配成功的字段的值作为主分区索引信息,基于主分区索引信息生成分区信息获取请求,将分区信息获取请求发送至元数据节点。
其中,元数据节点接收到分区信息获取请求后,对分区信息获取请求进行解析得到主分区索引信息,将主分区索引信息分别和分区配置信息中至少一个主分区字段值进行匹配,若和某个主分区字段值匹配成功,则进一步从分区配置信息中获取该主分区字段值对应的次分区字段和存储节点群组信息,并将该次分区字段和存储节点群组信息返回给计算引擎。
若主分区索引信息和至少一个主分区字段值均匹配失败,则说明管理人员未为该主分区索引信息配置次分区字段和存储节点群组信息,则向计算引擎返回匹配失败消息,计算引擎接收到该匹配失败消息后,将数据操作请求群发给分布式存储系统中每个存储节点。
其中,计算引擎接收到元数据节点返回的次分区字段和存储节点群组信息后,将该次分区字段作为主分区索引信息对应的次分区字段,将该存储节点群组信息作为主分区索引信息对应的存储节点群组信息。
上述实施例中,计算引擎在得到主分区索引信息后,基于主分区索引信息生成分区信息获取请求,并将分区信息获取请求发送至元数据节点,由元数据节点返回次分区字段和存储节点群组信息,次分区字段后续可用于确定次分区索引信息,次分区索引信息后续可用于在存储节点群组信息包含的存储节点中定位用于处理数据操作请求的存储节点,极大提升了数据处理效率。
在一些实施例中,获取次分区索引信息对应的节点映射参数,包括:对次分区索引信息进行哈希运算,得到次分区索引信息对应的哈希运算结果;基于存储节点群组信息包含的存储节点的数量,对哈希运算结果进行取模运算,得到次分区索引信息对应的节点映射参数。
其中,计算引擎在得到次分区字段和存储节点群组信息后,从待操作数据中查找次分区字段的值,将查找到的值作为次分区索引信息。计算引擎在得到次分区索引信息后,可对次分区索引信息进行哈希运算,得到次分区索引信息对应的哈希运算结果。
其中,计算引擎可获取存储节点群组信息包含的存储节点的数量,使用次分区索引信息对应的哈希运算结果对该数量进行取模运算,将取模运算结果作为次分区索引信息对应的节点映射参数。
其中,计算引擎还可通过如下方式确定次分区索引信息对应的节点映射参数:计算引擎在得到次分区索引信息对应的哈希运算结果后,可使用次分区索引信息对应的哈希运算结果,对一致性哈希算法中的取模数值进行取模运算,将取模运算结果作为次分区索引信息对应的节点映射参数。
上述实施例中,在得到次分区索引信息后,对次分区索引信息进行哈希运算,得到次分区索引信息对应的哈希运算结果;基于存储节点群组信息包含的存储节点的数量,对哈希运算结果进行取模运算,得到次分区索引信息对应的节点映射参数。后续可基于该节点映射参数在存储节点群组信息包含的存储节点中定位用于处理数据操作请求的存储节点,进而将数据操作请求发送给该存储节点进行处理,极大提升了数据处理效率。
在一些实施例中,节点映射关系的构建过程包括:获取存储节点群组信息包含的存储节点的数量,基于数量确定存储节点群组信息包含的各个存储节点的序号;将存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数,基于存储节点群组信息包含的各个存储节点各自对应的映射参数,构建节点映射关系。
其中,计算引擎可获取存储节点群组信息包含的存储节点的数量,假设该数量为N,则将0、1、2、……、N-1分别作为N存储节点的序号,进一步的,计算引擎可将存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数。
其中,计算引擎在得到存储节点群组信息包含的各个存储节点各自对应的映射参数后,基于各个存储节点各自对应的映射参数,建立存储节点和映射参数之间的对应关系,得到节点映射关系。
其中,计算引擎还可通过如下方式构建节点映射关系:计算引擎可获取存储节点群组信息包含的各个存储节点的标识,针对存储节点群组信息中的每个存储节点,对该存储节点的标识进行哈希运算,得到该存储节点对应的哈希运算结果,计算引擎可使用存储节点对应的哈希运算结果对一致性哈希算法中的取模数值进行取模运算,将取模运算结果作为存储节点对应的映射参数。最后计算引擎基于各个存储节点各自对应的映射参数,建立存储节点和映射参数之间的对应关系,得到节点映射关系。这种方式下,计算引擎可基于节点映射关系中的映射参数,将存储节点群组信息中的各存储节点标记在哈希环上,同时将次分区索引信息对应的节点映射参数也标记在哈希环上,按照顺时针方向在哈希环上搜索,将率先搜索到的映射参数对应的存储节点,作为目标存储节点。
示例性的,图7是一种哈希环的示例,分布式存储系统包括SET1、SET2、SET3、SET4四个存储节点,这四个存储节点在哈希环上的位置如图7所示,假设预先配置的主分区字段为机构标识(bk_id),至少一个主分区字段值为1、2、100、200,每个主分区字段值对应的次分区字段均为对象标识(cust_no),主分区字段值1对应的存储节点群组信息包括存储节点SET1和存储节点SET2,主分区字段值2对应的存储节点群组信息包括存储节点SET1和存储节点SET2,主分区字段值100对应的存储节点群组信息包括存储节点SET3和存储节点SET4,在数据操作请求携带bk_id=1、cust_no=“tom”的情况下,假设计算得到tom对应的节点映射参数K1在哈希环上的位置如图7所示,由于bk_id=1对应的存储节点群组信息包括存储节点SET1和存储节点SET2,按照顺时针方向搜索,SET1距离K1最近,则SET1为目标存储节点,数据操作请求携带bk_id和cust_no为其他值时,确定目标存储节点的原理类似,本申请实施例在此不再赘述。
上述实施例中,提供了构建节点映射关系的具体方式,首先获取存储节点群组信息包含的存储节点的数量,基于数量确定存储节点群组信息包含的各个存储节点的序号;将存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数,基于存储节点群组信息包含的各个存储节点各自对应的映射参数,构建节点映射关系。节点映射关系可用于定位用于处理数据操作请求的存储节点,进而将数据操作请求发送给该存储节点进行处理,极大提升了数据处理效率。
在一些实施例中,数据操作请求为数据查询请求,本申请实施例提供的数据处理方法还包括:从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,在均匹配失败的情况下,向分布式存储系统中的各存储节点群发数据查询请求。
其中,在数据操作请求为数据查询请求的情况下,数据查询请求中携带有多个字段的值,可将数据查询请求携带的数据作为待操作数据,计算引擎可在分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,若均匹配失败,则将数据查询请求群发给分布式存储系统中的各存储节点。
上述实施例中,在数据操作请求为数据查询请求的情况下,若待操作数据中的多个字段和主分区字段均匹配失败,则将数据查询请求群发给分布式存储系统中的各存储节点,这种分区裁剪策略极大提升了数据查询效率。
在一些实施例中,数据操作请求为数据查询请求,本申请实施例提供的数据处理方法还包括:将次分区字段分别和待操作数据中各个字段进行匹配,在均匹配失败的情况下,向存储节点群组信息包含的各个存储节点群发数据查询请求。
如前述实施例所描述,在数据操作请求为数据查询请求的情况下,数据查询请求中携带有多个字段的值,可将数据查询请求携带的数据作为待操作数据,计算引擎可在分区配置信息中查找主分区字段,将待操作数据中的多个字段分别和主分区字段进行匹配,若均匹配失败,则将数据查询请求群发给存储节点集群中的每个存储节点;若其中一个字段匹配成功,则将该字段的值作为主分区索引信息,进而在对象预先配置的分区配置信息中,查找是否存在主分区索引信息对应的次分区字段和存储节点群组信息,若存在,将次分区字段分别和待操作数据中各个字段进行匹配,若均匹配失败,向存储节点群组信息包含的各个存储节点群发数据查询请求;若其中一个字段匹配成功,则将待操作数据中该字段的值作为次分区索引信息。
上述实施例中,计算引擎得到主分区索引信息对应的次分区字段和存储节点群组信息后,将次分区字段分别和待操作数据中各个字段进行匹配,若均匹配失败,向存储节点群组信息包含的各个存储节点群发数据查询请求;若其中一个字段匹配成功,则将待操作数据中该字段的值作为次分区索引信息,后续基于次分区索引信息定位目标存储节点,将数据查询请求发送给目标存储节点进行处理,这种分区裁剪策略极大提升了数据查询效率。
在一些实施例中,提供一种数据处理方法,该方法可由计算引擎执行,该方法包括:
接收数据定义请求,对数据定义请求进行解析,得到分区配置信息,分区配置信息包括主分区字段、至少一个主分区字段值各自对应的次分区字段以及至少一个主分区字段值各自对应的存储节点群组信息;将分区配置信息发送至元数据节点进行存储,并在数据定义请求中确定出数据表创建语句和分区配置语句,将数据定义请求中的分区配置语句删除,得到数据表创建请求,将数据表创建请求发送至分布式存储系统中的各存储节点,以指示各存储节点基于数据表创建请求携带的信息创建数据表。
接收数据插入请求,将数据操作请求携带的数据作为待操作数据;从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,将匹配成功的字段对应的值作为主分区索引信息,基于主分区索引信息生成分区信息获取请求,将分区信息获取请求发送至元数据节点,以指示元数据节点将分区信息获取请求中的主分区索引信息和预先存储的至少一个主分区字段值进行匹配,将匹配成功的主分区字段值对应的次分区字段和存储节点群组信息返回;将元数据节点返回的次分区字段作为主分区索引信息对应的次分区字段,将元数据节点返回的存储节点群组信息,作为主分区索引信息对应的存储节点群组信息;从待操作数据查找次分区字段对应的次分区索引信息,对次分区索引信息进行哈希运算,得到次分区索引信息对应的哈希运算结果;基于存储节点群组信息包含的存储节点的数量,对哈希运算结果进行取模运算,得到次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系,节点映射关系的构建过程包括:获取存储节点群组信息包含的存储节点的数量,基于数量确定存储节点群组信息包含的各个存储节点的序号;将存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数,基于存储节点群组信息包含的各个存储节点各自对应的映射参数,构建节点映射关系;最后将数据插入请求发送至目标存储节点,以指示目标存储节点在基于数据表创建请求携带的信息创建的数据表中,插入待操作数据。
或者,接收数据搬移请求,向源存储节点发送数据读取请求,以指示源存储节点对数据读取请求进行解析,得到源数据表标识,在源数据表标识对应的源数据表中读取数据,并将读取到的数据返回;将源存储节点返回的数据作为待操作数据;从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,将匹配成功的字段对应的值作为主分区索引信息,基于主分区索引信息生成分区信息获取请求,将分区信息获取请求发送至元数据节点,以指示元数据节点将分区信息获取请求中的主分区索引信息和预先存储的至少一个主分区字段值进行匹配,将匹配成功的主分区字段值对应的次分区字段和存储节点群组信息返回;将元数据节点返回的次分区字段作为主分区索引信息对应的次分区字段,将元数据节点返回的存储节点群组信息,作为主分区索引信息对应的存储节点群组信息;从待操作数据查找次分区字段对应的次分区索引信息,对次分区索引信息进行哈希运算,得到次分区索引信息对应的哈希运算结果;基于存储节点群组信息包含的存储节点的数量,对哈希运算结果进行取模运算,得到次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系,节点映射关系的构建过程包括:获取存储节点群组信息包含的存储节点的数量,基于数量确定存储节点群组信息包含的各个存储节点的序号;将存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数,基于存储节点群组信息包含的各个存储节点各自对应的映射参数,构建节点映射关系;最后将数据搬移请求发送至目标存储节点,以指示目标存储节点对数据搬移请求进行解析,得到源数据表标识,将源数据表标识对应的源数据表中的数据,搬移至基于数据表创建请求携带的信息创建的数据表中。
或者,接收数据查询请求,将数据操作请求携带的数据作为待操作数据;从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,将匹配成功的字段对应的值作为主分区索引信息,基于主分区索引信息生成分区信息获取请求,将分区信息获取请求发送至元数据节点,以指示元数据节点将分区信息获取请求中的主分区索引信息和预先存储的至少一个主分区字段值进行匹配,将匹配成功的主分区字段值对应的次分区字段和存储节点群组信息返回;将元数据节点返回的次分区字段作为主分区索引信息对应的次分区字段,将元数据节点返回的存储节点群组信息,作为主分区索引信息对应的存储节点群组信息;从待操作数据查找次分区字段对应的次分区索引信息,对次分区索引信息进行哈希运算,得到次分区索引信息对应的哈希运算结果;基于存储节点群组信息包含的存储节点的数量,对哈希运算结果进行取模运算,得到次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系,节点映射关系的构建过程包括:获取存储节点群组信息包含的存储节点的数量,基于数量确定存储节点群组信息包含的各个存储节点的序号;将存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数,基于存储节点群组信息包含的各个存储节点各自对应的映射参数,构建节点映射关系;最后将数据查询请求发送至目标存储节点,以指示目标存储节点将待操作数据作为关键索引信息,在基于数据表创建请求携带的信息创建的数据表中,查找关键索引信息对应的存储数据,并向终端返回存储数据。在主分区字段和待操作数据中各个字段均匹配失败的情况下,向分布式存储系统中的各存储节点群发数据查询请求;在次分区字段和待操作数据中各个字段均匹配失败的情况下,向存储节点群组信息包含的各个存储节点群发数据查询请求。
上述实施例中,接收到数据操作请求后,首先获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,进一步从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息,从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;将数据操作请求发送至目标存储节点进行处理。打破了当前分布式数据库仅支持单一分区策略的限制,支持多种分区策略的组合,实现了多级数据分区,在确定主分区索引信息对应的存储节点群组信息后,可进一步基于次分区索引信息从存储节点群组信息包含的存储节点中,确定出用于处理上述数据操作请求的存储节点,进而将数据操作请求发送给存储节点,和将数据操作请求群发给存储节点群组信息中每个存储节点进行处理的方式相比,极大提升了数据处理效率,减小了存储资源的浪费。
在一些实施例中,参见图8所示,提供一种数据处理方法,计算引擎接收数据操作请求后,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,然后执行下面的步骤:1、从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息。2、从待操作数据查找次分区字段对应的次分区索引信息,对次分区索引信息进行哈希运算,得到次分区索引信息对应的哈希运算结果;基于存储节点群组信息包含的存储节点的数量,对哈希运算结果进行取模运算,得到次分区索引信息对应的节点映射参数,图8以K4示例。3、基于预先建立的节点映射关系定位节点映射参数对应的目标存储节点,图8以SET1示例。
在一些可能的场景中,主分区也可以称为一级分区,一级分区可以为列表分区(List分区),次分区可以为二级分区,二级分区可以为哈希分区(Hash分区),参见图9所示,预先配置的主分区字段可以为机构标识(bk_id),至少一个主分区字段值可以为1、2、100、200,每个主分区字段值对应的次分区字段均为对象标识(cust_no),主分区字段值1对应的存储节点群组信息包括存储节点SET1和存储节点SET2,主分区字段值2对应的存储节点群组信息包括存储节点SET1和存储节点SET2,主分区字段值100对应的存储节点群组信息包括存储节点SET3和存储节点SET4,主分区字段值200对应的存储节点群组信息包括存储节点SET3和存储节点SET4。在数据操作请求携带bk_id=1、cust_no=“tom”的情况下,通过本申请实施例提供的数据处理方法,可以确定存储节点SET1为目标存储节点;在数据操作请求携带bk_id=1、cust_no=“jack”的情况下,通过本申请实施例提供的数据处理方法,可以确定存储节点SET2为目标存储节点;在数据操作请求携带bk_id=2、cust_no=“tom”的情况下,通过本申请实施例提供的数据处理方法,可以确定存储节点SET1为目标存储节点;在数据操作请求携带bk_id=2、cust_no=“jack”的情况下,通过本申请实施例提供的数据处理方法,可以确定存储节点SET2为目标存储节点;在数据操作请求携带bk_id=100、cust_no=“tom”的情况下,通过本申请实施例提供的数据处理方法,可以确定存储节点SET3为目标存储节点;在数据操作请求携带bk_id=100、cust_no=“jack”的情况下,通过本申请实施例提供的数据处理方法,可以确定存储节点SET4为目标存储节点;在数据操作请求携带bk_id=200、cust_no=“tom”的情况下,通过本申请实施例提供的数据处理方法,可以确定存储节点SET3为目标存储节点;在数据操作请求携带bk_id=200、cust_no=“jack”的情况下,通过本申请实施例提供的数据处理方法,可以确定存储节点SET4为目标存储节点;这样bk_id=1的相关数据和bk_id=100的相关数据、bk_id=1的相关数据和bk_id=200的相关数据、bk_id=2的相关数据和bk_id=100的相关数据、bk_id=2的相关数据和bk_id=200的相关数据可以实现物理隔离,同一个存储节点内的不同数据可以实现逻辑隔离。
参见图10所示,本申请实施例中管理人员可以通过客户端在计算引擎上配置一级分区和二级分区,一级分区可以为列表分区(List分区),二级分区可以为哈希分区(Hash分区),这样,计算引擎在接收到数据操作请求后,可从分布式存储系统包含的存储节点SET1、存储节点SET2、存储节点SET3、存储节点SET4中定位目标存储节点,将数据操作请求发送给目标存储节点进行处理。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据处理方法的数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据处理装置实施例中的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。
在一个实施例中,如图11所示,提供了一种数据处理装置,包括:
接收模块1101,用于接收数据操作请求,获取数据操作请求对应的待操作数据,从待操作数据中确定主分区索引信息,从预先配置的分区配置信息中,查找主分区索引信息对应的次分区字段和存储节点群组信息;
获取模块1102,用于从待操作数据查找次分区字段对应的次分区索引信息,获取次分区索引信息对应的节点映射参数;
确定模块1103,用于基于预先建立的节点映射关系确定节点映射参数对应的目标存储节点,节点映射关系用于指示存储节点群组信息包含的各个存储节点和映射参数的对应关系;
发送模块1104,用于将数据操作请求发送至目标存储节点进行处理。
在一些实施例中,接收模块1101,还用于接收数据定义请求,对数据定义请求进行解析,得到分区配置信息,分区配置信息包括主分区字段、至少一个主分区字段值各自对应的次分区字段以及至少一个主分区字段值各自对应的存储节点群组信息;将分区配置信息发送至元数据节点进行存储,并对数据定义请求进行调整,生成数据表创建请求,将数据表创建请求发送至分布式存储系统中的各存储节点,以指示各存储节点基于数据表创建请求携带的信息创建数据表。
在一些实施例中,接收模块1101,还用于在数据定义请求中确定出数据表创建语句和分区配置语句,将数据定义请求中的分区配置语句删除,得到数据表创建请求。
在一些实施例中,数据操作请求为数据插入请求;接收模块1101具体用于将数据操作请求携带的数据作为待操作数据;发送模块具体用于将数据插入请求发送至目标存储节点,以指示目标存储节点在基于数据表创建请求携带的信息创建的数据表中,插入待操作数据。
在一些实施例中,数据操作请求为数据搬移请求,接收模块1101具体用于向源存储节点发送数据读取请求,以指示源存储节点对数据读取请求进行解析,得到源数据表标识,在源数据表标识对应的源数据表中读取数据,并将读取到的数据返回;将源存储节点返回的数据作为待操作数据;发送模块具体用于将数据搬移请求发送至目标存储节点,以指示目标存储节点对数据搬移请求进行解析,得到源数据表标识,将源数据表标识对应的源数据表中的数据,搬移至基于数据表创建请求携带的信息创建的数据表中。
在一些实施例中,数据操作请求为数据查询请求;接收模块1101具体用于将数据操作请求携带的数据作为待操作数据;发送模块具体用于将数据查询请求发送至目标存储节点,以指示目标存储节点将待操作数据作为关键索引信息,在基于数据表创建请求携带的信息创建的数据表中,查找关键索引信息对应的存储数据,并向终端返回存储数据。
在一些实施例中,接收模块1101具体用于从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,将匹配成功的字段对应的值作为主分区索引信息。
在一些实施例中,接收模块1101具体用于基于主分区索引信息生成分区信息获取请求,将分区信息获取请求发送至元数据节点,以指示元数据节点将分区信息获取请求中的主分区索引信息和预先存储的至少一个主分区字段值进行匹配,将匹配成功的主分区字段值对应的次分区字段和存储节点群组信息返回;将元数据节点返回的次分区字段作为主分区索引信息对应的次分区字段,将元数据节点返回的存储节点群组信息,作为主分区索引信息对应的存储节点群组信息。
在一些实施例中,获取模块1102具体用于对次分区索引信息进行哈希运算,得到次分区索引信息对应的哈希运算结果;基于存储节点群组信息包含的存储节点的数量,对哈希运算结果进行取模运算,得到次分区索引信息对应的节点映射参数。
在一些实施例中,确定模块1103还用于获取存储节点群组信息包含的存储节点的数量,基于数量确定存储节点群组信息包含的各个存储节点的序号;将存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数,基于存储节点群组信息包含的各个存储节点各自对应的映射参数,构建节点映射关系。
在一些实施例中,数据操作请求为数据查询请求,发送模块1104还用于从分区配置信息中查找主分区字段,将主分区字段分别和待操作数据中各个字段进行匹配,在均匹配失败的情况下,向分布式存储系统中的各存储节点群发数据查询请求。
在一些实施例中,数据操作请求为数据查询请求,发送模块1104还用于将次分区字段分别和待操作数据中各个字段进行匹配,在均匹配失败的情况下,向存储节点群组信息包含的各个存储节点群发数据查询请求。
上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储分区配置信息。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的对象信息(包括但不限于对象设备信息、对象个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经对象授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (25)

1.一种数据处理方法,其特征在于,应用于计算引擎,所述计算引擎上配置主分区和次分区,所述主分区为列表分区,所述次分区为哈希分区,所述方法包括:
接收数据操作请求,获取所述数据操作请求对应的待操作数据,从所述待操作数据中确定主分区索引信息;
基于所述主分区索引信息生成分区信息获取请求,将所述分区信息获取请求发送至元数据节点,以指示所述元数据节点对所述分区信息获取请求进行解析,得到所述主分区索引信息,将所述主分区索引信息分别和所述元数据节点预先存储的分区配置信息中至少一个主分区字段值进行匹配,从所述分区配置信息中,获取匹配成功的主分区字段值对应的次分区字段和存储节点群组信息,并将获取到的次分区字段和存储节点群组信息返回;
将所述元数据节点返回的次分区字段,作为所述主分区索引信息对应的次分区字段,将所述元数据节点返回的存储节点群组信息,作为所述主分区索引信息对应的存储节点群组信息;
从所述待操作数据查找所述次分区字段对应的次分区索引信息;
对所述次分区索引信息进行哈希运算,得到所述次分区索引信息对应的哈希运算结果;
基于所述存储节点群组信息包含的存储节点的数量,对所述哈希运算结果进行取模运算,得到所述次分区索引信息对应的节点映射参数;
基于所述存储节点群组信息包含的存储节点的数量确定所述存储节点群组信息包含的各个存储节点的序号;
将所述存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数,基于所述存储节点群组信息包含的各个存储节点各自对应的映射参数,构建节点映射关系;
基于所述节点映射关系确定所述节点映射参数对应的目标存储节点,所述目标存储节点为分布式数据库中的存储节点,所述分布式数据库支持多种分区策略的组合;
将所述数据操作请求发送至所述目标存储节点进行处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收数据定义请求,对所述数据定义请求进行解析,得到分区配置信息,所述分区配置信息包括主分区字段、至少一个主分区字段值各自对应的次分区字段以及至少一个主分区字段值各自对应的存储节点群组信息;
将所述分区配置信息发送至元数据节点进行存储,并对所述数据定义请求进行调整,生成数据表创建请求,将所述数据表创建请求发送至分布式存储系统中的各存储节点,以指示各存储节点基于所述数据表创建请求携带的信息创建数据表。
3.根据权利要求2所述的方法,其特征在于,所述对所述数据定义请求进行调整,生成数据表创建请求,包括:
在所述数据定义请求中确定出数据表创建语句和分区配置语句,将所述数据定义请求中的分区配置语句删除,得到数据表创建请求。
4.根据权利要求1所述的方法,其特征在于,所述数据操作请求为数据插入请求;
所述获取所述数据操作请求对应的待操作数据,包括:
将所述数据操作请求携带的数据作为待操作数据;
所述将所述数据操作请求发送至所述目标存储节点进行处理,包括:
将所述数据插入请求发送至所述目标存储节点,以指示所述目标存储节点在基于数据表创建请求携带的信息创建的数据表中,插入所述待操作数据。
5.根据权利要求1所述的方法,其特征在于,所述数据操作请求为数据搬移请求,所述获取所述数据操作请求对应的待操作数据,包括:
向源存储节点发送数据读取请求,以指示所述源存储节点对所述数据读取请求进行解析,得到源数据表标识,在所述源数据表标识对应的源数据表中读取数据,并将读取到的数据返回;
将所述源存储节点返回的数据作为待操作数据;
所述将所述数据操作请求发送至所述目标存储节点进行处理,包括:
将所述数据搬移请求发送至所述目标存储节点,以指示所述目标存储节点对所述数据搬移请求进行解析,得到所述源数据表标识,将所述源数据表标识对应的源数据表中的数据,搬移至基于数据表创建请求携带的信息创建的数据表中。
6.根据权利要求1所述的方法,其特征在于,所述数据操作请求为数据查询请求;
所述获取所述数据操作请求对应的待操作数据,包括:
将所述数据操作请求携带的数据作为待操作数据;
所述将所述数据操作请求发送至所述目标存储节点进行处理,包括:
将所述数据查询请求发送至所述目标存储节点,以指示所述目标存储节点将所述待操作数据作为关键索引信息,在基于数据表创建请求携带的信息创建的数据表中,查找所述关键索引信息对应的存储数据,并向终端返回所述存储数据。
7.根据权利要求1所述的方法,其特征在于,所述从所述待操作数据中确定主分区索引信息,包括:
从分区配置信息中查找主分区字段,将所述主分区字段分别和所述待操作数据中各个字段进行匹配,将匹配成功的字段对应的值作为主分区索引信息。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述次分区索引信息进行哈希运算,得到所述次分区索引信息对应的哈希运算结果;
使用所述哈希运算结果对一致性哈希算法中的取模数值进行取模运算,将取模运算结果作为所述次分区索引信息对应的节点映射参数。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述存储节点群组信息包含的各个存储节点的标识;
针对存储节点群组信息中的每个存储节点,对所述存储节点的标识进行哈希运算,得到所述存储节点对应的哈希运算结果,使用所述存储节点对应的哈希运算结果对一致性哈希算法中的取模数值进行取模运算,将取模运算结果作为所述存储节点对应的映射参数;
基于各个存储节点各自对应的映射参数,建立存储节点和映射参数之间的对应关系,得到节点映射关系。
10.根据权利要求1所述的方法,其特征在于,所述数据操作请求为数据查询请求,所述方法还包括:
从分区配置信息中查找主分区字段,将所述主分区字段分别和所述待操作数据中各个字段进行匹配,在均匹配失败的情况下,向分布式存储系统中的各存储节点群发所述数据查询请求。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述数据操作请求为数据查询请求,所述方法还包括:
将所述次分区字段分别和所述待操作数据中各个字段进行匹配,在均匹配失败的情况下,向所述存储节点群组信息包含的各个存储节点群发所述数据查询请求。
12.一种数据处理装置,其特征在于,应用于计算引擎,所述计算引擎上配置主分区和次分区,所述主分区为列表分区,所述次分区为哈希分区,所述装置包括:
接收模块,用于接收数据操作请求,获取所述数据操作请求对应的待操作数据,从所述待操作数据中确定主分区索引信息;
所述接收模块,还用于基于所述主分区索引信息生成分区信息获取请求,将所述分区信息获取请求发送至元数据节点,以指示所述元数据节点对所述分区信息获取请求进行解析,得到所述主分区索引信息,将所述主分区索引信息分别和所述元数据节点预先存储的分区配置信息中至少一个主分区字段值进行匹配,从所述分区配置信息中,获取匹配成功的主分区字段值对应的次分区字段和存储节点群组信息,并将获取到的次分区字段和存储节点群组信息返回;将所述元数据节点返回的次分区字段,作为所述主分区索引信息对应的次分区字段,将所述元数据节点返回的存储节点群组信息,作为所述主分区索引信息对应的存储节点群组信息;
获取模块,用于从所述待操作数据查找所述次分区字段对应的次分区索引信息,对所述次分区索引信息进行哈希运算,得到所述次分区索引信息对应的哈希运算结果;基于所述存储节点群组信息包含的存储节点的数量,对所述哈希运算结果进行取模运算,得到所述次分区索引信息对应的节点映射参数;
确定模块,用于基于所述存储节点群组信息包含的存储节点的数量确定所述存储节点群组信息包含的各个存储节点的序号;将所述存储节点群组信息包含的各个存储节点的序号作为对应存储节点的映射参数,基于所述存储节点群组信息包含的各个存储节点各自对应的映射参数,构建节点映射关系;
所述确定模块,用于所述节点映射关系确定所述节点映射参数对应的目标存储节点,所述目标存储节点为分布式数据库中的存储节点,所述分布式数据库支持多种分区策略的组合;
发送模块,用于将所述数据操作请求发送至所述目标存储节点进行处理。
13.根据权利要求12所述的装置,其特征在于,所述接收模块,还用于接收数据定义请求,对所述数据定义请求进行解析,得到分区配置信息,所述分区配置信息包括主分区字段、至少一个主分区字段值各自对应的次分区字段以及至少一个主分区字段值各自对应的存储节点群组信息;将所述分区配置信息发送至元数据节点进行存储,并对所述数据定义请求进行调整,生成数据表创建请求,将所述数据表创建请求发送至分布式存储系统中的各存储节点,以指示各存储节点基于所述数据表创建请求携带的信息创建数据表。
14.根据权利要求13所述的装置,其特征在于,所述接收模块,还用于在所述数据定义请求中确定出数据表创建语句和分区配置语句,将所述数据定义请求中的分区配置语句删除,得到数据表创建请求。
15.根据权利要求12所述的装置,其特征在于,所述数据操作请求为数据插入请求;所述接收模块,用于将所述数据操作请求携带的数据作为待操作数据;所述发送模块,用于将所述数据插入请求发送至所述目标存储节点,以指示所述目标存储节点在基于数据表创建请求携带的信息创建的数据表中,插入所述待操作数据。
16.根据权利要求12所述的装置,其特征在于,所述数据操作请求为数据搬移请求,所述接收模块,用于向源存储节点发送数据读取请求,以指示所述源存储节点对所述数据读取请求进行解析,得到源数据表标识,在所述源数据表标识对应的源数据表中读取数据,并将读取到的数据返回;将所述源存储节点返回的数据作为待操作数据;所述发送模块,用于将所述数据搬移请求发送至所述目标存储节点,以指示所述目标存储节点对所述数据搬移请求进行解析,得到所述源数据表标识,将所述源数据表标识对应的源数据表中的数据,搬移至基于数据表创建请求携带的信息创建的数据表中。
17.根据权利要求12所述的装置,其特征在于,所述数据操作请求为数据查询请求,所述接收模块,用于将所述数据操作请求携带的数据作为待操作数据;所述发送模块,用于将所述数据查询请求发送至所述目标存储节点,以指示所述目标存储节点将所述待操作数据作为关键索引信息,在基于数据表创建请求携带的信息创建的数据表中,查找所述关键索引信息对应的存储数据,并向终端返回所述存储数据。
18.根据权利要求12所述的装置,其特征在于,所述接收模块,用于从分区配置信息中查找主分区字段,将所述主分区字段分别和所述待操作数据中各个字段进行匹配,将匹配成功的字段对应的值作为主分区索引信息。
19.根据权利要求12所述的装置,其特征在于,所述获取模块,还用于对所述次分区索引信息进行哈希运算,得到所述次分区索引信息对应的哈希运算结果;使用所述哈希运算结果对一致性哈希算法中的取模数值进行取模运算,将取模运算结果作为所述次分区索引信息对应的节点映射参数。
20.根据权利要求12所述的装置,其特征在于,所述确定模块,还用于获取所述存储节点群组信息包含的各个存储节点的标识;针对存储节点群组信息中的每个存储节点,对所述存储节点的标识进行哈希运算,得到所述存储节点对应的哈希运算结果,使用所述存储节点对应的哈希运算结果对一致性哈希算法中的取模数值进行取模运算,将取模运算结果作为存储节点对应的映射参数;基于各个存储节点各自对应的映射参数,建立存储节点和映射参数之间的对应关系,得到节点映射关系。
21.根据权利要求12所述的装置,其特征在于,所述数据操作请求为数据查询请求,所述发送模块,还用于从分区配置信息中查找主分区字段,将所述主分区字段分别和所述待操作数据中各个字段进行匹配,在均匹配失败的情况下,向分布式存储系统中的各存储节点群发所述数据查询请求。
22.根据权利要求12至21任一项所述的装置,其特征在于,所述数据操作请求为数据查询请求,所述发送模块,还用于将所述次分区字段分别和所述待操作数据中各个字段进行匹配,在均匹配失败的情况下,向所述存储节点群组信息包含的各个存储节点群发所述数据查询请求。
23.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
25.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
CN202410028878.XA 2024-01-09 2024-01-09 数据处理方法、装置、计算机设备和存储介质 Active CN117539962B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410028878.XA CN117539962B (zh) 2024-01-09 2024-01-09 数据处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410028878.XA CN117539962B (zh) 2024-01-09 2024-01-09 数据处理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN117539962A CN117539962A (zh) 2024-02-09
CN117539962B true CN117539962B (zh) 2024-05-14

Family

ID=89794215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410028878.XA Active CN117539962B (zh) 2024-01-09 2024-01-09 数据处理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN117539962B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500183A (zh) * 2013-09-12 2014-01-08 国家计算机网络与信息安全管理中心 一种基于多个相关字段组合索引存储结构及建立、查询与维护方法
CN105512200A (zh) * 2015-11-26 2016-04-20 华为技术有限公司 一种分布式数据库处理的方法和设备
CN105930345A (zh) * 2016-04-05 2016-09-07 国网浙江省电力公司湖州供电公司 基于分布式实时数据库的层次索引方法
CN107667363A (zh) * 2015-06-26 2018-02-06 英特尔公司 具有多种可选数据处理策略的基于对象的存储集群
CN108427748A (zh) * 2018-03-12 2018-08-21 北京奇艺世纪科技有限公司 分布式数据库二级索引查询方法、装置以及服务器
CN109800222A (zh) * 2018-12-11 2019-05-24 中国科学院信息工程研究所 一种HBase二级索引自适应优化方法和系统
US11144394B1 (en) * 2020-06-05 2021-10-12 Vmware, Inc. Storing B-tree pages in capacity tier for erasure-coded storage in distributed data systems
CN115114289A (zh) * 2022-06-28 2022-09-27 中国银行股份有限公司 一种数据查询方法、装置及电子设备
CN115392927A (zh) * 2022-08-05 2022-11-25 东软集团股份有限公司 基于区块链的数据追溯系统以及数据追溯方法
CN116483829A (zh) * 2023-02-28 2023-07-25 中国建设银行股份有限公司 数据查询方法、装置、计算机设备和存储介质
CN116561382A (zh) * 2023-05-09 2023-08-08 北京火山引擎科技有限公司 一种图数据库的数据处理方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574424B2 (en) * 2004-10-13 2009-08-11 Sybase, Inc. Database system with methodology for parallel schedule generation in a query optimizer
US11106708B2 (en) * 2018-03-01 2021-08-31 Huawei Technologies Canada Co., Ltd. Layered locality sensitive hashing (LSH) partition indexing for big data applications

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500183A (zh) * 2013-09-12 2014-01-08 国家计算机网络与信息安全管理中心 一种基于多个相关字段组合索引存储结构及建立、查询与维护方法
CN107667363A (zh) * 2015-06-26 2018-02-06 英特尔公司 具有多种可选数据处理策略的基于对象的存储集群
CN105512200A (zh) * 2015-11-26 2016-04-20 华为技术有限公司 一种分布式数据库处理的方法和设备
CN105930345A (zh) * 2016-04-05 2016-09-07 国网浙江省电力公司湖州供电公司 基于分布式实时数据库的层次索引方法
CN108427748A (zh) * 2018-03-12 2018-08-21 北京奇艺世纪科技有限公司 分布式数据库二级索引查询方法、装置以及服务器
CN109800222A (zh) * 2018-12-11 2019-05-24 中国科学院信息工程研究所 一种HBase二级索引自适应优化方法和系统
US11144394B1 (en) * 2020-06-05 2021-10-12 Vmware, Inc. Storing B-tree pages in capacity tier for erasure-coded storage in distributed data systems
CN115114289A (zh) * 2022-06-28 2022-09-27 中国银行股份有限公司 一种数据查询方法、装置及电子设备
CN115392927A (zh) * 2022-08-05 2022-11-25 东软集团股份有限公司 基于区块链的数据追溯系统以及数据追溯方法
CN116483829A (zh) * 2023-02-28 2023-07-25 中国建设银行股份有限公司 数据查询方法、装置、计算机设备和存储介质
CN116561382A (zh) * 2023-05-09 2023-08-08 北京火山引擎科技有限公司 一种图数据库的数据处理方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Oracle数据库分区优化技术研究与应用;张新建;李辉;陈永南;;指挥信息系统与技术;20100828(第04期);全文 *
面向海量小文件的分布式存储系统设计与实现;李洪奇;朱丽萍;孙国玉;王露;;计算机工程与设计;20160116(第01期);全文 *

Also Published As

Publication number Publication date
CN117539962A (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
US11422853B2 (en) Dynamic tree determination for data processing
WO2019114766A1 (zh) 一种数据脱敏方法、服务器、终端及计算机可读存储介质
US10013443B2 (en) Comparing data stores using hash sums on disparate parallel systems
CN106599104B (zh) 一种基于redis集群的海量数据关联方法
US8738645B1 (en) Parallel processing framework
CN111414403B (zh) 数据访问方法和装置、数据存储方法和装置
US20230024345A1 (en) Data processing method and apparatus, device, and readable storage medium
US10169348B2 (en) Using a file path to determine file locality for applications
US11675769B2 (en) On-demand, dynamic and optimized indexing in natural language processing
US9075836B2 (en) Partitioning keys for hash tables
US20170060922A1 (en) Method and device for data search
US20190089633A1 (en) Reconstructing message flows based on hash values
US11500874B2 (en) Systems and methods for linking metric data to resources
CN117539962B (zh) 数据处理方法、装置、计算机设备和存储介质
JP2006146615A (ja) オブジェクト関連情報管理プログラム、管理方法、および管理装置。
US20030115202A1 (en) System and method for processing a request using multiple database units
CN117009430A (zh) 数据管理方法、装置和存储介质及电子设备
CN111104408A (zh) 基于地图数据的数据交换方法、装置及存储介质
US8583596B2 (en) Multi-master referential integrity
CN111708806B (zh) 一种数据访问的方法、装置、服务器、系统及存储介质
CN113449003B (zh) 信息查询的方法、装置、电子设备及介质
US20230247111A1 (en) Runtime module conversion
US11138275B1 (en) Systems and methods for filter conversion
CN115292360A (zh) 一种副本的数据分区方法及装置
CN118296160A (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