Matlab与数据库应用中基于内存的文件加载方法技术

技术编号:7080095 阅读:936 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种Matlab与数据库应用中基于内存的文件加载方法,从数据库中检索需要加载的数据文件FILE,并导入Matlab的内存缓冲区,内存缓冲区中的数据文件记为FILEbuffer;以FILEbuffer作为数据源,映射出数据文件中蕴含的数据对象集。映射过程中数据对象集的提取格式应与数据对象集的保存格式相一致;遍历数据对象集DS,将数据对象载入Matlab工作空间。本发明专利技术消除了文件系统参与数据对象集的映射过程的必要性,为Matlab加载数据库中的数据文件提供了另一种可选的加载途径。

【技术实现步骤摘要】

本专利技术涉及一种Matlab与数据库应用中的文件快速加载方法。
技术介绍
MATLAB是矩阵实验室(Matrix Laboratory)的简称,它提供了强大的科学计算能力及丰富的工具箱和函数库,被认为是工程应用系统中理想的计算引擎。面对工程应用系统中大量的数据文件及数据之间的复杂关系,简单的基于文件系统的数据组织与存储方式已经不能满足应用需求。数据库技术有效解决了计算机信息处理过程中大量数据的组织、存储、共享和冗余消除等问题,因此,在工程应用系统中,广泛采用数据库技术存储数据文件。在Matlab和数据库的工程应用系统中,工程数据文件以特定格式存储于数据库中,以便采用Matlab对其进行计算分析。基于现有的技术手段,在Matlab需要加载存放在数据库中的数据文件时,须先将数据文件从数据库下载到本地文件系统中,经由本地文件系统加载到Matlab中。文件数据的每次加载均须以文件系统作为数据文件交换介质,都会附带两次文件IO操作,给应用系统的性能带来较大影响。在现有的基于文件系统的数据文件加载过程中,从数据文件到数据对象集的映射过程都是以文件系统中的数据文件作为映射过程的数据源。这就决定了在现有的数据文件的加载过程中,文件系统是一个绕不过去的环节。而文件IO是计算机中速度较慢的操作。综上所述,现有的基于文件系统的数据文件加载方法中,文件系统作为临时数据中转介质使得应用系统的数据文件加载性能大幅下降。如果在数据文件加载过程中,能避开文件系统,以更为快速的方法完成从数据文件到数据对象集的映射过程,那么应用系统的数据加载性能就会得到很大的提升。
技术实现思路
为了克服现有技术导致加载性能损失的不足,本专利技术提供一种,在内存中完成从数据文件到数据对象集的映射过程,以内存缓冲区中的数据文件作为映射过程的数据源,消除了文件系统介入数据文件加载过程,显著提升了数据文件加载性能。本专利技术解决其技术问题所采用的技术方案包括以下步骤步骤一从数据库中检索需要加载的数据文件FILEdb,并导入Matlab的内存缓冲区,内存缓冲区中的数据文件记为FILEbuffw ;现有的数据文件加载方法中,数据文件到数据对象集的映射过程须以文件系统中的数据文件作为数据源。因此,数据源的获取过程为FILEdb-> FILEbuffe,-> FILE。本专利技术中基于内存的数据文件加载方法,以内存缓冲区中的数据文件作为数据源,数据源的获取过程简化为 FILEdb- > FILEbuffer0步骤二 以FILEbuffeJt为数据源,映射出数据文件中蕴含的数据对象集DS。映射过程中数据对象集的提取格式应与数据对象集的保存格式相一致。设数据对象集DS,以文件格式f保存为数据文件FILE,即f (此)_ > FILE,现有的从数据文件到数据对象集的映射过程以文件系统中数据文件为数据源,记为F1(FILE)- > DS。本专利技术中的映射过程以内存缓冲区中的数据文件作为数据源,记为C(FILEbuffe)-S DS0 而 Γ1 (FILE) - > DS 须由两步完成,R(FILE)- > FILEbuffer, fr1 (FILEbuffer)- > DS,即 ^(FILE) == fr1 (FILEbuffer)==厂1 (R(FILE)),其中R过程将数据文件从文件系统读入内存缓冲区。本专利技术的映射过程fr1比现有的Γ1比少了 R过程。步骤三遍历数据对象集DS,将数据对象载入Matlab工作空间。本专利技术的有益效果是在内存中完成从数据文件到数据对象集合的映射过程,消除了文件系统参与数据对象集的映射过程的必要性,为Matlab加载数据库中的数据文件提供了另一种可选的加载途径。下面结合附图和实施例对本专利技术进一步说明。附图说明图1为现有的基于文件系统的数据文件加载方法示意图。图2为本专利技术提出的基于内存的数据文件加载方法示意图。具体实施例方式图1所示的现有的基于文件系统的数据加载方法中,到数据对象集的映射过程的数据源必须是文件系统中的文件,因此,数据文件的加载过程必须经由文件系统作为数据中转介质。本专利技术的数据加载过程如图2所示,数据文件到数据对象集的映射过程可以直接在内存中完成,因此,消除了文件系统介入数据加载过程的必要性。简化了数据加载过程处理流程,显著提升了应用系统的数据加载性能。基于内存的数据加载步骤具体如下步骤一在Matlab中建立与数据库的连接,如conn = database (‘ testdb',‘ sc ott' tiger');设置检索结果返回值类型,如setdbprefs(' DataReturnFormat' dat aset');检索数据文件,返回检索结果,如 result = fetch (conn, ‘ SELECTALL OBLOB FROM OTEST')。数据集result中包含了 OBLOB数据成员,即为data, mat对应的文件字节流。步骤二 以result. OBLOB为映射过程的数据源,映射出result. OBLOB中蕴含的数据对象集,一个包含了矩阵数据对象(a = )的数据对象集。图2中的数据对象集存储格式为mat格式,就应该以mat格式从数据文件提取数据对象集。其他数据对象集存储格式同理。步骤三遍历数据对象集,将数据对象载入Matlab工作空间,即完成了基于内存的数据文件加载过程。本专利技术提出的基于内存的数据文件加载方法,与现有的基于文件系统的数据加载方法效果完全一致,所有步骤均在内存中完成,完全消除了文件系统介入数据加载过程,不仅有效克服了现有数据加载方法中文IO引发性能损失的缺陷,而且使得数据文件加载过程更为简洁。权利要求1. 一种,其特征在于包括下述步骤 步骤一从数据库中检索需要加载的数据文件FILE,并导入Matlab的内存缓冲区,内存缓冲区中的数据文件记为FILEbuffw ;步骤二 以FILEbuffe作为数据源,映射出数据文件中蕴含的数据对象集。映射过程中数据对象集的提取格式应与数据对象集的保存格式相一致;步骤三遍历数据对象集DS,将数据对象载入Matlab工作空间。全文摘要本专利技术公开了一种,从数据库中检索需要加载的数据文件FILE,并导入Matlab的内存缓冲区,内存缓冲区中的数据文件记为FILEbuffer;以FILEbuffer作为数据源,映射出数据文件中蕴含的数据对象集。映射过程中数据对象集的提取格式应与数据对象集的保存格式相一致;遍历数据对象集DS,将数据对象载入Matlab工作空间。本专利技术消除了文件系统参与数据对象集的映射过程的必要性,为Matlab加载数据库中的数据文件提供了另一种可选的加载途径。文档编号G06F9/445GK102323889SQ20111023042公开日2012年1月18日 申请日期2011年8月11日 优先权日2011年8月11日专利技术者张延园, 林奕, 樊峰峰 申请人:西北工业大学本文档来自技高网...

【技术保护点】
1.一种Matlab与数据库应用中基于内存的文件加载方法,其特征在于包括下述步骤:步骤一:从数据库中检索需要加载的数据文件FILE,并导入Matlab的内存缓冲区,内存缓冲区中的数据文件记为FILEbuffer;步骤二:以FILEbuffer作为数据源,映射出数据文件中蕴含的数据对象集。映射过程中数据对象集的提取格式应与数据对象集的保存格式相一致;步骤三:遍历数据对象集DS,将数据对象载入Matlab工作空间。

【技术特征摘要】

【专利技术属性】
技术研发人员:樊峰峰张延园林奕
申请(专利权)人:西北工业大学
类型:发明
国别省市:87

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1