云计算环境下基于文件实现异步数据存储的方法

文档序号:9766023阅读:320来源:国知局
云计算环境下基于文件实现异步数据存储的方法
【技术领域】
[0001] 本发明设及计算机应用技术领域,尤其设及云计算环境下计算机企业应用技术领 域,具体是指一种云计算环境下基于文件实现异步数据存储的方法。
【背景技术】
[0002] 目前,基于云计算的应用开发中,对数据的处理要求也越来越高,每天动辄产生几 个GB,几个PB的数据,运些数据为后续的数据分析打下了基础。随着数据量的增大,对数据 的快速存储、完整性的要求也越来越迫切。
[0003] 为方便数据的分析,通常采用把需要分析的数据存放到关系型数据库中,W便后 续更加方便地对数据进行多维度的分析;对于每天大数据量的存储,数据库的IO压力将非 常大,数据库成为了影响业务正常运行的瓶颈所在。为了缓解数据入库的压力,当前的常用 作法有数据库分库分表和存储数据队列缓存两种。数据库分库分表就是把原本存储于一个 库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上,运种方 式带来性能提升的同时也带来数据库维护及应用开发的难度,同时在执行分库分表之后, 由于数据存储到了不同的库上,数据库事务管理也会比较困难。如果依赖数据库本身的分 布式事务管理功能去执行事务,将付出高昂的性能代价;如果由应用程序去协助控制,形成 程序逻辑上的事务,又会造成编程方面的负担。存储数据队列缓存的模式把数据先放到基 于内存的缓存中,然后通过异步写入的方式把数据写入到数据库中,此模式可W缓解数据 库的压力,但在大数据量的情况下,会造成缓存数据的堆积,带来比较大的内存消耗,给系 统带来不稳定,而且如果系统由于一些特殊原因需要重启或者系统岩机了,则缓存中的数 据将会丢失,给系统带来不可挽回的损失。
[0004] 基于当前常用的数据存储方案,在基于云计算环境的大数据量的情况下,对数据 库管理、数据的完整性带来了比较大的挑战,同时给数据库运维人员、系统开发人员增加了 大量的工作量,对于成本造成了极大的浪费;如果数据的完整性得不到保障,W后的数据分 析结果可能与实际相差甚远,进而影响最后决策的制定。

【发明内容】

