CN108959292B - 一种数据上传方法、系统和计算机可读存储介质 - Google Patents
一种数据上传方法、系统和计算机可读存储介质 Download PDFInfo
- Publication number
- CN108959292B CN108959292B CN201710356367.0A CN201710356367A CN108959292B CN 108959292 B CN108959292 B CN 108959292B CN 201710356367 A CN201710356367 A CN 201710356367A CN 108959292 B CN108959292 B CN 108959292B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- database
- queue
- storing
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种在系统中上传数据的方法,其中所述系统包括至少一个异步处理器,并且所述至少一个异步处理器中的每个与一个队列相关联,该方法包括:响应于用户输入,将载有数据的文件存储至数据库,并分配唯一的文件标识;根据文件标识生成散列值;根据散列值将文件存储至相应的队列中;每个异步处理器按照与该异步处理器相对应的队列中先后顺序串行地解析文件中的数据,并将解析出的数据存储至数据库。
Description
技术领域
本发明涉及计算机应用技术领域,具体而言,涉及一种数据上传的方法、系统及计算机可读存储介质。
背景技术
随着计算机技术的发展和普及,很多行业倾向于采用电子化的业务系统,相应地,需要录入业务数据到业务系统。起初,由于数据量较少,一般采用人工录入。随着业务的发展,录入数据量的增加,人工录入变得非常低效。接着,出现了采用固定模板的文件(如,Excel文件)进行上传的方法,即,提供通过文件来批量上传数据的功能,其中文件的每列对应不同的属性,由系统解析文件,将数据写入数据库中,用于后续业务系统的使用。随着业务量的增长,批量上传的数据量越来越大,上传的人数越来越多,批量上传文件并写入数据库的方式会出现如下问题:文件较大时,系统解析文件过慢,插入数据库过慢,批量上传交互时间过长甚至超时,用户体验非常不好。当文件过大、内容过多时,现有的方法通常会要求用户手工拆分文件,不仅操作繁琐,而且费时费力。更甚者,当有大并发量的批量上传时,会因同时有大量数据库的写入操作而导致数据库崩溃,使得整个服务不可用。
如何解决批量上传数据所带来的问题并改善用户体验,是亟需解决的难题。
发明内容
为了解决现有技术中存在的一个或多个问题,本发明提供一种上传数据的方法、系统及计算机可读存储介质。
根据本发明的一方面,提供了一种在系统中上传数据的方法,其中所述系统包括至少一个异步处理器,并且所述至少一个异步处理器中的每个与一个队列相关联,该方法包括:响应于用户输入,将载有数据的文件存储至数据库,并分配唯一的文件标识;根据文件标识生成散列值;根据散列值将文件存储至相应的队列中;每个异步处理器按照与该异步处理器相对应的队列中先后顺序串行地解析文件中的数据,并将解析出的数据存储至数据库。可选地,在解析文件之前,该方法还包括:判断该文件的大小是否大于阈值,当大于阈值时,将该文件进行拆分,将拆分后的每个文件上传至数据库,并得到拆分后的每个文件的唯一的文件标识;如果该文件的大小不大于阈值,则解析文件中的数据,并将数据存储至数据库中。在根据散列值将文件存储至相应的队列中之后,向用户返回上传成功消息。在该方法中,异步处理器的数量小于或等于数据库允许的最大并发数量。
根据本发明的第二方面,提供了一种上传数据的系统,包括:数据库,配置成存储用户上传的载有数据的文件,并分配唯一的文件标识;至少一个处理器,配置成:根据文件标识生成散列值;将文件存储至多个队列中的与所述散列值对应的队列中;判断与该处理器相关联的队列中是否有任务正在执行,如果有,则等待;如果没有,则解析文件中的数据,并将数据存储至数据库。可选地,在该方法中,处理器还配置成,在解析文件之前,判断该文件的大小是否大于阈值,当大于阈值时,将该文件进行拆分,将拆分后的每个文件上传至数据库,并得到拆分后的每个文件的唯一的文件标识;如果该文件的大小不大于阈值,则解析文件中的数据,将数据存储至数据库中。在根据散列值将文件存储至相应的队列中之后,向用户返回上传成功消息。当与该处理器相关联的队列中有多个需要处理的文件时,所述处理器根据队列中的先后顺序串行地解析每个文件。
根据本发明的第三方面,提供了一种上传数据的设备,包括:用于存储用户上传的载有数据的文件并分配唯一的文件标识的装置;用于根据文件标识生成散列值的装置;用于将文件存储至多个队列中的与所述散列值对应的队列中的装置;用于判断当前队列中是否有任务正在执行,如果有,则等待;如果没有,则解析文件中的数据,并将数据存储至数据库的装置。
根据本发明的第四方面,提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器执行时,执行根据本发明的第一方面的方法。
通过本发明提供的方法和系统,能够在大批量高并发数据上传的情况下,通过异步处理和串行控制相结合,控制并发数量,减少数据库压力,避免数据库崩溃,同时提高用户体验。
应当理解的是,以上的一般性描述和后文的详细描述仅是示例性的,并不能限制本发明。
附图说明
下面将参照附图详细描述本发明的示例实施例,本发明的上述和其它目标、特征和优点将变得更加显而易见。
图1是根据本发明的一个实施例的数据上传方法的示意图;
图2是根据本发明的另一个实施例的数据上传方法的示意图;
图3示出了根据本发明的一个实施例的数据上传系统的示例性原理框图;
图4示出了根据本发明的一个实施例的系统结构框图。
具体实施方式
现将参考附图更全面地描述本发明的示例性实施例。应理解,本文中的示例性实施例仅是提供用来帮助理解本发明,而不应以任何形式限制本发明。提供这些实施例是为了使本发明的描述更加全面和完整,并将示例性实施例的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,本文描述的特征、结构或优点可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略特定细节中的一个或多个,或者可以采用其它等效的方法、方式、装置、步骤等来代替。为了简明起见,对于本领域中公知的结构、方法、装置、实现或者操作,将不再赘述。
本发明使用多个异步处理器,并结合数据上传的串行化管理方式,避免由于高并发量的批量数据上传对数据库增加压力。下面将通过实例进行说明。
图1是根据本发明的一个实施例的数据上传方法的示意图。在图1所示的实施例中,在S101,首先通过用户交互,上传载有数据的文件。在S102,将用户上传的文件存储到数据库,并分配唯一的标识,即,文件ID。在S103,根据文件ID生成散列值。然后,在S104,根据散列值,将文件存入相应的队列中。此时,可以向用户发送上传成功消息。最后,在S105,按照队列中存储的先后顺序,由与该队列相关联的异步处理器逐个解析文件,并将解析出的数据存储至数据库。
根据本发明,异步处理器的数量小于或等于数据库允许的最大并发数量。在该实施例中,数据库优选的是分布式存储的数据库(例如,MongoDB),队列优选的是分布式集群(例如,Zookeeper),提供高可用的分布式调度服务。应理解,根据实际应用需要,可选择任意数据库和队列,以上仅是为了帮助理解而给出的一个应用实例,不构成对本发明保护范围的任何限制。
图2是根据本发明的另一个实施例的数据上传方法的示意图。
在图2中,首先,在S101,通过用户交互,上传载有数据的文件。在S102,将用户上传的文件存储到数据库,并分配唯一的标识,即,文件ID。在S103,根据文件ID生成散列值。然后,在S104,根据散列值,将文件存入相应的队列中。此时,可以向用户发送上传成功消息。该实施例的以上内容与参照图1描述的实施例是相同的。
接下来,与图1的方法不同的是,在S205,按照队列中存储的先后顺序,由与该队列相关联的异步处理器从数据库获取文件,在S206,判断该文件的大小是否大于预定的阈值。如果大于阈值,说明该文件过大,处理前进到S207,拆分文件,并将拆分后的文件存储至数据库,获得每个拆分后的文件的唯一标识,即,文件ID,然后继续进行到S103,按照如前面所述的方法根据文件ID生成散列值并继续执行后续处理。如果在S206判断文件大小不大于阈值,则处理前进到S208,解析出该文件中的数据,并将解析出的数据存储至数据库。应理解,在该方法中,异步处理器的数量小于或等于数据库允许的最大并发数量,并且每一个异步处理器按照与它相关联的队列顺序地串行执行处理,由此避免了高并发量给数据库造成的压力。
图3示出了根据本发明的一个实施例的数据上传系统的示例性原理框图。如图3所示,该系统包括数据库12,配置成存储用户上传的载有数据的文件,并分配唯一的文件标识;处理器11和14,配置成:根据文件标识生成散列值;将文件存储至多个队列13中的与所述散列值对应的队列中;判断当前队列中是否有任务正在执行,如果有,则等待;如果没有,则解析文件中的数据,并将数据存储至数据库。其中,处理器14还配置成,在解析文件之前,判断该文件的大小是否大于阈值,当大于阈值时,将该文件进行拆分,将拆分后的每个文件上传至数据库,并得到拆分后的每个文件的唯一的文件标识;如果该文件的大小不大于阈值,则解析文件中的数据,并将数据存储至数据库中。
其中,异步处理器14的数目不大于数据库12允许的最大并发数量,并且每一个异步处理器与一个队列相关联。当一个队列中有多个需要处理的文件时,则根据在该队列中的先后顺序,串行地,即,逐个,处理队列中的每个文件。
为了便于说明,在本实施例中,采用MongoDB作为数据库的应用实例,并采用Zookeeper作为队列的实例,应理解,这些实例仅提供用来帮助理解,而不以任何方式构成对本发明的限制。为了便于理解,下面将对MongoDB和Zookeeper简单解释。MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。ZooKeeper作为一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
现回到图3,在本发明的系统中,前台处理器11提供上传文件的入口,即,用户交互界面,用户通过该界面将文件上传到系统,前台处理器11会对文件格式进行初步的校验。
对于初步校验合格的文件,例如,可通过MongoDB数据库12的GridFS的“create”方式,将文件保存至MongoDB数据库12中,并为该文件生成唯一的文件标识,例如,“FILE123”。
假设数据库12允许三个数据并发执行,那么在Zookeeper 13中建立三个目录节点,分布表示为队列1、队列2和队列3;创建方式为PERSISTENT_SEQUENTIAL,即,永久顺序性。该三个节点作为异步处理调度的队列。
根据文件的唯一的文件标识“FILE123”,通过ID值对3计算hash值。假设计算出的hash值为3,那么将此文件分配到队列3下。根据Zookeeper的“create”方式将此唯一的文件标识存放至队列3中。
在队列中保存文件成功后,可返回给用户上传成功消息。接着,后续处理通过异步处理来执行,不需要与用户交互。一般来说,从用户上传文件至收到上传成功消息的过程会比现有技术中要求用户一直等到数据上传完成的时间短得多,提高了用户体验。
接下来,异步处理由三个处理器来执行,每个处理器监控并处理Zookeeper中的相应队列。在图3的例子中,异步处理器1对应于队列1,异步处理器2对应于队列2,异步处理器3对应于队列3。
以异步处理器3为例,异步处理器3监控并处理队列3。当Zookeeper队列3中有新增数据时,根据Zookeeper的watcher特性,将变更通知给负责监控的异步处理器3。异步处理器3获取到通知后,例如,可通过Zookeeper提供的锁机制,判断当前是否有任务在执行,如果有则不做任何处理,等待锁释放再进行处理。如果没有任务在执行,则根据Zookeeper的getChildren()方法,获取当前Zookeeper队列3中需要处理的文件信息。通过锁机制,可以保证整个异步处理的串行化,避免过多的并发给数据库增加压力和崩溃的风险。在下文中将会对Zookeeper的锁机制进行简单的介绍。
如果当前队列3中有多个需要处理的文件,则根据先后顺序逐个进行处理。例如,按照先后顺序,队列3中当前要处理的文件的唯一文件标识为“FILE123”,则根据此文件ID,从MongoDB数据库12中获取该文件。如果文件过大,对文件的解析处理可能过于缓慢。因此,可以先对文件的大小进行判断,并对过大的文件进行自动拆分。
如果文件的大小大于预先设置的阈值,则根据阈值将此文件拆分为若干个不大于阈值的文件,例如,拆分为两个文件,并将这两个文件上传至MongoDB数据库12,得到两个文件的唯一标示“FILE123A”和“FILE123B”,再将这两个文件标示ID进行hash算法后,存入相应的Zookeeper队列中。然后,删除文件“FILE123”对应的旧的Zookeeper队列3中的节点和MongoDB中的旧文件。本次处理完毕,等待Zookeeper下次的通知。
如果文件大小并不大于阈值,则根据固定的文件格式解析文件中的数据,将数据有序地保存至数据库中。然后,删除Zookeeper队列3中此文件的节点和MongoDB数据库中的该文件。本次处理完毕,等待Zookeeper下次的通知。
在每次处理完毕后,释放队列3对应的锁,其他需要执行的任务按照先后顺序获取当前锁,并重复上述的处理过程。
现将结合实例对Zookeeper的锁机制进行简单的介绍。
仍以图3中的结构为例,假设用户输入的文件保存到队列3中,Zookeeper的队列3中新增数据之后,向异步处理器3发出通知。异步处理器3在接收到Zookeeper的队列3的通知后,在Zookeeper中的锁目录“/batch/lock3/”(队列3对应的锁目录)下建立临时顺序型的节点,创建成功后得到对应的顺序节点ID:2。
获取锁目录“/batch/lock3/”下所有的节点,并对节点的ID进行排序,取最小的ID号:MinID。
判断MinID是否与2相等,如果相等,则表明当前任务获取到锁,执行相应的上传数据逻辑,处理完成后,删除锁节点2,释放锁。
如果不相等,则根据Zookeeper的watcher方式监控节点2的上一个节点的状态,如果上个节点发生删除操作,认为上个节点已经释放锁。再次获取锁目录下的所有节点,排序并判断是否可以拿到当前锁。
通过这种方式,异步处理器在接收到Zookeeper的队列通知后,需要先进行锁的抢占,只有得到锁,才能进行下一步的逻辑处理。由此实现了数据上传的串行化,避免由于高并发对数据库增加压力。
在该实施例中,未使用定时任务调度的方式是因为批量上传数据的时间不定性、集中爆发性以及定时任务调度查询数据库效率低下。因此采用了Zookeeper的主动通知的形式。应理解,可以根据实际需要采用其他任务调度方式。
特别地,根据本公开的实施例,上文参考图1-3描述的方法和系统可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。图4示出了一个这样的例子。在图4的例子中,该计算机程序可以通过通信部分109从网络上被下载和安装,和/或从可拆卸介质111被安装。在该计算机程序被中央处理单元(CPU)101执行时,执行本申请的方法和系统中限定的上述功能。
如图4所示,计算机设备100包括中央处理单元(CPU)101,其可以根据存储在只读存储器(ROM)102中的程序或者从存储部分108加载到随机访问存储器(RAM)103中的程序而执行各种适当的动作和处理。在RAM 103中,还存储有系统100操作所需的各种程序和数据。CPU 101、ROM 102以及RAM 103通过总线104彼此相连。输入/输出(I/O)接口105也连接至总线104。
以下部件连接至I/O接口105:包括键盘、鼠标等的输入部分106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分107;包括硬盘等的存储部分108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分109。通信部分109经由诸如因特网的网络执行通信处理。驱动器110根据需要连接至I/O接口105。可拆卸介质111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器110上,以便于从其上读出的计算机程序根据需要被安装入存储部分108。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上所描述的方法。可以理解,以上描述的系统、模块、单元或装置可以通过硬件、软件或者软硬件结合的方式来实现,这里不再赘述。该计算机可读存储介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备:响应于用户输入,将载有数据的文件存储至数据库,并分配唯一的文件标识;根据文件标识生成散列值;根据散列值将文件存储至相应的队列中;使每个异步处理器按照与该异步处理器相对应的队列中先后顺序串行地解析文件中的数据,并将解析出的数据存储至数据库。
通过本发明提供的方法和系统,能够在大批量高并发数据上传的情况下,减少数据库压力,避免数据库崩溃,提高用户体验。
以上描述的附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个按顺序示出的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。本领域技术人员可以理解,上述实施方式的全部或部分步骤可以被实现为由CPU执行的计算机程序或者指令。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,可以理解,除非特别说明,这些处理可以是,例如,在多个单元中同步或异步执行的。
以上具体地示出和描述了本发明的示例性实施方式。应理解,本发明不限于本文描述的详细结构、设置方式或实现方法;本发明的保护范围仅由所附权利要求来定义,涵盖权利要求保护范围内的各种修改和变形。
Claims (6)
1.一种在系统中上传数据的方法,其中所述系统包括多个异步处理器,并且所述多个异步处理器中的每个与一个队列相关联,该方法包括:
响应于用户输入,将载有数据的文件存储至数据库,并分配唯一的文件标识;
根据文件标识生成散列值;
根据散列值将文件存储至相应的队列中,其中,所述队列为分布式集群,所述根据散列值将文件存储至相应的队列中包括:根据散列值将所述文件标识存储至相应的队列中;
每个异步处理器根据所述分布式集群的锁机制按照与该异步处理器相对应的队列中先后顺序串行地获取所述队列中的待处理的文件标识,根据所述待处理的文件标识从所述数据库中获取对应的文件,以解析所述文件中的数据,并将解析出的数据存储至数据库;
在根据所述待处理的文件标识从所述数据库中获取对应的文件后,在解析文件之前,还包括:判断该文件的大小是否大于阈值,当大于阈值时,将该文件进行拆分,将拆分后的每个文件上传至数据库,并得到拆分后的每个文件的唯一的文件标识;如果该文件的大小不大于阈值,则解析文件中的数据,并将数据存储至数据库中;
所述异步处理器的数量小于或等于所述数据库允许的最大并发数量。
2.如权利要求1所述的方法,其中,在根据散列值将文件存储至相应的队列中之后,向用户返回上传成功消息。
3.一种上传数据的系统,包括:
数据库,配置成存储用户上传的载有数据的文件,并分配唯一的文件标识;
多个异步处理器,并且所述多个异步处理器中的每个与一个队列关联,配置成:
根据文件标识生成散列值;
将所述文件标识存储至与所述多个异步处理器关联的多个队列中的与所述散列值对应的队列中,其中,所述队列为分布式集群;
根据所述分布式集群的锁机制,判断与该处理器相关联的队列中是否有任务正在执行,如果有,则等待;如果没有,则按照与该异步处理器相对应的队列中先后顺序串行地获取所述队列中的待处理的文件标识,根据所述待处理的文件标识从所述数据库中获取对应的文件,以解析所述文件中的数据,并将数据存储至数据库;
在根据所述待处理的文件标识从所述数据库中获取对应的文件后,在解析所述文件之前,还包括:判断该文件的大小是否大于阈值,当大于阈值时,将该文件进行拆分,将拆分后的每个文件上传至数据库,并得到拆分后的每个文件的唯一的文件标识;如果该文件的大小不大于阈值,则解析文件中的数据,并将数据存储至数据库中;
所述异步处理器的数量小于或等于所述数据库允许的最大并发数量。
4.如权利要求3所述的系统,其中,在根据散列值将文件存储至相应的队列中之后,向用户返回上传成功消息。
5.一种上传数据的设备,所述设备具有多个异步处理器,并且所述多个异步处理器中的每个与一个队列相关联,所述异步处理器的数量小于或等于存储数据的数据库允许的最大并发数量,包括:
用于存储用户上传的载有数据的文件并分配唯一的文件标识的装置;
用于根据文件标识生成散列值的装置;
用于将文件标识存储至与所述多个异步处理器相关联的多个队列中的与所述散列值对应的队列中的装置,其中,所述队列为分布式集群;
用于各所述异步处理器根据所述分布式集群的锁机制判断与其关联的队列中是否有任务正在执行,如果有,则等待;如果没有,则按照所述队列中的先后顺序串行地获取所述队列中的待处理的文件标识,根据所述待处理的文件标识从所述数据库中获取对应的文件,以解析所述文件中的数据,并将数据存储至数据库的装置;
用于在根据所述待处理的文件标识从所述数据库中获取对应的文件后,在解析文件之前,判断判断该文件的大小是否大于阈值,当大于阈值时,将该文件进行拆分,将拆分后的每个文件上传至数据库,并得到拆分后的每个文件的唯一的文件标识;如果该文件的大小不大于阈值,则解析文件中的数据,并将数据存储至数据库中的装置。
6.一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器执行时,执行如权利要求1-2中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710356367.0A CN108959292B (zh) | 2017-05-19 | 2017-05-19 | 一种数据上传方法、系统和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710356367.0A CN108959292B (zh) | 2017-05-19 | 2017-05-19 | 一种数据上传方法、系统和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959292A CN108959292A (zh) | 2018-12-07 |
CN108959292B true CN108959292B (zh) | 2021-03-30 |
Family
ID=64462284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710356367.0A Active CN108959292B (zh) | 2017-05-19 | 2017-05-19 | 一种数据上传方法、系统和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108959292B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783440B (zh) * | 2018-12-19 | 2023-09-19 | 爱云保(上海)科技有限公司 | 数据存储方法及数据检索方法、装置、介质、电子设备 |
CN110046161A (zh) * | 2019-03-18 | 2019-07-23 | 平安普惠企业管理有限公司 | 数据写入方法及装置、存储介质、电子设备 |
CN110278202B (zh) * | 2019-06-18 | 2020-07-31 | 南京科源信息技术有限公司 | 一种文件上传系统 |
CN110517078A (zh) * | 2019-08-21 | 2019-11-29 | 上海易点时空网络有限公司 | 基于异步处理的数据上报方法及装置 |
CN111026706B (zh) * | 2019-10-21 | 2023-10-13 | 武汉神库小匠科技有限公司 | 电力系统数据的入库方法、装置、设备及介质 |
CN110825693A (zh) * | 2019-10-25 | 2020-02-21 | 武汉联影医疗科技有限公司 | 医学数据存储方法、装置和可读存储介质 |
CN111694797B (zh) * | 2020-06-04 | 2024-03-15 | 中国建设银行股份有限公司 | 一种文件上传及解析方法、装置、服务器及介质 |
CN111813758A (zh) * | 2020-07-02 | 2020-10-23 | 深圳乐信软件技术有限公司 | 数据库文件分布式分析方法、装置、服务器及存储介质 |
CN112202846B (zh) * | 2020-09-11 | 2023-09-29 | 广州宸祺出行科技有限公司 | 一种基于复杂网络架构的文件上传的方法及系统 |
CN112380183B (zh) * | 2020-11-13 | 2024-05-24 | 深圳市和讯华谷信息技术有限公司 | 分布式文件的同步方法、装置、计算机设备及存储介质 |
CN113986519B (zh) * | 2021-12-29 | 2022-06-03 | 深圳市毕美科技有限公司 | 数据调度处理方法、装置、设备及存储介质 |
CN114338560B (zh) * | 2021-12-30 | 2024-07-23 | 中国电信股份有限公司 | 队列数据的处理系统、方法、存储介质及电子设备 |
CN114500514B (zh) * | 2022-02-14 | 2023-12-12 | 京东科技信息技术有限公司 | 用于云存储的文件传输方法及装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582064A (zh) * | 2008-05-15 | 2009-11-18 | 阿里巴巴集团控股有限公司 | 一种大数据量数据处理方法及系统 |
CN102024008A (zh) * | 2009-09-09 | 2011-04-20 | 浙江省电力公司 | 一种Web服务器的并发数限制方法 |
CN104376082A (zh) * | 2014-11-18 | 2015-02-25 | 中国建设银行股份有限公司 | 一种把数据源文件中的数据导入到数据库中的方法 |
CN106302581A (zh) * | 2015-05-21 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 批量数据的导入方法及系统 |
CN106612330A (zh) * | 2017-01-05 | 2017-05-03 | 广州慧睿思通信息科技有限公司 | 支持分布式多文件导入的系统及方法 |
-
2017
- 2017-05-19 CN CN201710356367.0A patent/CN108959292B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582064A (zh) * | 2008-05-15 | 2009-11-18 | 阿里巴巴集团控股有限公司 | 一种大数据量数据处理方法及系统 |
CN102024008A (zh) * | 2009-09-09 | 2011-04-20 | 浙江省电力公司 | 一种Web服务器的并发数限制方法 |
CN104376082A (zh) * | 2014-11-18 | 2015-02-25 | 中国建设银行股份有限公司 | 一种把数据源文件中的数据导入到数据库中的方法 |
CN106302581A (zh) * | 2015-05-21 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 批量数据的导入方法及系统 |
CN106612330A (zh) * | 2017-01-05 | 2017-05-03 | 广州慧睿思通信息科技有限公司 | 支持分布式多文件导入的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108959292A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959292B (zh) | 一种数据上传方法、系统和计算机可读存储介质 | |
CN109408205B (zh) | 基于hadoop集群的任务调度方法和装置 | |
CN108549583B (zh) | 大数据处理方法、装置、服务器及可读存储介质 | |
CN109840142A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN111966943A (zh) | 流式数据分发方法和系统 | |
CN113722056A (zh) | 任务调度方法、装置、电子设备和计算机可读介质 | |
CN113076304A (zh) | 一种分布式版本管理方法、装置和系统 | |
CN115827250A (zh) | 一种数据存储方法、装置及设备 | |
US10048991B2 (en) | System and method for parallel processing data blocks containing sequential label ranges of series data | |
US20190028420A1 (en) | Message sending method and terminal device | |
CN111435329A (zh) | 一种自动化测试方法和装置 | |
CN108696554B (zh) | 负载均衡方法和装置 | |
CN109684051A (zh) | 一种混合式大数据任务异步提交的方法和系统 | |
CN117950850A (zh) | 一种数据传输方法、装置、电子设备及计算机可读介质 | |
CN111694670A (zh) | 资源分配方法、装置、设备和计算机可读介质 | |
CN116881003A (zh) | 资源分配方法、装置、服务设备及存储介质 | |
CN110750362A (zh) | 生物信息的分析方法、装置和存储介质 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN111143426A (zh) | 多系统用户信息关联方法和装置 | |
CN109656709B (zh) | 一种Codis集群扩容的方法和装置 | |
CN108810130B (zh) | 一种分配请求规划的方法和装置 | |
CN112884382B (zh) | 云平台的资源配额管理方法、装置、设备以及存储介质 | |
CN114675954A (zh) | 任务调度方法及装置 | |
CN111080250B (zh) | 流程回退补偿方法、装置、存储介质及电子设备 | |
CN111913791A (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 |