CN111382335B - 一种数据拉取方法、装置及存储介质 - Google Patents
一种数据拉取方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111382335B CN111382335B CN202010195566.XA CN202010195566A CN111382335B CN 111382335 B CN111382335 B CN 111382335B CN 202010195566 A CN202010195566 A CN 202010195566A CN 111382335 B CN111382335 B CN 111382335B
- Authority
- CN
- China
- Prior art keywords
- data
- pulled
- pulling
- pieces
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开一种数据拉取方法,以数据条数作为粒度进行拉取,在进行数据拉取时预先设置了每次拉取所需拉取的数据条数即预设拉取的数据条数,以第i次数据拉取为例,从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数。然后,确定该N条数据的大小,若该N条数据的大小大于驱动端的内存,说明如果拉取该N条数据将使得驱动端内存压力过大,为了避免内存压力过大导致的内存溢出,可以根据驱动端的内存减小N,减小后的N所对应的数据的大小小于驱动端的内存。这样,根据减小后的N进行第i次拉取时,拉取的数据不会使得驱动端内存压力过大,避免由于内存压力过大导致的内存溢出,进而避免软件或设备的崩溃。
Description
技术领域
本申请涉及大数据技术领域,特别是涉及一种数据拉取方法、装置及存储介质。
背景技术
随着互联网时代的到来,互联网在人们日常的学习、工作、生活和娱乐中得到广泛的应用,人们日常的各种事务都可以通过网络来呈现。因此,互联网中每天都在产生着海量的数据。
相关技术提供两种驱动(Driver)端数据拉取方案,一种方案是将整个数据集拉取到Driver端;另一种方案是每次拉取数据集中的一个分区数据到Driver端。
然而这两种方案都有可能由于拉取的数据过大造成Driver端内存溢出,进而导致软件或设备的崩溃。
发明内容
为了解决上述技术问题,本申请提供了一种数据拉取方法、装置及存储介质,避免由于内存压力过大导致的内存溢出,进而避免软件或设备的崩溃。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供一种数据拉取方法,所述方法包括:
从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数;
确定所述N条数据的大小;
若所述N条数据的大小大于驱动端的内存,根据所述驱动端的内存减小N的值,减小后的N所对应的数据的大小小于所述驱动端的内存;
根据减小后的N进行所述第i次拉取。
第二方面,本申请实施例提供一种数据拉取装置,所述装置包括第一获取单元、确定单元、减小单元和拉取单元:
所述第一获取单元,用于从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数;
所述确定单元,用于确定所述N条数据的大小;
所述减小单元,用于若所述N条数据的大小大于驱动端的内存,根据所述驱动端的内存减小N,减小后的N所对应的数据的大小小于所述驱动端的内存;
所述拉取单元,用于根据减小后的N进行所述第i次拉取。
第三方面,本申请实施例提供一种用于数据拉取的设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行第一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面所述的方法。
由上述技术方案可以看出,本申请实施例以数据条数作为粒度进行拉取,在进行拉取时预先设置了每次拉取所需拉取的数据条数,以第i次拉取为例,从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数。然后,确定该N条数据的大小,若该N条数据的大小大于驱动端的内存,则说明如果拉取该N条数据将使得驱动端内存压力过大,为了避免由于内存压力过大导致的内存溢出,可以根据驱动端的内存减小N,减小后的N所对应的数据的大小小于驱动端的内存。这样,根据减小后的N进行第i次拉取时,拉取的数据不会使得驱动端内存压力过大,避免由于内存压力过大导致的内存溢出,进而避免软件或设备的崩溃。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为弹性分布式数据集的结构示意图;
图2为本申请实施例提供的一种数据拉取方法的系统架构示意图;
图3为本申请实施例提供的一种数据拉取方法的流程图;
图4为本申请实施例提供的一种数据拉取方法的流程图;
图5a为本申请实施例提供的一种数据拉取装置的结构图;
图5b为本申请实施例提供的一种数据拉取装置的结构图;
图5c为本申请实施例提供的一种数据拉取装置的结构图;
图6为本申请实施例提供的一种用于数据拉取设备的结构图;
图7为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
为了解决现有技术存在的不足,本发明实施例引入集群的概念,先将数据缓存在集群中,然后每次从集群拉取N条数据,N可以配置。在Driver端内存压力大时,可减小N,解决Driver端内存溢出的问题。
以服务器集群是Spark集群,需要拉取的数据可以为弹性分布式数据集
(Resilient Distributed DataSet,RDD)中的数据为例,弹性分布式数据集包括多个数据分区(Partititon),即将RDD中的数据划分成多个区域,每个区域包括一定数量的数据,每个区域可以称为一个数据分区,例如数据分区1、数据分区2和数据分区3,参见图1所示。
相关技术中提供两种Driver端数据拉取方案,一种方案是将整个数据集拉取到Driver端,即将整个RDD数据一次性拉取到Driver端,但RDD数据过大会造成Driver内存溢出;另一种方案是每次拉取数据集中的一个数据分区到Driver端,例如第一次拉取数据分区1中的数据、第二次拉取数据分区2中的数据、第三次拉取数据分区3中的数据,但如果某个数据分区过大,Driver仍然会有内存溢出。
为了解决上述技术问题,本申请实施例提供一种数据拉取方法,该方法以数据条数作为粒度进行拉取,在进行拉取时,若确定出Driver端内存压力过大时,可以根据Driver端内存压力减小当前所需拉取的数据条数N的值,从而避免由于内存压力过大导致Driver端内存溢出,进而避免软件或设备的崩溃。
本申请实施例所提供的方法涉及到云技术领域,云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
例如涉及大数据(Big data),大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
例如涉及所谓人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。本申请实施例可以通过人工智能挖掘待拉取数据,从而利用本申请实施例提供的数据拉取方法进行数据拉取。
为了便于理解,本申请实施例将结合应用场景进行介绍。参见图2,图2为本申请实施例提供的数据拉取方法的系统架构示意图。该系统架构中包括客户端201和服务器集群202,客户端201可以通过Driver端203从服务器集群202拉取数据。客户端201和Driver端203可以在终端设备上运行,客户端201例如可以是浏览器、邮箱、社交软件等,终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能手表等;服务器集群202例如可以是Spark集群等,但并不局限于此。
当客户端201与服务器集群202进行交互时,例如在服务器集群202查看日志数据时,需要从服务器集群202拉取数据,在本实施例中,客户端201可以通过Driver端203从服务器集群202拉取数据,这就需要Driver端203先从服务器集群202拉取数据。本申请实施例以数据条数作为粒度进行数据拉取,通过多次数据拉取向客户端201返回全部待拉取数据。
以第i次拉取为例,从待拉取数据中获取第i次拉取时预设拉取的N条数据,其中,i为正整数,N为大于1的整数。待拉取数据为客户端201与服务器集群202进行交互时需要获取的数据,若该交互为查询某一天的日志数据,那么,待拉取数据为该天的日志数据。其中,预设拉取的N条数据是在进行拉取前预先设置的每次所需拉取的数据条数。
然后,确定N条数据的大小,若该N条数据的大小大于驱动端的内存,则说明如果拉取该N条数据将使得Driver端203内存压力过大,为了避免由于内存压力过大导致的内存溢出,可以根据Driver端203的内存减小N的值,使得减小后的N所对应的数据的大小小于Driver端203的内存。这样,根据减小后的N进行第i次拉取,拉取的数据不会使得驱动端内存压力过大,避免由于内存压力过大导致的内存溢出。
接下来,结合附图对本申请实施例提供的数据拉取方法进行详细介绍。
参见图3,图3示出了一种数据拉取方法的流程图,方法包括:
S301、从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数。
当进行第i次数据拉取时,首先从待拉取数据中获取第i次拉取时预设拉取的N条数据,即可能需要从待拉取数据中拉取的数据,从而确定是否拉取该N条数据。其中,N的值可以是用户预先自定义的,也可以是根据第i-1次拉取结果确定的。
可以理解的是,在本申请实施例中,在进行拉取之前,用户可以自定义每次拉取的数据条数(第一数据条数),例如每次拉取3条数据,则N的初始值为3,即第一数据条数为3。根据自定义的第一数据条数,可以确定出每次拉取时拉取的是哪些数据。
因此,在一些可能的实现方式中,在S301之前,可以获取每次拉取时预设拉取的第一数据条数,根据第一数据条数确定每次拉取时预设拉取的数据的第一数据信息,该第一数据信息用于体现预设拉取的数据在待拉取数据中的位置。确定出的第一数据信息可以记录到采样图中,以便在执行数据拉取过程中可以根据采样图中记录的第一数据信息知晓每次数据拉取需要拉取的数据。
例如,待拉取数据包括9条,假设用户自定义第一数据条数为3,则共分三次拉取,第一次拉取前3条数据,第二次拉取第4至第6条数据,第三次拉取最后3条数据。
可以理解的是,若i=1,即进行第一次数据拉取,则S301中获取的N条数据中N的值即为上述自定义的第一数据条数(例如初始值3)。若i>1,那么,S301中获取的N条数据中N的值与第i-1次拉取的数据的数据条数相同,其可以为初始值3,也可能是在初始值3的基础上减小后的值。其中,第i-1次拉取的方式与第i次类似,本申请实施例仅以第i次为例进行介绍。
本申请实施例提供的数据拉取方法可以应用到Spark集群与用户客户端交互场景中,在该场景中,待拉取数据为弹性分布式数据集(RDD)中的数据,弹性分布式数据集包括多个数据分区(Partititon),每个Partititon中包括至少一条数据。以待拉取数据为一天的日志数据为例,则RDD中包括该天的日志数据,每个小时对应的日志数据可以分别作为一个Partititon。
在这种情况下,由于每次拉取的数据可能来自与不同的Partititon,每次拉取的数据不仅与预设拉取的数据条数有关,还与每个Partititon中包括的数据条数有关。因此,为了准确地确定出每次预设拉取哪些数据,在S301之前,收集每个数据分区的第二数据条数,即每个数据分区中包括的数据条数,此时,在根据第一数据条数确定每次拉取时预设拉取的数据的第一数据信息时,可以根据第二数据条数和第一数据条数确定第一数据信息,第一数据信息可以包括预设拉取的数据在对应数据分区中的数据标识和所对应数据分区的分区标识,第一数据信息可以记录在分区采样图(smaplePartitionMap)中,其表示形式可以为<partitonid,[startIndex,endIndex)>,其中,partitonid表示数据分区的分区标识,[startIndex,endIndex)表示预设拉取的数据在对应数据分区中的数据标识,具体为通过起始数据标识(表示为startIndex)和终止数据标识(表示为endIndex)表示预设拉取哪些数据。
例如,待拉取数据RDD包括两个Partititon,第一个Partititon的分区标识为0,第二个Partititon的分区标识为1,收集这两个Partititon的第二数据条数分别为4、5,假设用户自定义的第一数据条数为3,即定义了如何进行数据拉取。用户自定义的数据拉取过程共分三次拉取,根据第一数据条数和第二数据条数可以确定第一次从第一个Partititon拉取前3条数据;第二次从第一个Partititon拉取第4条,以及从第二个Partititon拉取前2条;第三次从第二个Partititon拉取剩下3条数据。那么,通过记录第一数据信息到smaplePartitionMap,第一次拉取的数据对应的第一数据信息为<0,[0,3)>,即拉取第一个Partititon中数据标识为0、1、2的前3条数据;第二次拉取的数据对应的第一数据信息为<0,[3,4)>和<1,[0,2)>,即拉取第一个Partititon中数据标识为3的数据以及拉取第二个Partititon中数据标识为0、1的前2条数据;第三次拉取的数据对应的第一数据信息为<1,[2,5)>,即拉取第一个Partititon中数据标识为2、3、4的后3条数据。
需要说明的是,由于服务器集群中的数据可能随时发生变化,例如删除,当确定待拉取数据后,为了保证待拉取数据不被删除或修改,可以将待拉取数据全部存储在服务器集群中,例如缓存在内存或磁盘中。若待拉取数据为RDD数据,则可以通过缓存函数将RDD数据缓存在内存或磁盘上。从而避免在数据拉取过程中数据丢失,另外,在网络拥塞的情况下,由于待拉取数据已经进行了缓存,从而使得数据拉取的更加顺畅,提高数据拉取的效率。
S302、确定所述N条数据的大小。
为了尽量避免由于拉取的数据过大,而造成内存溢出,因此,在本申请实施例中,每次进行拉取时,可以确定如果拉取该N条数据是否可能造成Driver端内存溢出。确定如果拉取该N条数据是否可能造成Driver端内存溢出的方式可以是确定出该N条数据的大小,然后,将该N条数据的大小与Driver端内存大小比较,从而确定是否拉取该N条数据。
假设第i次拉取时预设拉取的N条数据为上述涉及的第一个Partititon中的第4条,以及从第二个Partititon中的前2条,则确定这三条数据的总大小。
S303、若所述N条数据的大小大于驱动端的内存,根据所述驱动端的内存减小N的值,减小后的N所对应的数据的大小小于所述驱动端的内存。
若该N条数据的大小大于Driver端的内存,则说明如果拉取该N条数据将使得驱动端内存压力过大,为了避免由于内存压力过大导致的内存溢出,可以根据Driver端的内存减小N,使得减小后的N所对应的数据的大小小于Driver端的内存。
例如S302中N条数据为上述涉及的第一个Partititon中的第4条,以及从第二个Partititon中的前2条,即N=3,若确定出该N条数据的大小大于Driver端的内存,则可以减小N的值,直到减小后的N所对应的数据的大小小于Driver端的内存,将减小后的N的值作为第i次拉取时实际拉取的数据条数。
若该N条数据的大小小于Driver端的内存,则说明如果拉取该N条数据并不会造成驱动端内存压力过大,不会导致内存溢出,因此,可以直接拉取该N条数据。
S304、根据减小后的N进行所述第i次拉取。
在对N的值进行调整后,根据减小后的N进行所述第i次拉取。由于记录的第一数据信息体现了每次拉取可能拉取哪些数据,故可以根据第一数据信息进行拉取。
在按照上述方法完成拉取数据后,可以将拉取到的数据返回至客户端供客户端使用。
若服务器集群是Spark集群,则可以通过Spark的应用程序接口(ApplicationProgramming Interface,API)的任务执行函数下发任务拉取数据。任务执行函数可以通过分区拉取函数读取分区采样图中的信息以拉取数据。
在待拉取数据为RDD中的数据,弹性分布式数据集包括多个Partititon场景中,任务执行函数通过分区拉取函数拉取数据时,可以设置两个参数,第一个是参数是任务上下文,表示可以从该参数里获取当前Partition的分区标识;第二个参数是iterator,iterator是该Partition所有数据的迭代器。在拉取数据时,通过任务上下文读取函数从分区采样图里获取从该Partition中拉取的数据的开始数据标识和终止数据标识[startIndex,endIndex),然后从iterator拉取该区间的数据。
由上述技术方案可以看出,本申请实施例以数据条数作为粒度进行拉取,在进行拉取时预先设置了每次拉取所需拉取的数据条数,以第i次拉取为例,从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数。然后,确定该N条数据的大小,若该N条数据的大小大于驱动端的内存,则说明如果拉取该N条数据将使得驱动端内存压力过大,为了避免由于内存压力过大导致的内存溢出,可以根据驱动端的内存减小N,减小后的N所对应的数据的大小小于驱动端的内存。这样,根据减小后的N进行第i次拉取时,拉取的数据不会使得驱动端内存压力过大,避免由于内存压力过大导致的内存溢出,进而避免软件或设备的崩溃。
可以理解的是,由于每次拉取时实际拉取的数据与根据第一数据条数确定出的预设拉取的数据可能有所不同,因此,为了保证可以准确地获取每次实际拉取的数据,需要记录已拉取的数据的第二数据信息,第二数据信息用于体现已拉取的数据在待拉取数据中的位置,从而知晓已经拉取了哪些数据,下一次继续拉取哪些数据。
在待拉取数据为RDD中的数据,弹性分布式数据集包括多个Partititon的场景中,第二数据信息与第一数据信息类似,可以包括已拉取数据在对应数据分区中的数据标识和所对应数据分区的分区标识。
在这种情况下,若i>1,S301的一种可能的实现方式是根据第一数据信息和第i-1次拉取对应的第二数据信息获取所述N条数据。
继续以上述RDD包括两个Partititon的情况为例,根据自定义的第一数据条数确定的每次拉取的第一数据信息分别为第一次拉取对应的第一数据信息为<0,[0,3)>、第二次拉取对应的第一数据信息为<0,[3,4)>和<1,[0,2)>、第三次拉取对应的第一数据信息为<1,[2,5)>。若第i-1次拉取对应的第二数据信息为<0,[0,3)>,也就是说,第i-1次拉取实际拉取的数据与记录的预设拉取的数据相同,则根据第二数据信息和第一数据信息可以确定S301中获取的N条数据为<0,[3,4)>和<1,[0,2)>所标识的数据。
相应的,若i>1,S304的一种可能的实现方式可以是根据减小后的N、所述第一数据信息和所述第i-1次拉取对应的所述第二数据信息进行所述第i次拉取。
继续以上述RDD包括两个Partititon的情况为例,若第i-1次拉取对应的第二数据信息为<0,[0,3)>,那么,根据记录的第一数据信息,第i次拉取预设拉取的数据可能是<0,[3,4)>和<1,[0,2)>所标识的数据(即N=3),若根据S301-S303的步骤将N减小为2,也就是说第i次拉取实际拉取的数据应该是2条,此时,需要根据第i-1次拉取对应的第二数据信息和记录的第一数据信息确定拉取的应该是哪两条数据。在本实施例中,根据减小后的N、第一数据信息和第二数据信息可以确定第i次拉取实际拉取的是<0,[3,4)>和<1,[0,1)>所标识的数据(即第一个Partititon中数据标识为3的数据以及拉取第二个Partititon中数据标识为0的第一条数据)。
在本申请实施例中,每次拉取的数据可以收集在数据列表(list)中,分区拉取函数收集的是每个Partititon的数据,因此任务执行函数返回的是一个list数组,数组里的每个元素均是一个list,该list是每个Partititon的数据(即一个list中包括从一个Partititon中拉取的数据)。为了方便记录每次拉取时拉取了哪些数据,可以将多个数据列表(list)进行合并得到综合数据列表。
例如,第i次拉取的是第一个Partititon中数据标识为3的数据以及第二个Partititon中数据标识为0的第一条数据,那么,获取的是这两个Partititon分别对应的数据列表,第一个Partititon对应的list中包括从第一个Partititon中拉取的数据,第二个Partititon对应的list中包括从第二个Partititon中拉取的数据,将多个list合并成一个综合list,从而返回该list的迭代器,利用该迭代器记录遍历到RDD中的哪个数据。
为了使用迭代器方式遍历整个RDD,保证待拉取数据RDD全部返回至客户端,需要自定义RDD的迭代器。通过自定义的迭代器可以判断RDD中是否还有下一个数据可以迭代,只需要比较任务执行过程中已经返回的数据条数和总数据条数即可。总数据条数可以是在收集每个分区数据的第二数据条数后,根据第二数据条数确定的。例如将每个Partition的第二数据条数存在分区大小列表里,并确定RDD总数据条数。
在返回拉取到的数据过程中,首先判断收集到的list中是否有下一个数据还未返回至客户端,如果为真,则继续返回拉取的数据,否则启动任务执行函数继续拉取数据,并返回拉取的第一个数据。
接下来,将结合Spark集群与用户客户端交互场景对本申请实施例提供的数据拉取方法进行介绍。在该场景中,待拉取数据为RDD中的数据,RDD数据包括多个Partititon。参见图4,所述方法包括:
S401、用户通过终端设备上的客户端发起查询请求。
S402、终端设备根据查询请求确定待拉取数据即RDD数据。
S403、终端设备计算RDD数据,得到每个Partititon的第二数据条数和总数据条数。
S404、终端设备将RDD数据缓存在Spark集群中。
S405、终端设备根据总数据条数判断RDD是否遍历完,若否,则执行S406。
S406、判断是否所有数据都已返回,若是,执行S407,若否,执行S408。
S407、继续返回已经拉取的数据。
S408、计算分区采样图。
S409、根据分区采样图拉取数据。
S410、将拉取到的来自多个Partition的数据进行汇总,重新执行S405。
其中,若拉取的数据来自多个Partition,则可以汇总数据,即合并多个list得到综合list。
基于前述数据拉取方法实施例,本申请实施例还提供一种数据拉取装置,参见图5a,所述装置包括第一获取单元501、确定单元502、减小单元503和拉取单元504:
所述第一获取单元501,用于从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数;
所述确定单元502,用于确定所述N条数据的大小;
所述减小单元503,用于若所述N条数据的大小大于驱动端的内存,根据所述驱动端的内存减小N,减小后的N所对应的数据的大小小于所述驱动端的内存;
所述拉取单元504,用于根据减小后的N进行所述第i次拉取。
在一种可能的实现方式中,所述拉取单元504还用于:
若所述N条数据的大小小于所述驱动端的内存,第i次拉取时拉取所述N条数据。
在一种可能的实现方式中,参见图5b,所述装置还包括第二获取单元505:
所述第二获取单元505,用于获取每次拉取时预设拉取的第一数据条数;
所述确定单元502,还用于根据所述第一数据条数确定每次预设拉取的数据的第一数据信息,所述第一数据信息用于体现预设拉取的数据在所述待拉取数据中的位置。
在一种可能的实现方式中,参见图5c,所述装置还包括记录单元506:
所述记录单元506,用于记录每次拉取时已拉取的数据的第二数据信息,所述第二数据信息用于体现已拉取的数据在所述待拉取数据中的位置;
若i>1,所述第一获取单元501,用于:
根据所述第一数据信息和第i-1次拉取对应的所述第二数据信息获取所述N条数据;
若i>1,所述拉取单元504,用于:
根据减小后的N、所述第一数据信息和所述第i-1次拉取对应的所述第二数据信息进行所述第i次拉取。
在一种可能的实现方式中,所述待拉取数据为弹性分布式数据集中的数据,所述弹性分布式数据集包括多个数据分区。
在一种可能的实现方式中,在所述从待拉取数据中获取第i次拉取时预设拉取的N条数据之前,所述第二获取单元505还用于:
收集每个所述数据分区的第二数据条数;
根据第二数据条数确定所述弹性分布式数据集的总数据条数。
在一种可能的实现方式中,若收集到每个所述数据分区的第二数据条数,所述确定单元502,还用于:
根据所述第二数据条数和所述第一数据条数确定所述第一数据信息,所述第一数据信息包括预设拉取的数据在对应数据分区中的数据标识和所对应数据分区的分区标识。
在一种可能的实现方式中,若所述第i次拉取的数据来自多个数据分区,所述拉取单元504,用于:
从所述多个数据分区分别获取数据列表,所述数据列表中包括从所述数据分区中拉取的数据;
将多个所述数据列表进行合并得到综合数据列表。
本申请实施例还提供了一种用于数据拉取的设备,下面结合附图对用于数据拉取的设备进行介绍。请参见图6所示,本申请实施例提供了一种用于数据拉取的设备600,该设备600还可以是终端设备,该终端设备可以为包括手机、平板电脑、个人数字助理(PersonalDigital Assistant,简称PDA)、销售终端(Point of Sales,简称POS)、车载电脑等任意智能终端,以终端设备为手机为例:
图6示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,简称RF)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、无线保真(wireless fidelity,简称WiFi)模块670、处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,RF电路610包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,简称LNA)、双工器等。此外,RF电路610还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,简称GSM)、通用分组无线服务(GeneralPacket Radio Service,简称GPRS)、码分多址(Code Division Multiple Access,简称CDMA)、宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)、长期演进(Long Term Evolution,简称LTE)、电子邮件、短消息服务(Short Messaging Service,简称SMS)等。
存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(Liquid CrystalDisplay,简称LCD)、有机发光二极管(Organic Light-Emitting Diode,简称OLED)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器661,传声器662可提供用户与手机之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块670,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
手机还包括给各个部件供电的电源690(比如电池),优选的,电源可以通过电源管理系统与处理器680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,该终端设备所包括的处理器680还具有以下功能:
从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数;
确定所述N条数据的大小;
若所述N条数据的大小大于驱动端的内存,根据所述驱动端的内存减小N的值,减小后的N所对应的数据的大小小于所述驱动端的内存;
根据减小后的N进行所述第i次拉取。
本申请实施例还提供服务器,请参见图7所示,图7为本申请实施例提供的服务器700的结构图,服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在服务器700上执行存储介质730中的一系列指令操作。
服务器700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,和/或,一个或一个以上操作系统741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图7所示的服务器结构。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述各个实施例所述的数据拉取方法。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,
服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种数据拉取方法,其特征在于,应用于Spark集群与客户端交互场景中,所述方法包括:
从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数;所述待拉取数据为弹性分布式数据集中的数据;
确定所述N条数据的大小;
若所述N条数据的大小大于驱动端的内存,根据所述驱动端的内存减小N的值,减小后的N所对应的数据的大小小于所述驱动端的内存;
根据减小后的N进行所述第i次拉取。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述N条数据的大小小于所述驱动端的内存,第i次拉取时拉取所述N条数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取每次拉取时预设拉取的第一数据条数;
根据所述第一数据条数确定每次预设拉取的数据的第一数据信息,所述第一数据信息用于体现预设拉取的数据在所述待拉取数据中的位置。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
记录每次拉取时已拉取的数据的第二数据信息,所述第二数据信息用于体现已拉取的数据在所述待拉取数据中的位置;
若i>1,所述从待拉取数据中获取第i次拉取时预设拉取的N条数据,包括:
根据所述第一数据信息和第i-1次拉取对应的所述第二数据信息获取所述N条数据;
若i>1,所述根据减小后的N进行所述第i次拉取,包括:
根据减小后的N、所述第一数据信息和所述第i-1次拉取对应的所述第二数据信息进行所述第i次拉取。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述弹性分布式数据集包括多个数据分区。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
收集每个所述数据分区的第二数据条数;
根据第二数据条数确定所述弹性分布式数据集的总数据条数。
7.根据权利要求3所述的方法,其特征在于,若收集到每个数据分区的第二数据条数,所述根据所述第一数据条数确定每次预设拉取的数据的第一数据信息,包括:
根据所述第二数据条数和所述第一数据条数确定所述第一数据信息,所述第一数据信息包括预设拉取的数据在对应数据分区中的数据标识和所对应数据分区的分区标识。
8.根据权利要求4所述的方法,其特征在于,若所述第i次拉取的数据来自多个数据分区,所述根据减小后的N进行所述第i次拉取,包括:
从所述多个数据分区分别获取数据列表,所述数据列表中包括从所述数据分区中拉取的数据;
将多个所述数据列表进行合并得到综合数据列表。
9.根据权利要求1所述的方法,其特征在于,所述待拉取数据存储在服务器集群中。
10.一种数据拉取装置,其特征在于,应用于Spark集群与客户端交互场景中,所述装置包括第一获取单元、确定单元、减小单元和拉取单元:
所述第一获取单元,用于从待拉取数据中获取第i次拉取时预设拉取的N条数据,i为正整数,N为大于1的整数;所述待拉取数据为弹性分布式数据集中的数据
所述确定单元,用于确定所述N条数据的大小;
所述减小单元,用于若所述N条数据的大小大于驱动端的内存,根据所述驱动端的内存减小N,减小后的N所对应的数据的大小小于所述驱动端的内存;
所述拉取单元,用于根据减小后的N进行所述第i次拉取。
11.根据权利要求10所述的装置,其特征在于,所述拉取单元还用于:
若所述N条数据的大小小于所述驱动端的内存,第i次拉取时拉取所述N条数据。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括第二获取单元:
所述第二获取单元,用于获取每次拉取时预设拉取的第一数据条数;
所述确定单元,还用于根据所述第一数据条数确定每次预设拉取的数据的第一数据信息,所述第一数据信息用于体现预设拉取的数据在所述待拉取数据中的位置。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括记录单元:
所述记录单元,用于记录每次拉取时已拉取的数据的第二数据信息,所述第二数据信息用于体现已拉取的数据在所述待拉取数据中的位置;
若i>1,所述第一获取单元,用于:
根据所述第一数据信息和第i-1次拉取对应的所述第二数据信息获取所述N条数据;
若i>1,所述拉取单元,用于:
根据减小后的N、所述第一数据信息和所述第i-1次拉取对应的所述第二数据信息进行所述第i次拉取。
14.一种用于数据拉取的设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-9任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010195566.XA CN111382335B (zh) | 2020-03-19 | 2020-03-19 | 一种数据拉取方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010195566.XA CN111382335B (zh) | 2020-03-19 | 2020-03-19 | 一种数据拉取方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382335A CN111382335A (zh) | 2020-07-07 |
CN111382335B true CN111382335B (zh) | 2023-03-17 |
Family
ID=71220691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010195566.XA Active CN111382335B (zh) | 2020-03-19 | 2020-03-19 | 一种数据拉取方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382335B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569734A (zh) * | 2015-10-12 | 2017-04-19 | 北京国双科技有限公司 | 数据洗牌时内存溢出的修复方法及装置 |
CN107066612A (zh) * | 2017-05-05 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种基于SparkJoin操作的自适应数据倾斜调整方法 |
CN108196970A (zh) * | 2017-12-29 | 2018-06-22 | 东软集团股份有限公司 | Spark平台的内存动态管理方法和装置 |
CN110069502A (zh) * | 2019-04-24 | 2019-07-30 | 东南大学 | 基于Spark架构的数据均衡分区方法及计算机存储介质 |
CN110232087A (zh) * | 2019-05-30 | 2019-09-13 | 湖南大学 | 大数据增量迭代方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11232100B2 (en) * | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
-
2020
- 2020-03-19 CN CN202010195566.XA patent/CN111382335B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569734A (zh) * | 2015-10-12 | 2017-04-19 | 北京国双科技有限公司 | 数据洗牌时内存溢出的修复方法及装置 |
CN107066612A (zh) * | 2017-05-05 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种基于SparkJoin操作的自适应数据倾斜调整方法 |
CN108196970A (zh) * | 2017-12-29 | 2018-06-22 | 东软集团股份有限公司 | Spark平台的内存动态管理方法和装置 |
CN110069502A (zh) * | 2019-04-24 | 2019-07-30 | 东南大学 | 基于Spark架构的数据均衡分区方法及计算机存储介质 |
CN110232087A (zh) * | 2019-05-30 | 2019-09-13 | 湖南大学 | 大数据增量迭代方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
吴恩慈 ; .广播机制解决Shuffle过程数据倾斜的方法.2019,(第06期),191-199. * |
黄超杰.Spark中的数据均衡分配算法研究.2018,(第10期),I138-439. * |
Also Published As
Publication number | Publication date |
---|---|
CN111382335A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108156508B (zh) | 弹幕信息处理的方法、装置、移动终端、服务器及系统 | |
CN104967896A (zh) | 一种显示弹幕评论信息的方法和装置 | |
CN108984066B (zh) | 一种应用程序图标显示方法及移动终端 | |
CN110633438B (zh) | 一种新闻事件处理的方法、终端、服务器及存储介质 | |
CN111580815B (zh) | 一种页面元素的编辑方法及相关设备 | |
CN104281394A (zh) | 智能选词的方法和装置 | |
EP3105912B1 (en) | Application-based service providing method and system | |
JP6915074B2 (ja) | メッセージ通知方法及び端末 | |
CN108804434B (zh) | 一种消息查询方法、服务器及终端设备 | |
CN111027406B (zh) | 图片识别方法、装置、存储介质及电子设备 | |
CN111177612B (zh) | 一种页面登录鉴权的方法及相关装置 | |
CN110277097B (zh) | 数据处理方法及相关设备 | |
CN110753914A (zh) | 信息处理方法、存储介质和移动终端 | |
CN103457832A (zh) | 信息管理方法、装置和终端 | |
CN111367502A (zh) | 一种数值处理方法和装置 | |
CN106201536A (zh) | 一种应用图标的更换方法及终端设备 | |
CN110602766A (zh) | 一种个人热点识别方法和终端之间关联关系的确定方法 | |
CN110708673A (zh) | 一种位置确定方法和便捷式多功能设备 | |
CN108269223B (zh) | 一种网页图形绘制方法及终端 | |
CN111382335B (zh) | 一种数据拉取方法、装置及存储介质 | |
CN112181266B (zh) | 图形码识别方法、装置、终端以及存储介质 | |
CN110321099B (zh) | 声卡的控制方法、装置、终端及存储介质 | |
CN109799994B (zh) | 一种终端组件生成方法及装置 | |
CN112069079A (zh) | 一种性能测试的方法、相关装置及存储介质 | |
CN110809234A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40025952 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |