CN117370023A - 字符串数据处理方法、装置、加速单元和计算机存储介质 - Google Patents

字符串数据处理方法、装置、加速单元和计算机存储介质 Download PDF

Info

Publication number
CN117370023A
CN117370023A CN202311396406.1A CN202311396406A CN117370023A CN 117370023 A CN117370023 A CN 117370023A CN 202311396406 A CN202311396406 A CN 202311396406A CN 117370023 A CN117370023 A CN 117370023A
Authority
CN
China
Prior art keywords
data
character string
processed
mask
result
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
Application number
CN202311396406.1A
Other languages
English (en)
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.)
Yusur Technology Co ltd
Original Assignee
Yusur Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yusur Technology Co ltd filed Critical Yusur Technology Co ltd
Priority to CN202311396406.1A priority Critical patent/CN117370023A/zh
Publication of CN117370023A publication Critical patent/CN117370023A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

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

Abstract

本申请公开一种字符串数据处理方法、装置、加速单元和计算机存储介质,该方法用于与主计算设备配套使用的加速单元,包括:从主计算设备接收待处理数据、操作类型信息和操作参数,并存储在加速单元的存储区;通过加速单元的核,从存储区读取待处理数据、操作类型信息和操作参数,如果确定操作类型信息指示的数据操作类型为掩码操作,则执行相应操作,获得字符串掩码结果,并返回字符串掩码结果到主计算设备。本申请通过在进行字符串数据处理时,将与字符串数据处理相关的数据传输到加速单元,由加速单元获得字符串掩码结果后,将字符串掩码结果传输回主计算设备从而减轻主计算设备进行字符串掩码的负担,解放主计算设备的算力用于其他任务。

Description

