CN115878035A - 一种数据读取方法、装置、电子设备及存储介质 - Google Patents
一种数据读取方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115878035A CN115878035A CN202211541057.3A CN202211541057A CN115878035A CN 115878035 A CN115878035 A CN 115878035A CN 202211541057 A CN202211541057 A CN 202211541057A CN 115878035 A CN115878035 A CN 115878035A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- memory
- read
- reading
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据读取方法、装置、电子设备及存储介质。该方法包括:基于接收到的当前数据读取请求,确定待读取数据的所属文件及待读取数据的存储片区;在所属文件中的文件数据已被缓存至文件内存的情况下,从文件内存中读取与存储片区对应的第一文件子数据,将第一文件子数据确定为待读取数据,并将待读取数据发送至数据请求节点;其中,文件内存中包括:基于历史数据读取请求缓存的所属文件中的文件数据,文件数据包括至少一个存储片区对应的文件子数据。本发明实施例的技术方案,通过直接对文件内存进行读取的操作,减少了对本地磁盘的访问次数,降低本地磁盘负载,实现提高数据计算的工作效率和稳定性的效果。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据读取方法、装置、电子设备及存储介质。
背景技术
在大数据分布式计算场景下,都离不开对数据的Shuffle(洗牌)操作,Shuffle操作过程的本质是将Map(映射)节点获得的数据使用分区器进行划分,并将数据分发给对应Reducer(归约)节点的过程。
现有技术的分布式计算场景下,Reducer节点基于Shuffle服务获取Shuffle数据时,需要对本地磁盘中每个Map节点的对应的每个存储片区均进行数据访问,以完成Shuffle操作。但是,在实现本发明的过程中,发现现有技术至少存在以下技术问题:在大数据计算场景下,对本地磁盘访问量大;且在获取各存储片区的Shuffle数据时,易产生随机读的情况,导致磁盘负载较高,影响分布式计算引擎的工作效率及稳定性。
发明内容
本发明实施例提供了一种数据读取方法、装置、电子设备及存储介质,以减少对本地磁盘的访问次数,降低本地磁盘负载,实现提高数据计算的工作效率和稳定性的目的。
根据本发明的一方面,提供了一种数据读取方法,包括:
基于接收到的当前数据读取请求,确定待读取数据的所属文件及所述待读取数据的存储片区;
在所述所属文件中的文件数据已被缓存至文件内存的情况下,从所述文件内存中读取与所述存储片区对应的第一文件子数据,将所述第一文件子数据确定为所述待读取数据,并将所述待读取数据发送至数据请求节点;
其中,所述文件内存中包括:基于历史数据读取请求缓存的所述所属文件中的文件数据,所述文件数据包括至少一个片区对应的文件子数据。
根据本发明的另一方面,提供了一种数据读取装置,该装置包括:
所属文件确定模块,用于基于接收到的当前数据读取请求,确定待读取数据的所属文件及所述待读取数据的存储片区;
待读取数据发送模块,用于在所述所属文件中的文件数据已被缓存至文件内存的情况下,从所述文件内存中读取与所述存储片区对应的第一文件子数据,将所述第一文件子数据确定为所述待读取数据,并将所述待读取数据发送至数据请求节点;
其中,所述文件内存中包括:基于历史数据读取请求缓存的所述所属文件中的文件数据,所述文件数据包括至少一个存储片区对应的文件子数据。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据读取方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据读取方法。
本发明实施例的技术方案,基于接收到的当前数据读取请求,确定待读取数据的所属文件及待读取数据的存储片区,在所属文件中的文件数据已被缓存至文件内存的情况下,通过在从文件内存中读取与存储片区对应的第一文件子数据,以将第一文件子数据作为待读取数据发送至数据请求节点;由于文件数据可通过历史数据读取请求缓存至文件内存中,因此在执行历史数据读取请求之后的当前数据读取请求时,则通过直接对文件内存进行读取的操作,减少了对本地磁盘的访问次数,降低本地磁盘负载,实现提高数据计算的工作效率和稳定性的效果。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中提供的一种数据读取方法的示意图;
图2是根据本发明实施例提供的一种数据读取方法的流程图;
图3是根据本发明实施例提供的另一种数据读取方法的流程图;
图4是根据本发明实施例提供的一种数据读取过程的架构图;
图5是根据本发明实施例提供的一种获取待读取数据的过程示意图
图6是根据本发明实施例提供的一种数据读取方法装置的结构示意图;
图7是实现本发明实施例的数据读取方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“等”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1是现有技术中提供的一种数据读取方法得示意图;如图1所示,分布式计算场景下,可包括M个Map节点,P个Reducer节点;在执行Shuffle操作时,Map节点生成Shuffle数据,并将Shuffle数据按照不同存储片区分别写入至本地磁盘,每个Map节点对应的存储片区数量为N;其中,M、P和N为正整数。Reducer节点获取本地磁盘存储的Shuffle数据时,向部署于Map节点的Shuffle服务发送请求,Shuffle服务访问本地磁盘以获取到获取Shuffle数据。但上述数据读取方法存在以下问题:获取本地磁盘中存储的数据时,需要访问本地磁盘总次数最多M×N次,在大数据计算场景下,对本地磁盘访问量大;且在获取各存储片区的Shuffle数据时,易产生随机读的情况,导致磁盘负载较高,影响分布式计算引擎的工作效率及稳定性。
为解决当前Shuffle数据读取过程中存在的问题,本技术方案提供过一种数据读取方法。本技术方案中分布式计算引擎可包括MapReduce引擎、Spark引擎等,Spark引擎本身具有ESS(External Shuffle Service)服务,基于spark on yarn模式,该服务部署在所有分布式计算节点上。
需要说明的是,分布式计算场景下,可包括至少一个Map节点和至少一个Reducer节点,Map节点执行Shuffle操作将产生与Shuffle操作对应的Shuffle数据,并将Shuffle数据按照不同存储片区分别写入至本地磁盘,Map节点上会生成一个数据文件和一个索引文件,其中,数据文件用于存储Shuffle数据,索引文件用于提供Shuffle数据的存储信息。在Shuffle数据写入至本地磁盘后,可将Shuffle数据的元信息发送至服务驱动器;其中,元信息可包括执行Shuffle操作的应用的标识、Shuffle操作标识及Shuffle数据对应的存储片区标识中的至少一项;服务驱动器可为Spark Driver。Reducer节点可通过向服务器驱动器发送请求以获取想要的Shuffle数据的元信息,基于元信息生成数据读取请求,并将数据读取请求发送至Map节点,以基于Shuffle服务获取Shuffle数据。例如,Shuffle服务可为ESS服务提供的数据拉取服务。
基于本实施例的方案,可基于获取到的数据读取请求,启动Shuffle服务,从文件内存中直接获取Shuffle操作产生的Shuffle数据。从而在获取到Shuffle数据的同时,无需对本地磁盘进行访问,减轻获取数据操作对本地磁盘产生的负荷。
图2是根据本发明实施例提供的一种数据读取方法的流程图。本实施例可适用于读取Shuffle数据的情况,该方法可以由数据读取装置来执行,该数据读取装置可以采用硬件和/或软件的形式实现。
如图2所示,本实施例的方法具体可包括:
S110、基于接收到的当前数据读取请求,确定待读取数据的所属文件及待读取数据的存储片区。
其中,待读取数据可为洗牌操作产生的洗牌数据;当前数据读取请求可为Reducer节点向Map节点发送的,用于获取待读取数据的请求。当前数据读取请求中可包括待读取数据的数据标识和数据对应的存储片区标识等信息。所属文件为包含待读取数据的文件。
本实施例中,当前数据读取请求中还可包括待读取数据对应的所属文件的文件标识,以基于文件标识确定出待读取数据的所属文件;或者,可基于当前数据读取请求确定出待读取数据的数据标识,通过按照预设解析规则解析数据标识,确定出所属文件的文件标识,从而确定出待读取数据的所属文件。
S120、在所属文件中的文件数据已被缓存至文件内存的情况下,从文件内存中读取与存储片区对应的第一文件子数据,将第一文件子数据确定为待读取数据,并将待读取数据发送至数据请求节点。
其中,文件内存中包括:基于历史数据读取请求缓存的所属文件中的文件数据,文件数据包括至少一个存储片区对应的文件子数据。第一文件子数据为待读取数据的存储片区中存储的文件子数据。
在具体实施中,可预先确定所属文件中的文件数据是否已执行缓存操作,即是否已将文件数据缓存至文件内存中,若已缓存至内存中,则可直接从文件内存中读取存储片区对应的第一文件子数据,作为待读取数据。若未缓存至内存中,则可通过访问本地磁盘的方式,获取与存储片区对应的数据作为待读取数据;或者,可将文件数据先缓存至文件内存,再从文件内存中获取与存储片区对应的数据作为待读取数据。
本实施例中,在获取到待读取数据后,可将待读取数据发送至数据请求节点。可选的,在分布式计算场景下,数据请求节点包括分布式计算节点,当前数据读取请求包括分布式计算节点发送的计算任务执行请求,待读取数据包括执行计算任务时所需的待读取洗牌数据。本实施例中,基于接收到的当前数据读取请求,确定待读取数据的所属文件的具体实现方式可包括:当接收到至少一个分布式计算节点发送的计算任务执行请求时,基于计算任务执行请求确定待读取洗牌数据的所属文件。
示例性的,数据请求节点可为用于进行分布式计算的Reducer节点。在具体实施中,可同时接收到不同分布式计算节点发送的计算任务执行请求,针对接收到的每个计算任务执行请求,均可确定出对应的待读取洗牌数据的洗牌数据标识,从而基于洗牌数据标识,确定出待读取洗牌数据的所属文件。
本实施例中,在所属文件中的文件数据已被缓存至文件内存的情况下,可直接从文件内存中读取待读取洗牌数据,从而用于分布式计算,减少对本地磁盘的读取次数,有助于提高分布式计算时的计算效率。
在具体实施中,为提高文件内存的空间利用率,减少空间资源浪费,在从文件内存中读取与存储片区对应的第一文件子数据之后,还包括:确定第一文件子数据的当前存储时长,若当前存储时长大于或等于预设存储时长,则在所属文件对应的文件内存中,清除掉第一文件子数据;基于文件数据的文件占用内存量、文件内存的总存储量和第一文件子数据的占用内存量,更新文件内存的当前剩余存储量。
具体的,在第一文件子数据被读取后,可随机或周期性检测第一文件子数据在文件内存中的当前存储时长,并根据预先设定的预设存储时长,比较当前存储时长与预设存储时长的大小;其中,预设存储时长可基于文件内存中的数据被读取的频率和/或被读取的时间间隔进行确定。
示例性的,频率越高,可设定预设存储时长越长,频率越低,可设定的预设存储时长越短;或者,时间间隔越长,则可设定的预设存储时长越短,时间间隔越短,则可设定的预设存储时长越长,从而对于不经常被读取的数据,便于及时进行清除以减少文件内存的空间占用程度。
若当前存储时长大于或等于预设存储时长,则说明第一文件子数据在文件内存中的存储时间较长,为节省文件内存的空间资源,可对在文件内存中存储较长时间的第一文件子数据进行数据清除操作,以减少空间资源浪费。若当前存储时长小于预设存储时长,则说明第一文件子数据在文件内存中的存储时间较短,为避免第一文件子数据之后再次被读取时,需要进行本地磁盘访问操作,可将第一文件子数据存储至文件内存中。
示例性的,若第一文件子数据仅会被读取一次,则预设存储时长可设定为0分钟,即在第一文件子数据被读取后,可直接对第一文件子数据进行清除操作,以不影响数据读取的前提下,减少文件内存的资源浪费。
进一步的,在清除掉第一文件子数据后,可更新文件内存的当前剩余存储量,以便于在存储新的文件数据时,了解文件内存的剩余资源情况。具体的,可确定文件占用内存量减去第一文件子数据的占用内存量的差值,总存储量减去该差值,即可确定出文件内存的当前剩余存储量。
本实施例中,通过对当前存储时长大于或等于预设存储时长的第一文件子数据进行清除操作,以节省文件内存的内存资源,有助于提高文件内存的空间利用率;并且,在清除数据后,及时更新文件内存的当前剩余存储量,便于准确地了解文件内存的剩余资源情况。
本实施例中,还包括:在文件内存中,确定出预设时长内读取次数小于预设次数阈值的第三文件子数据,对第三文件子数据进行数据清理操作。
需要说明的是,本领域技术人员可根据历史时间段内,各文件子数据被读取的时间间隔的均值,确定预设时长;基于该时间间隔内文件子数据被读取的次数的均值,确定预设次数阈值。
为了节省文件内存的存储空间,可及时清除读取频次较少的文件子数据。在具体实施中,可检测文件内存中存储的各文件子数据在预设时长内的读取次数;例如,预设时长可为两小时;若检测到预设时长内读取次数小于预设次数阈值的第三文件子数据,说明第三文件子数据的读取频次较少,为减少存储空间的占用,可对该第三文件子数据进行数据清理操作,释放第三文件子数据在文件内存中占用的空间资源;若各文件子数据在预设时长内读取次数均大于或等于预设次数阈值,则说明各文件子数据均为读取频次较高的数据,则可保留至文件内存中,以便于通过文件内存获取文件子数据,减少本地磁盘的读取压力。
本实施例通过对文件内存中的各文件子数据在预设时长内读取次数进行检测,从而根据文件子数据的被读取频次,及时对文件内存的存储的文件子数据进行数据清理操作,以减少对文件内存的空间资源浪费。
本发明实施例的技术方案,基于接收到的当前数据读取请求,确定待读取数据的所属文件及待读取数据的存储片区,在所属文件中的文件数据已被缓存至文件内存的情况下,通过在从文件内存中读取与存储片区对应的第一文件子数据,以将第一文件子数据作为待读取数据发送至数据请求节点;由于文件数据可通过历史数据读取请求缓存至文件内存中,因此在执行历史数据读取请求之后的当前数据读取请求时,则通过直接对文件内存进行读取的操作,减少了对本地磁盘的访问次数,降低本地磁盘负载,实现提高数据计算的工作效率和稳定性的效果。
图3是根据本发明实施例提供的另一种数据读取方法的流程图。本实施例在上述实施例的基础上,还包括:在所属文件中文件数据未被缓存至文件内存的情况下,获取与所属文件中的文件数据,将文件数据缓存至与所属文件对应的文件内存中;读取文件内存中与存储片区对应的第一文件子数据,将第一文件子数据确定为待读取数据,并将待读取数据发送至数据请求节点。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。如图2所示,该方法包括:
S210、基于接收到的当前数据读取请求,确定待读取数据的所属文件及待读取数据的存储片区。
S220、在所属文件中的文件数据已被缓存至文件内存的情况下,从文件内存中读取与存储片区对应的第一文件子数据,将第一文件子数据确定为待读取数据,并将待读取数据发送至数据请求节点。
其中,文件内存中包括:基于历史数据读取请求缓存的所属文件中的文件数据,文件数据包括至少一个存储片区对应的文件子数据。
S230、在所属文件中文件数据未被缓存至文件内存的情况下,获取与所属文件中的文件数据,将文件数据缓存至与所属文件对应的文件内存中;读取文件内存中与存储片区对应的第一文件子数据,将第一文件子数据确定为待读取数据,并将待读取数据发送至数据请求节点。
具体的,在文件数据未被缓存至文件内存时,为确保能正常获取到与当前读取请求对应的待读取数据,可直接通过访问本地磁盘的方式,获取到与确定出的存储片区对应的第一文件子数据作为待读取数据,以完成对待读取数据的获取过程。
或者,为便于后续再次读取待读取数据时,可直接从文件内存中获取到待读取数据,减少后续读取过程对本地磁盘的访问压力,则可通过访问本地磁盘,获取到文件数据,并按照在本地磁盘中的文件子数据与存储片区的对应关系,将文件数据中的各文件子数据分别存储至文件内存。进一步的,可按照待读取数据的存储片区,在文件内存中确定出与存储片区对应的第一文件子数据,将第一文件子数据确定为待读取数据发送至数据请求节点即可。
本实施例中,在所属文件中文件数据未被缓存至文件内存的情况下,可通过一次对本地磁盘的访问操作,获取文件数据,并将文件数据缓存至文件内存,从而在后续需要读取文件子数据时,直接从文件内存中读取即可,大大减少了对本地磁盘的访问次数。
在具体实施中,将文件数据缓存至与所属文件对应的文件内存中的实现方式可为:确定文件内存的当前剩余存储量和总存储量;若文件数据满足预设条件,则将文件数据缓存至文件内存中。
其中,预设条件包括文件数据的文件占用内存量小于或等于预设内存阈值,且文件占用内存量与当前剩余存储量之和小于或等于总存储量。
具体的,可确定文件占用内存量与当前剩余存储量的和值,若该和值大于总存储量,则说明文件内存无法满足文件数据的内存需求。进一步的,可预先设定预设内存阈值,该预设内存阈值可为文件内存中允许存储的文件数据的最大占用内存量;当文件占用内存量大于预设内存阈值时,则可确定文件内存无法满足文件数据的内存需求。
为确保文件数据能够成功缓存至文件内存,可确定文件数据是否同时满足以下两个条件:1、文件占用内存量小于或等于预设内存阈值;2、文件占用内存量与当前剩余存储量之和小于或等于总存储量。当同时满足上述两个条件时,则可将文件数据缓存至文件内存中;并可基于文件占用内存量,更新文件内存的当前剩余存储量。
进一步的,若文件数据不满足上述两个条件中的任意一个,则说明文件内存无法对文件数据进行缓存,则可基于当前数据读取请求,直接通过访问本地磁盘的方式,获取到待读取数据。
本实施例中,通过确定文件数据是否满足预设条件,快速、高效地确定出文件内存是否能够成功对文件数据进行缓存,提高了缓存文件数据的有效性和准确性。
可选的,在获取与所属文件中的文件数据之前,还包括:若在所属文件对应的布隆过滤器中,未查询到与所属文件对应的文件信息,则确定在接收到数据读取请求之前,文件数据在历史时间段内被请求的被请求次数;若被请求次数小于预设阈值,则确定所属文件中文件数据未被缓存至文件内存。
其中,布隆过滤器用于存储被请求次数大于或等于预设阈值,且未被存储至文件内存的文件数据对应的文件信息。示例性的,预设阈值可为1。
在具体实施中,可预先构建布隆过滤器,在确定文件数据是否被缓存至文件内存时,可通过预先构建的布隆过滤器,确定布隆过滤器中是否能够查询到与所属文件对应的文件信息。其中,文件信息可为:所属文件的文件名和/或文件标识,按照布隆过滤器的存储格式进行转换后得到的数组。
在确定文件数据是否已被存储至文件内存时,当布隆过滤器中未查到与所属文件对应的文件信息时,说明文件数据被请求的次数小于预设阈值,仍未在布隆过滤器中生成过记录;或者,文件数据被请求的次数对于或等于预设阈值,文件数据已被存储至文件内存。例如,文件数据被首次请求,未在布隆过滤器中生成记录,同时未存储至文件内存。因此,在确定出布隆过滤器中未查到与所属文件对应的文件信息时,可进一步确定在历史时间段内,该文件数据的被请求次数是否小于预设阈值,若小于预设阈值,则确定所属文件中文件数据未被缓存至文件内存。
本实施例中,通过布隆过滤器,可快速、准确地确定出文件数据是否已被存储至文件内存中,增加查询过程的便利性,便于提高获取待读取数据的效率。
进一步的,在所属文件对应的布隆过滤器中,未查询到与所属文件对应的文件信息后,为准确地确定出文件数据的缓存状态,还可包括:若被请求次数大于或等于预设阈值,则确定预先存储的缓存操作记录中,是否包括所属文件的缓存信息;若缓存操作记录包括缓存信息,则确定所属文件已被缓存至文件内存中。
具体的,对于已完成缓存操作的文件数据,可将对应的所属文件的信息记录至缓存操作记录中。例如,将所属文件的文件名和/或文件标识存储至缓存操作记录中。在所属文件对应的布隆过滤器中,未查询到与所属文件对应的文件信息,且被请求次数大于或等于预设阈值时,为避免出现由于并发数据读取请求导致的确定失误的情况,可基于缓存操作记录确定文件数据是否被缓存至文件内存。
需要说明的是,并发数据读取请求是请求的时间间隔小于预设时间间隔的两个或两个以上的数据读取请求,可将并发数据读取请求几乎看作同时产生,并发数据读取请求用于获取同一个并发文件子数据。示例性的,预设阈值可设定为1,第一数据读取请求和第二数据读取请求的请求时间之间的间隔小于预设间隔值,则可将第一数据读取请求和第二数据读取请求均确定为并发数据读取请求,用于读取相同的并发文件子数据;第一数据读取请求和第二数据读取请求可看作是同时经过布隆过滤器,由于二者均为首次对文件子数据进行请求,则在布隆过滤器中均未查询到对应的文件信息;进一步的,对于未查询到文件信息的读取请求,则需要确定历史时间段内被请求的被请求次数是否大于或等于预设阈值,对于第一数据读取请求,当前为首次请求,则历史时间段内被请求的被请求次数为0,说明第一数据读取请求请求的并发文件子数据对应的并发文件数据,未在文件内存中缓存过,则可继续判断并发文件数据是否满足预设条件,以及是否对并发文件数据进行缓存操作;而对于第二数据读取请求,当前已成为对并发文件子数据的第二次请求,则被请求次数等于预设阈值1,按照上述说明可知,对于不存在并发读取数据请求的情况,则可确定第二数据读取请求对应的并发文件数据已被存储至文件内存,但是为防止此时第一数据读取请求对应的并发文件数据未完成缓存操作,导致对并发文件数据的缓存情况确定失误,可基于缓存操作记录确定并发文件数据是否被缓存至文件内存,
具体的,缓存信息可为所属文件的缓存时间、缓存数据量、文件标识等信息,若缓存操作记录中包括所属文件的缓存信息,则确定所属文件对应的文件数据已被缓存至文件内存中;若不包括,则说明文件数据未被缓存至文件内存中。
本实施例通过缓存操作记录确定文件数据是否已被缓存,能够提高确定文件数据是否已被缓存的准确性和有效性,避免由于并发数据读取请求导致的确定失败。
本实施例中,还包括:若缓存操作记录中不包括缓存信息;或者,在所属文件对应的布隆过滤器中查询到文件信息,则读取本地磁盘中存储的与存储片区对应的第二文件子数据;将第二文件子数据确定为待读取数据,并将待读取数据发送至数据请求节点。
具体的,若缓存操作记录中不包括缓存信息,则说明文件数据未被进行缓存操作;若所属文件对应的布隆过滤器能够查询到文件数据对应的文件信息,同样说明文件数据未被进行缓存操作,则为了能够成功获取到待读取数据,可从访问本地磁盘,通过本地磁盘获取到与存储片区对应的第二文件子数据作为待读取数据,以将待读取数据发送至请求节点。
本实施例中,对于未被存储至本地磁盘的文件数据,可采用访问本地磁盘的方式,以确保能够成功获取与当前读取数据请求对应的待读取数据。
在具体实施中,若文件数据不满足预设条件,则不进行将文件数据缓存至文件内存的操作,为了便于后续查询文件数据的缓存状态,本实施例还包括:若文件数据不满足预设条件,则基于文件数据生成所属文件对应的文件信息,并将文件信息存储至所属文件对应的布隆过滤器中。
具体的,对于不满足预设条件的文件数据,可直接基于文件数据确定出对应的所属文件,并生成所属文件在布隆过滤器中对应的文件信息,将所述文件信息存储至布隆过滤器中,以更新布隆过滤器中存储的未进行缓存操作的文件数据的文件信息。从而提高布隆过滤器查询未被缓存至文件内存的文件数据的准确性,提高查询便利性。
上文中对于数据读取方法对应的实施例进行了详细描述,为了使本领域技术人员进一步清楚本方法的技术方案,下文中给出具体的应用场景。
图4是根据本发明实施例提供的一种数据读取过程的架构图;图4中以包含一个Map节点以及P个Reducer节点为例,每个Map节点对应的存储片区数量为N;其中,M、P和N为正整数。对分布式计算场景下的shuffle数据读取过程进行说明。各Reducer节点可分别向Map节点发送shuffle请求,Map节点基于部署在Map节点的Shuffle服务,可将获取到shuffle数据发送至对应的Reducer节点。如图4所示,Map节点上会生成一个数据文件(DataFile)和一个索引文件(Index File),其中,数据文件用于存储Shuffle数据,索引文件用于提供Shuffle数据的存储信息。当接收到shuffle请求时,可按照存片区的形式,通过一次本地磁盘访问,直接将请求的shuffle数据对应的所属文件的文件数据,均缓存至预先构建的文件内存中,之后每次接收到下一shuffle请求时,可直接从文件内存中读取对应存储片区的shuffle数据;例如,第二次shuffle请求可从文件内存获取存储片区1中的shuffle数据,第二次shuffle请求可从文件内存获取存储片区2中的shuffle数据,最终通过第N次shuffle请求从文件内存获取存储片区N中的shuffle数据。并在读取shuffle数据后,在文件内存中对其进行清除操作,直到文件内存中存储的数据为空。
本实施例中,当Map节点接收到Reducer节点发送的用于读取shuffle数据的shuffle请求后,获取待读取数据的过程可参见图5,包含以下步骤:
S310、接收当前shuffle请求
该当前shuffle请求可包括,包括:请求数据的应用标识(AppId)、shuffle文件标识(ShuffleId)、待获取的shuffle数据的存储片区的起始片区号及结束片区号等信息。并根据接收的当前shuffle请求,确定shuffle数据所属的shuffle文件的shuffle文件名称。
S320、判断与当前请求的shuffle文件对应的布隆过滤器中是否存在shuffle文件信息
其中,布隆过滤器的可按照AppId.ShuffleId.BloomFilter的格式进行定义,AppId.ShuffleId.BloomFilter与shuffle文件相对应的。
示例性的,该布隆过滤器是基于对于shuffle文件的第一次数据读取请求不满足缓存至文件内存的预设条件时,基于shuffle文件名称构建的,用于存储不满足预设条件的shuffle文件的文件信息;从而保证第一次数据读取请求时,若shuffle文件不满足缓存至文件内存的预设条件,对于该shuffle文件的下一次数据读取请求,通过布隆过滤器能够快速地确定出该shuffle文件。
具体的,若布隆过滤器中包括该shuffle文件的文件信息,则不再对其进行是否满足预设条件的判断,可执行S390,直接按照现有技术中的原始处理逻辑获取文件子数据;其中,原始处理逻辑为通过访问本地磁盘的方式,获取与第一次数据读取请求或下一次数据读取请求对应的shuffle数据。
S330、若布隆过滤器中不包括该shuffle文件的文件信息,则确定当前shuffle请求是否为对该shuffle数据的第一次请求,若为第一次请求,则执行S340;若不为第一次请求,则执行S350。
S340、判断shuffle文件是否满足缓存至文件内存的预设条件;预设条件可为:当shuffle文件的大小,满足以下两个条件,说明shuffle文件满足预设条件,则执行S360;若不满足以下任一条件,说明shuffle文件不满足预设条件,则执行S370;
条件1:shuffle文件的文件数据的文件占用内存量小于或等于预设内存阈值;其中预设内存阈值可为64MB;
条件2:文件占用内存量与文件内存中的当前剩余存储量之和小于或等于文件内存的总存储量;其中,总存储量可为400MB。
S350、通过缓存操作记录,确定shuffle文件的文件数据是否已缓存至文件内存,若已缓存,则执行S380;若未缓存,则执行S390。示例性的,可通过ESS服务内部的数据存储结构ConcurrentHashMap<文件名,shuffleCache>,来判断shuffle文件的文件数据是否已缓存。
S360、将文件数据缓存至文件内存中,并更新文件内存的已使用内存量;执行S380。例如,可通过将shuffle文件的文件数据存储后的数据存储结构可为ConcurrentHashMap<文件名,shuffleCache>。
S370、将shuffle文件的文件信息存储至布隆过滤器中,并按照原始处理逻辑获取shuffle数据。
S380、获取与当前shuffle请求对应的存储片区的文件子数据,作为shuffle数据,并从文件内存中清理掉该shuffle数据,基于清理后的结果更新文件内存的已使用内存量,将获取到的shuffle数据反馈至发送请求的Reducer节点。
示例性的,可根据shuffle请求的存储片区的起始片区号及结束片区号从ESS服务的内存数据结构ConcurrentHashMap<文件名,shuffleCache>中获取对应的shuffle数据。
S390、按照原始数量逻辑,获取shuffle数据。
本实施例中,通过将文件数据缓存至内存的方式,可将对本地磁盘访问的总次数有效降低至N此,减少对本地磁盘的访问量;避免产生随机读的情况,降低磁盘负载,提升任务运行时效,确保分布式计算引擎的工作效率和稳定性,节省服务资源。
图6是根据本发明实施例提供的一种数据读取方法装置的结构示意图,该装置用于执行上述任意实施例所提供的数据读取方法。该装置与上述各实施例的数据读取方法属于同一个发明构思,在数据读取装置的实施例中未详尽描述的细节内容,可以参考上述数据读取方法的实施例。如图6所示,该装置包括:
所属文件确定模块10,用于基于接收到的当前数据读取请求,确定待读取数据的所属文件及待读取数据的存储片区;
待读取数据发送模块11,用于在所属文件中的文件数据已被缓存至文件内存的情况下,从文件内存中读取与存储片区对应的第一文件子数据,将第一文件子数据确定为待读取数据,并将待读取数据发送至数据请求节点;
其中,文件内存中包括:基于历史数据读取请求缓存的所属文件中的文件数据,文件数据包括至少一个存储片区对应的文件子数据。
在本发明实施例中任一可选技术方案的基础上,可选的,还包括:
文件数据缓存模块,用于在所属文件中文件数据未被缓存至文件内存的情况下,获取与所属文件中的文件数据,将文件数据缓存至与所属文件对应的文件内存中;
第一文件子数据读取模块,用于读取文件内存中与存储片区对应的第一文件子数据,将第一文件子数据确定为待读取数据,并将待读取数据发送至数据请求节点。
在本发明实施例中任一可选技术方案的基础上,可选的,文件数据缓存模块,包括:
总存储量确定单元,用于确定文件内存的当前剩余存储量和总存储量;
文件数据缓存单元,用于若文件数据满足预设条件,则将文件数据缓存至文件内存中;
其中,预设条件包括文件数据的文件占用内存量小于或等于预设内存阈值,且文件占用内存量与当前剩余存储量之和小于或等于总存储量。
在本发明实施例中任一可选技术方案的基础上,可选的,文件数据缓存模块还包括:
被请求次数确定单元,用于在获取与所属文件中的文件数据之前,若在所属文件对应的布隆过滤器中,未查询到与所属文件对应的文件信息,则确定在接收到数据读取请求之前,文件数据在历史时间段内被请求的被请求次数;若被请求次数小于预设阈值,则确定所属文件中文件数据未被缓存至文件内存;
其中,布隆过滤器用于存储被请求次数大于或等于预设阈值,且未被存储至文件内存的文件数据对应的文件信息。
在本发明实施例中任一可选技术方案的基础上,可选的,文件数据缓存模块还包括:
文件信息生成单元,用于若文件数据不满足预设条件,则基于文件数据生成所属文件对应的文件信息,并将文件信息存储至所属文件对应的布隆过滤器中。
在本发明实施例中任一可选技术方案的基础上,可选的,文件数据缓存模块还包括:
缓存信息确定单元,用于若被请求次数大于或等于预设阈值,则确定预先存储的缓存操作记录中,是否包括所属文件的缓存信息;若缓存操作记录包括缓存信息,则确定所属文件已被缓存至文件内存中。
在本发明实施例中任一可选技术方案的基础上,可选的,文件数据缓存模块还包括:
第二文件子数据读取单元,用于若缓存操作记录中不包括缓存信息;或者,在所属文件对应的布隆过滤器中查询到文件信息,则读取本地磁盘中存储的与存储片区对应的第二文件子数据;
待读取数据发送单元,用于将第二文件子数据确定为待读取数据,并将待读取数据发送至数据请求节点。
在本发明实施例中任一可选技术方案的基础上,可选的,还包括:
当前存储时长确定模块,用于在从文件内存中读取与存储片区对应的第一文件子数据之后,确定第一文件子数据的当前存储时长,若当前存储时长大于或等于预设存储时长,则在所属文件对应的文件内存中,清除掉第一文件子数据;
当前剩余存储量更新模块,用于基于文件数据的文件占用内存量、文件内存的总存储量和第一文件子数据的占用内存量,更新文件内存的当前剩余存储量。
在本发明实施例中任一可选技术方案的基础上,可选的,还包括:
第三文件子数据清理模块,用于在文件内存中,确定出预设时长内读取次数小于预设次数阈值的第三文件子数据,对第三文件子数据进行数据清理操作。
在本发明实施例中任一可选技术方案的基础上,可选的,数据请求节点包括分布式计算节点,当前数据读取请求包括分布式计算节点发送的计算任务执行请求,待读取数据包括执行计算任务时所需的待读取洗牌数据;
所属文件确定模块10,包括:
所属文件确定单元,用于当接收到至少一个分布式计算节点发送的计算任务执行请求时,基于计算任务执行请求确定待读取洗牌数据的所属文件。
本发明实施例的技术方案,基于接收到的当前数据读取请求,确定待读取数据的所属文件及待读取数据的存储片区,在所属文件中的文件数据已被缓存至文件内存的情况下,通过在从文件内存中读取与存储片区对应的第一文件子数据,以将第一文件子数据作为待读取数据发送至数据请求节点;由于文件数据可通过历史数据读取请求缓存至文件内存中,因此在执行历史数据读取请求之后的当前数据读取请求时,则通过直接对文件内存进行读取的操作,减少了对本地磁盘的访问次数,降低本地磁盘负载,实现提高数据计算的工作效率和稳定性的效果。
值得注意的是,上述数据读取装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
图7是实现本发明实施例的数据读取方法的电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图7所示,电子设备20包括至少一个处理器21,以及与至少一个处理器21通信连接的存储器,如只读存储器(ROM)22、随机访问存储器(RAM)23等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器21可以根据存储在只读存储器(ROM)22中的计算机程序或者从存储单元28加载到随机访问存储器(RAM)23中的计算机程序,来执行各种适当的动作和处理。在RAM23中,还可存储电子设备20操作所需的各种程序和数据。处理器21、ROM22以及RAM23通过总线24彼此相连。输入/输出(I/O)接口25也连接至总线24。
电子设备20中的多个部件连接至I/O接口25,包括:输入单元26,例如键盘、鼠标等;输出单元27,例如各种类型的显示器、扬声器等;存储单元28,例如磁盘、光盘等;以及通信单元29,例如网卡、调制解调器、无线通信收发机等。通信单元29允许电子设备20通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器21可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器21的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器21执行上文所描述的各个方法和处理,例如数据读取方法。
在一些实施例中,数据读取方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元28。在一些实施例中,计算机程序的部分或者全部可以经由ROM22和/或通信单元29而被载入和/或安装到电子设备20上。当计算机程序加载到RAM23并由处理器21执行时,可以执行上文描述的数据读取方法的一个或多个步骤。备选地,在其他实施例中,处理器21可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据读取方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (13)
1.一种数据读取方法,其特征在于,包括:
基于接收到的当前数据读取请求,确定待读取数据的所属文件及所述待读取数据的存储片区;
在所述所属文件中的文件数据已被缓存至文件内存的情况下,从所述文件内存中读取与所述存储片区对应的第一文件子数据,将所述第一文件子数据确定为所述待读取数据,并将所述待读取数据发送至数据请求节点;
其中,所述文件内存中包括:基于历史数据读取请求缓存的所述所属文件中的文件数据,所述文件数据包括至少一个存储片区对应的文件子数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述所属文件中文件数据未被缓存至文件内存的情况下,获取与所述所属文件中的文件数据,将所述文件数据缓存至与所述所属文件对应的文件内存中;
读取所述文件内存中与所述存储片区对应的第一文件子数据,将所述第一文件子数据确定为所述待读取数据,并将所述待读取数据发送至数据请求节点。
3.根据权利要求2所述的方法,其特征在于,所述将所述文件数据缓存至与所述所属文件对应的文件内存中,包括:
确定所述文件内存的当前剩余存储量和总存储量;
若所述文件数据满足预设条件,则将所述文件数据缓存至所述文件内存中;
其中,所述预设条件包括所述文件数据的文件占用内存量小于或等于预设内存阈值,且所述文件占用内存量与所述当前剩余存储量之和小于或等于所述总存储量。
4.根据权利要求3所述的方法,其特征在于,在所述获取与所述所属文件中的文件数据之前,还包括:
若在所述所属文件对应的布隆过滤器中,未查询到与所述所属文件对应的文件信息,则确定在接收到所述数据读取请求之前,所述文件数据在历史时间段内被请求的被请求次数;
若所述被请求次数小于预设阈值,则确定所述所属文件中文件数据未被缓存至文件内存;
其中,所述布隆过滤器用于存储所述被请求次数大于或等于所述预设阈值,且未被存储至所述文件内存的文件数据对应的文件信息。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述文件数据不满足预设条件,则基于所述文件数据生成所述所属文件对应的文件信息,并将所述文件信息存储至所述所属文件对应的布隆过滤器中。
6.根据权利要求4所述的方法,其特征在于,还包括:
若所述被请求次数大于或等于所述预设阈值,则确定预先存储的缓存操作记录中,是否包括所述所属文件的缓存信息;
若所述缓存操作记录包括所述缓存信息,则确定所述所属文件已被缓存至所述文件内存中。
7.根据权利要求6所述的方法,其特征在于,还包括:
若所述缓存操作记录中不包括所述缓存信息;或者,在所述所属文件对应的布隆过滤器中查询到所述文件信息,则读取本地磁盘中存储的与所述存储片区对应的第二文件子数据;
将所述第二文件子数据确定为所述待读取数据,并将所述待读取数据发送至数据请求节点。
8.根据权利要求1所述的方法,其特征在于,在所述从所述文件内存中读取与所述存储片区对应的第一文件子数据之后,还包括:
确定所述第一文件子数据的当前存储时长,若所述当前存储时长大于或等于预设存储时长,则在所述所属文件对应的文件内存中,清除掉所述第一文件子数据;
基于所述文件数据的文件占用内存量、所述文件内存的总存储量和所述第一文件子数据的占用内存量,更新所述文件内存的当前剩余存储量。
9.根据权利要求1所述的方法,其特征在于,还包括:
在所述文件内存中,确定出预设时长内读取次数小于预设次数阈值的第三文件子数据,对所述第三文件子数据进行数据清理操作。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述数据请求节点包括分布式计算节点,所述当前数据读取请求包括所述分布式计算节点发送的计算任务执行请求,所述待读取数据包括执行计算任务时所需的待读取洗牌数据;
所述基于接收到的当前数据读取请求,确定待读取数据的所属文件,包括:
当接收到至少一个分布式计算节点发送的所述计算任务执行请求时,基于所述计算任务执行请求确定所述待读取洗牌数据的所属文件。
11.一种数据读取装置,其特征在于,包括:
所属文件确定模块,用于基于接收到的当前数据读取请求,确定待读取数据的所属文件及所述待读取数据的存储片区;
待读取数据发送模块,用于在所述所属文件中的文件数据已被缓存至文件内存的情况下,从所述文件内存中读取与所述存储片区对应的第一文件子数据,将所述第一文件子数据确定为所述待读取数据,并将所述待读取数据发送至数据请求节点;
其中,所述文件内存中包括:基于历史数据读取请求缓存的所述所属文件中的文件数据,所述文件数据包括至少一个存储片区对应的文件子数据。
12.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的数据读取方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-10中任一项所述的数据读取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211541057.3A CN115878035A (zh) | 2022-12-02 | 2022-12-02 | 一种数据读取方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211541057.3A CN115878035A (zh) | 2022-12-02 | 2022-12-02 | 一种数据读取方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115878035A true CN115878035A (zh) | 2023-03-31 |
Family
ID=85765661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211541057.3A Pending CN115878035A (zh) | 2022-12-02 | 2022-12-02 | 一种数据读取方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878035A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319450A (zh) * | 2023-11-27 | 2023-12-29 | 成都秦川物联网科技股份有限公司 | 基于物联网的超声波计量仪表数据交互方法、装置及设备 |
-
2022
- 2022-12-02 CN CN202211541057.3A patent/CN115878035A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319450A (zh) * | 2023-11-27 | 2023-12-29 | 成都秦川物联网科技股份有限公司 | 基于物联网的超声波计量仪表数据交互方法、装置及设备 |
CN117319450B (zh) * | 2023-11-27 | 2024-02-09 | 成都秦川物联网科技股份有限公司 | 基于物联网的超声波计量仪表数据交互方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6191691B2 (ja) | 異常検出装置、制御方法、及びプログラム | |
CN115878035A (zh) | 一种数据读取方法、装置、电子设备及存储介质 | |
CN115291806A (zh) | 一种处理方法、装置、电子设备及存储介质 | |
US10747773B2 (en) | Database management system, computer, and database management method | |
CN111737204A (zh) | 文件目录遍历方法、装置、设备和介质 | |
CN114402313A (zh) | 标签更新方法、装置、电子设备及存储介质 | |
CN114518848B (zh) | 存储数据的处理方法、装置、设备和介质 | |
CN110909062A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN112860506A (zh) | 监控数据的处理方法、装置、系统和存储介质 | |
CN115639966A (zh) | 一种数据写入方法、装置、终端设备及存储介质 | |
CN115617800A (zh) | 数据读取方法、装置、电子设备及存储介质 | |
CN115617549A (zh) | 线程解耦方法、装置、电子设备及存储介质 | |
CN113191136B (zh) | 数据处理方法及装置 | |
CN114564149A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN113760176A (zh) | 数据存储方法和装置 | |
CN116991781B (zh) | 一种请求处理装置、方法、芯片、存储介质及电子设备 | |
CN111090633A (zh) | 一种分布式文件系统的小文件聚合方法、装置及设备 | |
CN111858579A (zh) | 数据存储方法及装置 | |
CN115858472A (zh) | 一种数据处理方法、装置、服务器及介质 | |
CN113220230B (zh) | 数据导出方法及其装置、电子设备以及存储介质 | |
CN115757959A (zh) | 去重方法、装置、设备、介质及产品 | |
CN115599828A (zh) | 一种信息处理方法、装置、设备、存储介质 | |
CN117632027A (zh) | 一种磁盘空间处理方法、装置、设备及存储介质 | |
CN115905121A (zh) | 一种文件处理方法、装置、设备及存储介质 | |
CN116361388A (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 |