[0005] 本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现通过文件的方 式、保证了数据存储的完整性、系统重启后数据不会丢失、同时文件的存储速度相比关系型 数据库在性能方面会大大提升的云计算环境下基于文件实现异步数据存储的方法。
[0006] 为了实现上述目的,本发明的云计算环境下基于文件实现异步数据存储的方法具 有如下构成:
[0007] 该云计算环境下基于文件实现异步数据存储的方法,其主要特点是,所述的方法 包括对存储数据的数据文件格式进行定义;将存储的数据按预设的要求和格式保存到数据 文件中;通过异步线程将所述的数据文件中的数据存储到关系型数据库中。
[000引较佳地,所述的对存储数据的数据文件格式进行定义,包括W下步骤:
[0009] (I)定义存储数据的数据文件的参数数据,包括文件存储路径、文件大小、文件个 数和命名格式;
[0010] (2)定义存储数据的数据文件的存储格式。
[0011] 更佳地,所述的定义存储数据的数据文件的存储格式,具体为:
[0012] 配置存储数据的数据文件的存储格式并设置W二进制存储数据。
[0013] 更佳地,所述的对存储数据的数据文件格式进行定义,还包括W下步骤:
[0014] (3)定义数据索引文件的存储格式,所述的数据索引文件用W记录数据的起始、结 束位置;
[0015] (4)定义数据处理指针文件的存储格式,所述的数据处理指针文件用W记录当前 数据的处理进度。
[0016] 较佳地,所述的将存储的数据按预设的要求和格式保存到数据文件中,包括W下 步骤:
[0017] (5)定义要存储数据的格式;
[0018] (6)组装存储的数据;
[0019] (7)保存数据到数据文件;
[0020] (8)保存数据索引到数据索引文件;
[0021] (9)文件大小超过预先设置值后自动生成新的数据文件。
[0022] 更佳地,所述的定义要存储数据的格式,包括W下步骤:
[0023] (5-1)配置每条数据的存储格式;
[0024] (5-2)存储数据的编码格式定义。
[0025] 更佳地,所述的组装存储的数据,包括W下步骤:
[0026] (6-1)存储的数据按指定格式存储;
[0027] (6-2)数据按指定的编码格式进行编码。
[0028] 更佳地,所述的保存数据到数据文件,包括W下步骤:
[00巧](7-1)调用数据存储的接口 IDataStore;
[0030] (7-2)按设置的数据文件命名规则,查找到当前的数据文件;
[0031] (7-3)数据文件指针移动到文件最后;
[0032] (7-4)编码后的数据写入数据文件。
[0033] 更佳地,所述的保存数据索引到数据索引文件,包括W下步骤:
[0034] (8-1)根据数据文件的名称,查找到当前的数据索引文件;
[0035] (8-2)如果数据文件为新建,则新建数据索引文件,数据文件与数据索引文件名称 相同;
[0036] (8-3)数据索引文件指针移动到数据文件最后;
[0037] (8-4)按设定的格式,把对应的数据在数据文件中的起始、结束位置写入到数据索 引文件。
[0038] 更佳地,所述的文件大小超过设置后自动生成新的数据文件,包括W下步骤:
[0039] (9-1)判断当前数据文件的大小与设置文件的大小,是否新建数据文件,如果是, 则继续步骤(9-2),否则继续步骤(7);
[0040] (9-2)数据文件已达到设置的最大值,则按指定的规则新建数据文件和数据索引 文件。
[0041] 较佳地,所述的通过异步线程将所述的数据文件中的数据存储到关系型数据库 中,包括W下步骤:
[0042] (10)启动守护线程;
[0043] (11)读取数据处理指针文件中的内容;
[0044] (12)数据文件中读取数据;
[0045] (13)对数据进行拆分;
[0046] (14)保存数据到关系型数据库;
[0047] (15)数据文件处理完毕,自动切换下一个数据文件进行读取操作。
[0048] 更佳地,所述的启动守护线程,包括W下步骤:
[0049] (10-1)新建守护线程;
[0050] (10-2)启动守护线程;
[0051] (10-3)针对每条数据调用数据处理逻辑;
[0052] (10-4)如果数据文件已处理完成,则线程等待。
[0053] 更佳地,所述的读取数据处理指针文件中的内容,包括W下步骤:
[0054] (11-1)判断数据处理指针文件的是否存在,如果不存在则新建数据处理指针文件 后,继续步骤(11-2),否则直接继续步骤(11-2);
[0055] (11-2)读取所述的数据处理指针文件中的内容,如果为空,则为处理指定目录下 的所有文件,如果不为空,则继续步骤(11-3);
[0056] (11-3)按指定格式,读取数据处理指针文件中当前正在处理的数据索引文件位置 W及正在处理的数据文件名称。
[0057] 更佳地,所述的数据文件中读取数据,包括W下步骤:
[0058] (12-1)根据数据索引文件中指定的索引文件W及位置,读取索引文件中对应数据 的起始、结束位置;
[0059] (12-2)指定的数据文件的读指针移动到开始位置;
[0060] (12-3)从开始位置读取相应长度的数据。
[0061 ]更佳地,所述的对数据进行拆分,包括W下步骤:
[0062] (13-1)对读取的数据按指定的编码方式进行解码;
[0063] (13-2)对一行数据按指定格式进行拆分,形成数据数组。
[0064] 更佳地,所述的保存数据到关系型数据库,包括W下步骤:
[0065] (14-1)获取数据库连接;
[0066] (14-2)拆分的数据按指定规则写入关系数据库。
[0067] 更佳地,所述的数据文件处理完毕,自动切换下一个数据文件进行读取操作,包括 W下步骤:
[0068] (15-1)判断数据索引文件中起始及结束位置;
[0069] (15-2)判断结束位置是否超过设置的文件大小,如果是,则按数据文件命名规则, 选择下一数据文件,然后继续步骤(15-3),否则继续步骤(11);
[0070] (15-3)判断下一数据文件是否存在,如果否,则线程等待,如果存在,则继续步骤 (11)。
[0071] 采用了该发明中的云计算环境下基于文件实现异步数据存储的方法,具有如下有 益效果:
[0072] (1)采用基于文件的异步数据存储的方法,把要存储的数据先保存到文件中,文件 按设定的大小进行存储,如果数据量超过最大值,则按一定的规则重新生成文件,通过文件 的方式,保证了数据存储的完整性,系统重启后数据不会丢失,同时文件的存储速度相比关 系型数据库在性能方面会大大提升。
[0073] (2)系统启动时,会启动一个守护线程,对文件中的数据进行转储,在守护线程中, 会根据数据库的压力大小调整数据的写入速度,保证系统的稳定可靠,对于已完成写入的 数据W及数据读取的位置,通过指针文件进行记录,保证数据不会被重复读取。对于转存储 完成的文件,则会把相应的数据文件删除,保证保留的数据文件仅是被存储的需要处理的 文件。
[0074] (3)通过该方法的实施,使得数据的存储工作更为简单而高效,通过数据的异步处 理模式,能有效缓解数据库的压力,通过调整数据的写入速度,保证系统的稳定可靠,同时 采用文件作为中间介质进行存储,能有效保证数据的完整性。
[0075] (4)采用本发明的方法,对数据存储的过程更加直观,提高了存储的效率,快捷方 便,系统运行效率较高,性能稳定可靠,降低了开发维护的成本;而且增强了系统可移植性 和可扩展性,使用户专注于业务逻辑的处理;不仅如此,该方法还能够快速适应业务需求的 变化和技术变化,能够支撑建立高度
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1