字符串数据处理方法、装置、加速单元和计算机存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种字符串数据处理方法、装置、加速单元和计算机存储介质。
背景技术
随着大数据业务规模不断提升,需要对数据库中的字符串数据进行处理,以获得符合业务需求的部分数据,例如,当业务需求需要向用户A发送数据ABC,向用户B发送数据BCD,向用户C发送数据ACD,用户A、用户B和用户C分别代表大量的数据接收端,则需要对发送端的数据ABCD进行处理,使输出向用户A、用户B和用户C的数据正确。
现有技术中进行字符串数据处理方式,主要是通过主计算设备执行数据库中的相应功能函数实现的。但它会在主计算设备中占用较高的算力,导致主计算设备无法执行其他任务。
发明内容
有鉴于此,本申请提供一种字符串数据处理方法、装置、加速单元和计算机存储介质,以解决传统方案执行数据库中的相应功能函数在主计算设备中占用较高的算力,导致主计算设备无法执行其他任务的技术问题。
本申请第一方面提供一种字符串数据处理方法,用于与主计算设备配套使用的加速单元,包括:从所述主计算设备接收待处理数据、操作类型信息和操作参数,并存储在所述加速单元的存储区;通过所述加速单元的核,从所述存储区读取所述待处理数据、所述操作类型信息和所述操作参数;通过所述核,如果确定所述操作类型信息指示的数据操作类型为掩码操作,则从所述操作参数中确定掩码操作参数,并利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串掩码结果,并将所述字符串掩码结果存入所述存储区;从所述存储区返回所述字符串掩码结果到所述主计算设备。
可选地,所述字符串数据处理过程还可以包括:通过所述核,如果确定所述操作类型信息指示的数据操作类型为过滤操作,则从所述操作参数中确定过滤操作参数,并利用所述过滤操作参数对所述待处理数据执行过滤操作,获得字符串过滤结果,并将所述字符串过滤结果存入所述存储区;从所述存储区返回所述字符串过滤结果到所述主计算设备。
可选地,所述字符串数据处理过程还可以包括:通过所述核,如果确定所述操作类型信息指示的数据操作类型为掩码操作和过滤操作,则从所述操作参数中确定过滤操作参数,并利用所述过滤操作参数对所述待处理数据执行过滤操作,获得字符串过滤结果,并根据所述字符串过滤结果确定掩码操作参数,利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串过滤掩码结果,并将所述字符串过滤掩码结果存入所述存储区;从所述存储区返回所述字符串过滤掩码结果到所述主计算设备。
可选地,所述过滤参数包括第一目标字符串和目标过滤操作符;对应的,所述利用所述过滤参数对所述待处理数据执行所述过滤操作,获得字符串过滤结果的过程还可以包括:基于所述待处理数据与所述第一目标字符串是否符合所述目标过滤操作符,确定所述待处理数据对应的字符串过滤结果。
可选地,所述基于所述待处理数据与所述第一目标字符串是否符合所述目标过滤操作符,确定所述待处理数据对应的字符串过滤结果的过程还可以包括:将所述待处理数据按照预设长度进行补位,得到补位后待处理数据;将所述补位后待处理数据分成多个待处理数据段,其中,所述待处理数据段的长度大于或等于所述第一目标字符串的长度;基于每个所述待处理数据段与所述第一目标字符串是否符合所述目标过滤操作符,确定所述待处理数据段对应的子过滤结果;将多个所述待处理数据段对应的子过滤结果整合成所述字符串过滤结果。
可选地,所述掩码操作参数包括第二目标字符串,所述第二目标字符串包括至少一个数据位,所述数据位的值为第一值或第二值,且所述第二目标字符串包括的数据位的数量与所述待处理数据包括的字符串的数量相等;对应的,所述利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串掩码结果的过程还可以包括:根据所述待处理数据中字符串所处的位置,对所述待处理数据包括的字符串分别进行如下处理后,获得所述待处理数据对应的字符串掩码结果:根据字符串在所述待处理数据中所处的位置,从所述第二目标字符串中确定与该字符串对应的数据位,如果该字符串对应的数据位的值为所述第一值,则在所述待处理数据中保留该字符串,如果该字符串对应的数据位的值为所述第二值,则将该字符串从所述待处理数据中删除。
本申请第二方面提供一种字符串数据处理装置,用于与主计算设备配套使用的加速单元,包括:接收模块,用于从所述主计算设备接收待处理数据、操作类型信息和操作参数,并存储在所述加速单元的存储区;读取模块,用于通过所述加速单元的核,从所述存储区读取所述待处理数据、所述操作类型信息和所述操作参数;处理模块,用于通过所述核,如果确定所述操作类型信息指示的数据操作类型为掩码操作,则从所述操作参数中确定掩码操作参数,并利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串掩码结果,并将所述字符串掩码结果存入所述存储区;从所述存储区返回所述字符串掩码结果到所述主计算设备。
根据本申请实施例的第三方面,提供了一种加速单元,包括:存储区,用于从所述主计算设备接收并存储待处理数据、操作类型信息和操作参数,其中,所述操作类型信息至少包括掩码操作信息;核,用于从所述存储区读取所述待处理数据、所述操作类型信息和所述操作参数,如果确定所述操作类型信息指示的数据操作类型为掩码操作,则从所述操作参数中确定掩码操作参数,并利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串掩码结果,并将所述字符串掩码结果存入所述存储区。
根据本申请实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例第一方面所述的方法。
根据本申请实施例的第五方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如实施例第一方面所述的方法对应的操作。
本申请通过在进行字符串数据处理,尤其是进行掩码操作时,将与字符串数据处理相关的数据传输到加速单元,由加速单元获得字符串掩码结果后,将字符串掩码结果传输回主计算设备从而减轻主计算设备进行字符串掩码的负担,解放主计算设备的算力用于其他任务。由于加速单元具有核与存储区分离的结构,通过核与存储区的配合,提高了字符串掩码的执行效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例的字符串数据处理方法应用于的系统构架图;
图2是本申请一实施例的字符串数据处理方法的步骤流程图;
图3是本申请一实施例的字符串掩码方法的步骤流程图;
图4是本申请一实施例的字符串数据处理装置的示意图;
图5是本申请实施图2所示的字符串过滤方法的加速单元结构图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,下述各个实施例及其技术特征可以相互组合。
字符串数据处理包括字符串的掩码操作,字符串的掩码操作是指将待处理数据处理为符合业务需求的数据段。例如,当业务需求需要向用户A发送数据ABC,向用户B发送数据BCD,向用户C发送数据ACD,用户A、用户B和用户C分别代表大量的数据接收端,则需要对发送端的数据ABCD进行处理,使输出向用户A、用户B和用户C的数据正确。
现有技术中进行字符串掩码操作,是通过主计算设备执行数据库函数实现的,例如通过数据库中的掩码函数实现。但它会占用主计算设备的算力,而主计算设备还有其他任务执行,造成字符串数据处理的效率低。
图1是本申请一个实施例的字符串数据处理方法应用于的系统构架图。该系统构架包括主计算设备和加速单元。主计算设备是执行字符串数据处理所在的任务的设备。如上例中,如果字符串掩码具体是指在业务需求是向用户B发送数据BCD,向用户C发送数据ACD,则主计算设备就是基于业务需求执行字符串数据处理的设备。加速单元可以是插接到主计算设备上的、用于提高主计算设备在某一方面的处理速度的附属设备。在本公开实施例中,它用于提高主计算设备字符串数据处理的速度。
主计算设备可以是客户端,也可以是服务器。它可以体现为桌面计算机、膝上型计算机、手机、PDA、专用终端,也可以体现为若干终端组成的集群,另外,它还可以是一台终端上划分出来的一部分,如虚拟机。加速单元可以体现为附属设备(如插接在卡槽上的卡),也可以体现为与主计算设备通过接口连接的另一台独立的设备。
本公开实施例中,主计算设备执行任务。当任务的一部分需要进行字符串数据处理时(如进行字符串掩码),将与字符串掩码相关的数据传输到加速单元,由加速单元获得字符串掩码结果后,将字符串掩码结果传输回主计算设备,从而减轻主计算设备进行字符串掩码的负担,解放主计算设备的算力用于其他任务。由于加速单元具有核与存储区分离的结构,通过核与存储区的配合,提高了字符串数据处理的执行效率。
如图1所示,主计算设备包括处理器和内存。处理器是用于执行主计算设备的任务的核心部件。内存是存储主计算设备的任务需要的数据、以及主计算设备执行任务产生的中间结果和最终结果的部件。与字符串数据处理相关的数据一开始也存储在内存中。将需要执行字符串数据处理时,处理器将与字符串数据处理相关的数据从内存调出,通过主计算设备和加速单元之间的通道发送到加速单元。当加速单元具有标准的PCIe接口时,加速单元通过PCIe插槽插在主计算设备上。主计算设备和加速单元之间的通道是PCIe通道。
加速单元包括核和存储区。核是加速单元中专用于进行字符串数据处理的处理单元。由于该核被设计专用于字符串数据处理,因此,它能够提高字符串数据处理的效率。存储区是加速单元中用于存储与字符串数据处理相关的数据的专门区域。由于加速单元中既具有核(处理单元),又具有存储区,因此,它在字符串数据处理时,不用调用主计算设备中的处理器和内存,避免来回占用主计算设备和加速单元之间的通道,从而减少传输开销。由于加速单元中处理单元与存储区分离的结构,使得它在进行字符串数据处理时通过核与存储区的相互配合,达到更高的字符串数据处理效率。
如图2所示,根据本公开的一个实施例,提供了一种字符串数据处理方法。该字符串数据处理方法可以由图1的加速单元执行。该字符串数据处理方法包括如下步骤:
步骤201、从主计算设备接收待处理数据、操作类型信息和操作参数,并存储在加速单元的存储区。
主计算设备发送的操作类型信息指示了需要对字符串数据进行的操作,如掩码、过滤中的至少一个操作。例如,主计算设备执行任务。当任务的一部分需要进行字符串掩码时,将与字符串掩码相关的数据传输到加速单元的存储区,加速单元通过读取存储区获得字符串掩码结果后,将字符串掩码结果传输回主计算设备。
步骤202、通过加速单元的核,从存储区读取待处理数据、操作类型信息和操作参数。
在接收主计算设备发送的待处理数据、操作类型信息和操作参数,并存储在加速单元的存储区后,加速单元的核从存储区读取相应的数据,以执行字符串数据处理操作。加速单元的存储区中可以包含有若干个储存单元,在进行存储的时候可以将待处理数据、操作类型信息和操作参数分别存储至不同的存储单元,以便加速单元的核进行读取。假设存储单元长度假设为64位。待处理数据为“abcde0ff98v9”,共12个字符,每个字符占用8位,共96位。因此,要将96位的前64位(8个字符)分配到第一个存储单元中,将96位的后31位(4个字符)分配到第二个存储单元,在读取时,加速单元的核从存储区的第一个存储单元和第二个存储中连续读出待处理数据。
步骤203、通过核,如果确定操作类型信息指示的数据操作类型为掩码操作,则从操作参数中确定掩码操作参数,并利用掩码操作参数对待处理数据执行掩码操作,获得字符串掩码结果,并将字符串掩码结果存入存储区。
由于操作类型信息可以是掩码、过滤等中的至少一个操作,因此,在确定操作类型信息指示的数据操作类型为掩码操作时,从操作参数中确定掩码操作参数。掩码操作是将待处理数据对应的字符串中的至少部分数据删除,例如,待处理数据对应的字符串为“1234”“124”“123”,掩码操作参数为“100”,且定义掩码操作参数中的“0”为删除,则根据掩码操作参数对待处理数据执行掩码操作后,获得的字符串掩码结果为“1234”。在获得字符串掩码结果后,加速单元的核将字符串掩码结果存入存储区。
步骤204、从存储区返回字符串掩码结果到主计算设备。
从加速单元的存储区返回字符串掩码结果到主计算设备,完成字符串掩码处理,进而完成字符串处理任务。
在本申请实施例中,在进行字符串数据处理,尤其是进行掩码操作时,将与字符串数据处理相关的数据传输到加速单元,由加速单元获得字符串掩码结果后,将字符串掩码结果传输回主计算设备从而减轻主计算设备进行字符串掩码的负担,解放主计算设备的算力用于其他任务。由于加速单元具有核与存储区分离的结构,通过核与存储区的配合,提高了字符串掩码的执行效率。
在一种可能实现的方式中,字符串数据处理过程还可以包括:通过核,如果确定操作类型信息指示的数据操作类型为过滤操作,则从操作参数中确定过滤操作参数,并利用过滤操作参数对待处理数据执行过滤操作,获得字符串过滤结果,并将字符串过滤结果存入存储区,之后从存储区返回字符串过滤结果到主计算设备。
由于操作类型信息可以是掩码、过滤等中的至少一个操作,因此,在确定操作类型信息指示的数据操作类型为过滤操作时,从操作参数中确定过滤操作参数。过滤操作是判断待处理数据对应的字符串数据是否满足过滤操作参数。例如,需要判断出待处理数据中出生年份为1985年的出生年月日信息是哪些,待处理数据为“19851211”“19841211”“19861211”,过滤操作参数可以是“1985”以及判断条件为等于,则根据过滤操作参数对待处理数据执行过滤操作后,获得的字符串过滤结果为“1”“0”“0”,说明待处理数据中的“19851211”这个字符串是出生年份为1985年的出生年月日信息。在获得字符串过滤结果后,加速单元的核将字符串过滤结果存入存储区。
在本申请实施例中,在进行字符串数据处理,尤其是进行过滤操作时,将与字符串数据处理相关的数据传输到加速单元,由加速单元获得字符串过滤结果后,将字符串过滤结果传输回主计算设备从而减轻主计算设备进行字符串过滤的负担,解放主计算设备的算力用于其他任务。
在一种可能实现的方式中,字符串数据处理过程还可以包括:通过核,如果确定操作类型信息指示的数据操作类型为掩码操作和过滤操作,则从操作参数中确定过滤操作参数,并利用过滤操作参数对待处理数据执行过滤操作,获得字符串过滤结果,并根据字符串过滤结果确定掩码操作参数,利用掩码操作参数对待处理数据执行掩码操作,获得字符串过滤掩码结果,并将字符串过滤掩码结果存入存储区,之后从存储区返回字符串过滤掩码结果到主计算设备。
在部分业务场景中,通过过滤方法判断满足过滤操作参数的字符串后,不仅需要这个判断结果,可能还需要对判断结果对应的字符串进行保留,将不满足过滤操作参数的字符串删除。例如,以上述过滤操作中的实例为例,在获得字符串过滤结果“1”“0”“0”后,根据字符串过滤结果确定掩码操作参数为“100”,对待处理数据“19851211”“19841211”“19861211”执行掩码操作后获得的字符串过滤掩码结果为“19851211”。
在本申请实施例中,通过执行过滤操作后获得的字符串过滤结果确定掩码操作参数,进而执行掩码操作的方式,能够结合过滤操作与掩码操作,使字符串数据处理方式更加灵活,以适配更复杂的业务需求。
在一种可能实现的方式中,过滤参数包括第一目标字符串和目标过滤操作符。对应的,利用过滤参数对待处理数据执行过滤操作,获得字符串过滤结果的过程还可以包括:
基于待处理数据与第一目标字符串是否符合目标过滤操作符,确定待处理数据对应的字符串过滤结果。
过滤参数是在待过滤数据中进行字符串过滤所用的参数。它包括第一目标字符串和目标过滤操作符等。第一目标字符串是指在待过滤数据中过滤的字符串。例如,如果要在所有公司人员名单中识别出XYZ部门下属人员的数据,则第一目标字符串是XYZ。在待处理数据中过滤第一目标字符串,并不一定是要在待处理数据中找到与第一目标字符串相同的数据段,而是要找到与第一目标字符串符合预定关系的数据段。目标过滤操作符即体现该预定关系的操作符。如果要在所有公司人员名单中识别出XYZ部门下属人员的数据,则目标过滤操作符是“大于”。因为XYZ集团下属的实体名为XYZa、XYZb等,在某一字段大于XYZ的情况下,基本上表示该字段是XYZ部门下属的人员数据。
在本申请实施例中,通过目标过滤操作符,能够使过滤操作不局限于过滤与第一目标字符串相同的数据段,提高过滤操作的灵活性,以匹配更复杂的业务需求。
在一种可能实现的方式中,所述基于所述待处理数据与所述第一目标字符串是否符合所述目标过滤操作符,确定待处理数据对应的字符串过滤结果的过程还可以包括:
将待处理数据按照预设长度进行补位,得到补位后待处理数据,将补位后待处理数据分成多个待处理数据段,基于每个待处理数据段与第一目标字符串是否符合目标过滤操作符,确定待处理数据段对应的子过滤结果,最后将多个待处理数据段对应的子过滤结果整合成字符串过滤结果。
可以将待处理数据按照前述加速单元的存储区中的存储单元的长度进行补位,得到补位后待处理数据。例如,补位前的待处理数据是“abcde”,按照64位进行补位后(不足64位的用0补位),得到补位后的待处理数据“abcde000”,这里的每个字符代表8位。补位的作用在于:待处理数据中的各个字符串的长度可以不同,在各个字符串长度不同的情况下,为了方便比较,比较可行的方法是将它们按照一个较大的标准位数进行补位,从而统一后续的比较过程。待处理数据段的长度大于或等于第一目标字符串的长度。
在本申请实施例中,通过对待处理数据进行补位,能够提高过滤操作的处理效率。
图3是本申请一实施例的字符串掩码方法的步骤流程图,如图3所示,该字符串掩码方法包括如下步骤:
步骤301、根据字符串在待处理数据中所处的位置,从第二目标字符串中确定与该字符串对应的数据位。
掩码操作参数包括第二目标字符串,第二目标字符串包括至少一个数据位,数据位的值为第一值或第二值,且第二目标字符串包括的数据位的数量与待处理数据包括的字符串的数量相等。例如,第一值可以为1,第二值可以为0,第二目标字符串可以是“1001”。在进行掩码操作时,需要对待处理数据包括的字符串分别进行处理,对于每个字符串,首先确定字符串在待处理数据中所处的位置。例如,待处理数据为“19851211”“19841211”“19861211”“19831211”,则字符串“19851211”在待处理数据中所处的位置为1,字符串“19841211”在待处理数据中所处的位置为2,字符串“19861211”在待处理数据中所处的位置为3。字符串“19831211”在待处理数据中所处的位置为4,确定字符串“19851211”在第二目标字符串中对应的数据位为1,字符串“19841211”在第二目标字符串中对应的数据位为2,字符串“19861211”在第二目标字符串中对应的数据位为3,字符串“19831211”在第二目标字符串中对应的数据位为4。
步骤302、如果该字符串对应的数据位的值为第一值,在待处理数据中保留该字符串,并结束当前流程。
步骤303、如果该字符串对应的数据位的值为第二值,将该字符串从待处理数据中删除。
在确定出字符串在第二目标字符串中对应的数据位后,判断数据位的值是第一值还是第二值,在为第一值时,保留该字符串。如上述实例,字符串“19851211”在第二目标字符串中对应的数据位为1,第二目标字符串是“1001”,数据位1的值为1,则保留该字符串。字符串“19861211”在第二目标字符串中对应的数据位为3,数据位3的值为0,则删除该字符串。
需要说明的是,上述示例中,掩码操作的对象为数字字符串,但掩码操作并不限于纯数字的字符串,也可以是英文字符串,或混合字符串等,上述掩码操作可以如表1所示。
表1
在本申请实施例中,根据确定待处理数据的字符串在第二目标字符串中对应的数据位,进而以数据位中的值对字符串进行掩码的方式,具有较高的效率。
图4是本申请一实施例的字符串数据处理装置的示意图,如图4所示,该字符串数据处理装置400包括:接收模块401、读取模块402、处理模块403和发送模块404。
接收模块401,用于从所述主计算设备接收待处理数据、操作类型信息和操作参数,并存储在所述加速单元的存储区。
主计算设备发送的操作类型信息指示了需要对字符串数据进行的操作,如掩码、过滤中的至少一个操作。例如,主计算设备执行任务。当任务的一部分需要进行字符串掩码时,将与字符串掩码相关的数据传输到加速单元的存储区,接收模块401对相应数据进行存储。
读取模块402,用于通过所述加速单元的核,从所述存储区读取所述待处理数据、所述操作类型信息和所述操作参数。
在接收模块401接收主计算设备发送的待处理数据、操作类型信息和操作参数,并存储在加速单元的存储区后,读取模块402通过加速单元的核从存储区读取相应的数据,以执行字符串数据处理操作。加速单元的存储区中可以包含有若干个储存单元,在接收模块401进行存储的时候可以将待处理数据、操作类型信息和操作参数分别存储至不同的存储单元,以便读取模块402通过加速单元的核进行读取。假设存储单元长度假设为64位。待处理数据为“abcde0ff98v9”,共12个字符,每个字符占用8位,共96位。因此,接收模块401将96位的前64位(8个字符)分配到第一个存储单元中,将96位的后31位(4个字符)分配到第二个存储单元,在读取模块402读取时,通过加速单元的核从存储区的第一个存储单元和第二个存储中连续读出待处理数据。
处理模块403,用于通过所述核,如果确定所述操作类型信息指示的数据操作类型为掩码操作,则从所述操作参数中确定掩码操作参数,并利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串掩码结果,并将所述字符串掩码结果存入所述存储区。
由于操作类型信息可以是掩码、过滤等中的至少一个操作,因此,在处理模块403确定操作类型信息指示的数据操作类型为掩码操作时,处理模块403从操作参数中确定掩码操作参数。掩码操作是将待处理数据对应的字符串中的至少部分数据删除,例如,待处理数据对应的字符串为“1234”“124”“123”,掩码操作参数为“100”,且定义掩码操作参数中的“0”为删除,则处理模块403根据掩码操作参数对待处理数据执行掩码操作后,获得的字符串掩码结果为“1234”。在处理模块403获得字符串掩码结果后,处理模块403通过加速单元的核将字符串掩码结果存入存储区。
发送模块404,用于从所述存储区返回所述字符串掩码结果到所述主计算设备。
发送模块404从加速单元的存储区返回字符串掩码结果到主计算设备,完成字符串掩码处理,进而完成字符串处理任务。
在本申请实施例中,在进行字符串数据处理,尤其是进行掩码操作时,将与字符串数据处理相关的数据传输到加速单元,由加速单元获得字符串掩码结果后,将字符串掩码结果传输回主计算设备从而减轻主计算设备进行字符串掩码的负担,解放主计算设备的算力用于其他任务。由于加速单元具有核与存储区分离的结构,通过核与存储区的配合,提高了字符串掩码的执行效率。
需要说明的是,上述字符串数据处理装置400内的接收模块401、读取模块402、处理模块403和发送模块404之间的信息交互、执行过程等内容,由于与前述字符串数据处理方法实施例基于同一构思,具体内容可参见前述字符串数据处理方法实施例中的叙述,此处不再赘述。
本实施例中,提供一种加速单元500,如图5所示,加速单元500可以包括但不限于:至少一个处理单元510、至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530。存储单元520存储有程序代码,程序代码可以被处理单元510执行,使得处理单元510执行本说明书上述示例性方法的描述部分中描述的根据本发明各种示例性实施方式的步骤。加速单元500中的处理单元510可以为上述任一实施例中的加速单元的核。
存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(ROM)5203。
存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
加速单元500也可以与一个或多个外部设备600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与加速单元500交互的设备通信,和/或与使得该加速单元500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550进行。并且,加速单元500还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器560通过总线530与加速单元500的其他模块通信。应当明白,尽管图中未示出,加速单元500可以使用其他硬件和/或软件模块实现,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
本申请实施例的加速单元500,在进行字符串数据处理,尤其是进行掩码操作时,将与字符串数据处理相关的数据传输到加速单元,由加速单元获得字符串掩码结果后,将字符串掩码结果传输回主计算设备从而减轻主计算设备进行字符串掩码的负担,解放主计算设备的算力用于其他任务。由于加速单元具有核与存储区分离的结构,通过核与存储区的配合,提高了字符串掩码的执行效率。
本实施例中,提供了一种计算机可读存储介质,存储用于使一机器执行如本文的字符串数据处理方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本申请的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
本实施例中,提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一对应的操作。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。尽管已经相对于一个或多个实现方式示出并描述了本申请,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变形和修改。本申请包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本说明书的示范性实现方式中的功能的公开结构不等同。
即,以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
另外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了使本领域任何技术人员能够实现和使用本申请,本申请给出了以上描述。在以上描述中,为了解释的目的而列出了各个细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实施例中,不会对公知的过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
需要说明的是,在不冲突的前提下,本申请描述的各个实施例和/或各个实施例中的技术特征可以任意的相互组合,组合之后得到的技术方案也应落入本申请的保护范围。
应理解,本申请实施例中的具体的例子只是为了帮助本领域技术人员更好地理解本申请实施例,而非限制本申请实施例的范围,本领域技术人员可以在上述实施例的基础上进行各种改进和变形,而这些改进或者变形均落在本申请的保护范围内。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种字符串数据处理方法,用于与主计算设备配套使用的加速单元,其特征在于,包括:
从所述主计算设备接收待处理数据、操作类型信息和操作参数,并存储在所述加速单元的存储区;
通过所述加速单元的核,从所述存储区读取所述待处理数据、所述操作类型信息和所述操作参数;
通过所述核,如果确定所述操作类型信息指示的数据操作类型为掩码操作,则从所述操作参数中确定掩码操作参数,并利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串掩码结果,并将所述字符串掩码结果存入所述存储区;
从所述存储区返回所述字符串掩码结果到所述主计算设备。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述核,如果确定所述操作类型信息指示的数据操作类型为过滤操作,则从所述操作参数中确定过滤操作参数,并利用所述过滤操作参数对所述待处理数据执行过滤操作,获得字符串过滤结果,并将所述字符串过滤结果存入所述存储区;
从所述存储区返回所述字符串过滤结果到所述主计算设备。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述核,如果确定所述操作类型信息指示的数据操作类型为掩码操作和过滤操作,则从所述操作参数中确定过滤操作参数,并利用所述过滤操作参数对所述待处理数据执行过滤操作,获得字符串过滤结果,并根据所述字符串过滤结果确定掩码操作参数,利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串过滤掩码结果,并将所述字符串过滤掩码结果存入所述存储区;
从所述存储区返回所述字符串过滤掩码结果到所述主计算设备。
4.根据权利要求2所述的方法,其特征在于,所述过滤参数包括第一目标字符串和目标过滤操作符;
对应的,所述利用所述过滤参数对所述待处理数据执行所述过滤操作,获得字符串过滤结果,包括:
基于所述待处理数据与所述第一目标字符串是否符合所述目标过滤操作符,确定所述待处理数据对应的字符串过滤结果。
5.根据权利要求4所述的方法,其特征在于,所述基于所述待处理数据与所述第一目标字符串是否符合所述目标过滤操作符,确定所述待处理数据对应的字符串过滤结果,包括:
将所述待处理数据按照预设长度进行补位,得到补位后待处理数据;
将所述补位后待处理数据分成多个待处理数据段,其中,所述待处理数据段的长度大于或等于所述第一目标字符串的长度;
基于每个所述待处理数据段与所述第一目标字符串是否符合所述目标过滤操作符,确定所述待处理数据段对应的子过滤结果;
将多个所述待处理数据段对应的子过滤结果整合成所述字符串过滤结果。
6.根据权利要求1所述的方法,其特征在于,所述掩码操作参数包括第二目标字符串,所述第二目标字符串包括至少一个数据位,所述数据位的值为第一值或第二值,且所述第二目标字符串包括的数据位的数量与所述待处理数据包括的字符串的数量相等;
对应的,所述利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串掩码结果,包括:
根据所述待处理数据中字符串所处的位置,对所述待处理数据包括的字符串分别进行如下处理后,获得所述待处理数据对应的字符串掩码结果:根据字符串在所述待处理数据中所处的位置,从所述第二目标字符串中确定与该字符串对应的数据位,如果该字符串对应的数据位的值为所述第一值,则在所述待处理数据中保留该字符串,如果该字符串对应的数据位的值为所述第二值,则将该字符串从所述待处理数据中删除。
7.一种字符串数据处理装置,用于与主计算设备配套使用的加速单元,其特征在于,包括:
接收模块,用于从所述主计算设备接收待处理数据、操作类型信息和操作参数,并存储在所述加速单元的存储区;
读取模块,用于通过所述加速单元的核,从所述存储区读取所述待处理数据、所述操作类型信息和所述操作参数;
处理模块,用于通过所述核,如果确定所述操作类型信息指示的数据操作类型为掩码操作,则从所述操作参数中确定掩码操作参数,并利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串掩码结果,并将所述字符串掩码结果存入所述存储区;
发送模块,用于从所述存储区返回所述字符串掩码结果到所述主计算设备。
8.一种加速单元,其特征在于,包括:
存储区,用于从所述主计算设备接收并存储待处理数据、操作类型信息和操作参数,其中,所述操作类型信息至少包括掩码操作信息;
核,用于从所述存储区读取所述待处理数据、所述操作类型信息和所述操作参数,如果确定所述操作类型信息指示的数据操作类型为掩码操作,则从所述操作参数中确定掩码操作参数,并利用所述掩码操作参数对所述待处理数据执行掩码操作,获得字符串掩码结果,并将所述字符串掩码结果存入所述存储区。
9.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令指示计算设备执行如权利要求1-6中任一项所述的方法对应的操作。
CN202311396406.1A 2023-10-25 2023-10-25 字符串数据处理方法、装置、加速单元和计算机存储介质 Pending CN117370023A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311396406.1A CN117370023A (zh) 2023-10-25 2023-10-25 字符串数据处理方法、装置、加速单元和计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311396406.1A CN117370023A (zh) 2023-10-25 2023-10-25 字符串数据处理方法、装置、加速单元和计算机存储介质

Publications (1)

Publication Number Publication Date
CN117370023A true CN117370023A (zh) 2024-01-09

Family

ID=89405522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311396406.1A Pending CN117370023A (zh) 2023-10-25 2023-10-25 字符串数据处理方法、装置、加速单元和计算机存储介质

Country Status (1)

Country Link
CN (1) CN117370023A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190310943A1 (en) * 2018-04-04 2019-10-10 Sap Se Cache Partitioning to Accelerate Concurrent Workloads
US20220171628A1 (en) * 2021-11-25 2022-06-02 Intel Corporation Techniques to encode and decode for character class matching
CN115346566A (zh) * 2021-05-14 2022-11-15 三星电子株式会社 主机、存储器模块以及存储器装置的操作方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190310943A1 (en) * 2018-04-04 2019-10-10 Sap Se Cache Partitioning to Accelerate Concurrent Workloads
CN115346566A (zh) * 2021-05-14 2022-11-15 三星电子株式会社 主机、存储器模块以及存储器装置的操作方法
US20220171628A1 (en) * 2021-11-25 2022-06-02 Intel Corporation Techniques to encode and decode for character class matching

Similar Documents

Publication Publication Date Title
CN111090628B (zh) 一种数据处理方法、装置、存储介质及电子设备
CN109558525B (zh) 一种测试数据集的生成方法、装置、设备和存储介质
US20190065518A1 (en) Context aware delta algorithm for genomic files
CN114710467B (zh) Ip地址存储方法、装置和硬件网关
CN103428184A (zh) 通讯报文的转换方法及系统
CN114385091A (zh) 网盘盘符的实现方法、装置、网盘及存储介质
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN108111598B (zh) 云盘数据的下发方法、装置及存储介质
CN111414339B (zh) 一种文件的处理方法、系统、装置、设备及介质
CN111444680B (zh) 生僻字的编码扩展方法、装置、存储介质及电子设备
CN117370023A (zh) 字符串数据处理方法、装置、加速单元和计算机存储介质
CN107491460B (zh) 适配系统的数据映射方法及装置
CN107832341B (zh) Agnss用户去重统计方法
CN115617800A (zh) 数据读取方法、装置、电子设备及存储介质
CN108989902A (zh) 一种弹幕消息的处理方法、装置、终端和存储介质
CN115033544A (zh) 一种基于关系数值的数据压缩方法、装置、设备和介质
CN110795405B (zh) 一种分片数据还原方法、终端设备及存储介质
CN114493799A (zh) 一种分库分表管理专车订单数据的方法及系统
CN113849550A (zh) 数据处理方法及装置
CN108182127B (zh) 一种提取已删除文件碎片的方法、终端设备及存储介质
CN108509478B (zh) 规则引擎文件的拆分调用方法、电子装置及存储介质
CN107566506B (zh) 一种数据访问方法及装置
CN111680014A (zh) 共享文件的获取方法、装置、电子设备及存储介质
CN113656411B (zh) 用于图数据入库的方法及其装置
CN116028526A (zh) 适用于rbc系统维护数据的存储查询方法、设备及介质

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