CN102323889A - Matlab与数据库应用中基于内存的文件加载方法 - Google Patents
Matlab与数据库应用中基于内存的文件加载方法 Download PDFInfo
- Publication number
- CN102323889A CN102323889A CN201110230425A CN201110230425A CN102323889A CN 102323889 A CN102323889 A CN 102323889A CN 201110230425 A CN201110230425 A CN 201110230425A CN 201110230425 A CN201110230425 A CN 201110230425A CN 102323889 A CN102323889 A CN 102323889A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- matlab
- database
- data file
- 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
本发明公开了一种Matlab与数据库应用中基于内存的文件加载方法,从数据库中检索需要加载的数据文件FILE,并导入Matlab的内存缓冲区,内存缓冲区中的数据文件记为FILEbuffer;以FILEbuffer作为数据源,映射出数据文件中蕴含的数据对象集。映射过程中数据对象集的提取格式应与数据对象集的保存格式相一致;遍历数据对象集DS,将数据对象载入Matlab工作空间。本发明消除了文件系统参与数据对象集的映射过程的必要性,为Matlab加载数据库中的数据文件提供了另一种可选的加载途径。
Description
技术领域
本发明涉及一种Matlab与数据库应用中的文件快速加载方法。
背景技术
MATLAB是矩阵实验室(Matrix Laboratory)的简称,它提供了强大的科学计算能力及丰富的工具箱和函数库,被认为是工程应用系统中理想的计算引擎。
面对工程应用系统中大量的数据文件及数据之间的复杂关系,简单的基于文件系统的数据组织与存储方式已经不能满足应用需求。数据库技术有效解决了计算机信息处理过程中大量数据的组织、存储、共享和冗余消除等问题,因此,在工程应用系统中,广泛采用数据库技术存储数据文件。
在Matlab和数据库的工程应用系统中,工程数据文件以特定格式存储于数据库中,以便采用Matlab对其进行计算分析。基于现有的技术手段,在Matlab需要加载存放在数据库中的数据文件时,须先将数据文件从数据库下载到本地文件系统中,经由本地文件系统加载到Matlab中。文件数据的每次加载均须以文件系统作为数据文件交换介质,都会附带两次文件IO操作,给应用系统的性能带来较大影响。
在现有的基于文件系统的数据文件加载过程中,从数据文件到数据对象集的映射过程都是以文件系统中的数据文件作为映射过程的数据源。这就决定了在现有的数据文件的加载过程中,文件系统是一个绕不过去的环节。而文件IO是计算机中速度较慢的操作。
综上所述,现有的基于文件系统的数据文件加载方法中,文件系统作为临时数据中转介质使得应用系统的数据文件加载性能大幅下降。如果在数据文件加载过程中,能避开文件系统,以更为快速的方法完成从数据文件到数据对象集的映射过程,那么应用系统的数据加载性能就会得到很大的提升。
发明内容
为了克服现有技术导致加载性能损失的不足,本发明提供一种Matlab与数据库应用中基于内存的文件加载方法,在内存中完成从数据文件到数据对象集的映射过程,以内存缓冲区中的数据文件作为映射过程的数据源,消除了文件系统介入数据文件加载过程,显著提升了数据文件加载性能。
本发明解决其技术问题所采用的技术方案包括以下步骤:
步骤一:从数据库中检索需要加载的数据文件FILEdb,并导入Matlab的内存缓冲区,内存缓冲区中的数据文件记为FILEbuffer;
现有的数据文件加载方法中,数据文件到数据对象集的映射过程须以文件系统中的数据文件作为数据源。因此,数据源的获取过程为FILEdb->FILEbuffer->FILE。本发明中基于内存的数据文件加载方法,以内存缓冲区中的数据文件作为数据源,数据源的获取过程简化为FILEdb->FILEbuffer。
步骤二:以FILEbuffer作为数据源,映射出数据文件中蕴含的数据对象集DS。映射过程中数据对象集的提取格式应与数据对象集的保存格式相一致。
设数据对象集DS,以文件格式f保存为数据文件FILE,即f(DS)->FILE,现有的从数据文件到数据对象集的映射过程以文件系统中数据文件为数据源,记为f-1(FILE)->DS。本发明中的映射过程以内存缓冲区中的数据文件作为数据源,记为f1 -1(FILEbuffer)->DS。而f-1(FILE)->DS须由两步完成,R(FILE)->FILEbuffer,f1 -1(FILEbuffer)->DS,即f-1(FILE)==f1 -1(FILEbuffer)==f1 -1(R(FILE)),其中R过程将数据文件从文件系统读入内存缓冲区。本发明的映射过程f1 -1比现有的f-1比少了R过程。
步骤三:遍历数据对象集DS,将数据对象载入Matlab工作空间。
本发明的有益效果是:在内存中完成从数据文件到数据对象集合的映射过程,消除了文件系统参与数据对象集的映射过程的必要性,为Matlab加载数据库中的数据文件提供了另一种可选的加载途径。
下面结合附图和实施例对本发明进一步说明。
附图说明
图1为现有的基于文件系统的数据文件加载方法示意图。
图2为本发明提出的基于内存的数据文件加载方法示意图。
具体实施方式
图1所示的现有的基于文件系统的数据加载方法中,到数据对象集的映射过程的数据源必须是文件系统中的文件,因此,数据文件的加载过程必须经由文件系统作为数据中转介质。
本发明的数据加载过程如图2所示,数据文件到数据对象集的映射过程可以直接在内存中完成,因此,消除了文件系统介入数据加载过程的必要性。简化了数据加载过程处理流程,显著提升了应用系统的数据加载性能。
基于内存的数据加载步骤具体如下:
步骤一:在Matlab中建立与数据库的连接,如conn=database(′testdb′,′scott′,′tiger′);设置检索结果返回值类型,如setdbprefs(′DataReturnFormat′,′dataset′);检索数据文件,返回检索结果,如result=fetch(conn,′SELECTALL OBLOB FROM OTEST′)。数据集result中包含了OBLOB数据成员,即为data.mat对应的文件字节流。
步骤二:以result.OBLOB为映射过程的数据源,映射出result.OBLOB中蕴含的数据对象集,一个包含了矩阵数据对象(a=[1 2 3])的数据对象集。图2中的数据对象集存储格式为mat格式,就应该以mat格式从数据文件提取数据对象集。其他数据对象集存储格式同理。
步骤三:遍历数据对象集,将数据对象载入Matlab工作空间,即完成了基于内存的数据文件加载过程。
本发明提出的基于内存的数据文件加载方法,与现有的基于文件系统的数据加载方法效果完全一致,所有步骤均在内存中完成,完全消除了文件系统介入数据加载过程,不仅有效克服了现有数据加载方法中文IO引发性能损失的缺陷,而且使得数据文件加载过程更为简洁。
Claims (1)
1.一种Matlab与数据库应用中基于内存的文件加载方法,其特征在于包括下述步骤:
步骤一:从数据库中检索需要加载的数据文件FILE,并导入Matlab的内存缓冲区,内存缓冲区中的数据文件记为FILEbuffer;
步骤二:以FILEbuffer作为数据源,映射出数据文件中蕴含的数据对象集。映射过程中数据对象集的提取格式应与数据对象集的保存格式相一致;
步骤三:遍历数据对象集DS,将数据对象载入Matlab工作空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110230425A CN102323889A (zh) | 2011-08-11 | 2011-08-11 | Matlab与数据库应用中基于内存的文件加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110230425A CN102323889A (zh) | 2011-08-11 | 2011-08-11 | Matlab与数据库应用中基于内存的文件加载方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102323889A true CN102323889A (zh) | 2012-01-18 |
Family
ID=45451634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110230425A Pending CN102323889A (zh) | 2011-08-11 | 2011-08-11 | Matlab与数据库应用中基于内存的文件加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102323889A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543959A (zh) * | 2013-10-08 | 2014-01-29 | 深圳市国泰安信息技术有限公司 | 海量数据高速缓存的方法及装置 |
-
2011
- 2011-08-11 CN CN201110230425A patent/CN102323889A/zh active Pending
Non-Patent Citations (4)
Title |
---|
《http://www.mathworks.com/support/tech-notes/1600/1605.shtml》 20030804 Mathworks Corporation "MEX-files Guide" 第1-17页 1 , * |
《大学物理实验》 20100831 吴迪 等 "基于MATLAB及数据库技术的实验数据检验及存取研究" 第67-69页 1 第23卷, 第4期 * |
MATHWORKS CORPORATION: ""MEX-files Guide"", 《HTTP://WWW.MATHWORKS.COM/SUPPORT/TECH-NOTES/1600/1605.SHTML》 * |
吴迪 等: ""基于MATLAB及数据库技术的实验数据检验及存取研究"", 《大学物理实验》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543959A (zh) * | 2013-10-08 | 2014-01-29 | 深圳市国泰安信息技术有限公司 | 海量数据高速缓存的方法及装置 |
CN103543959B (zh) * | 2013-10-08 | 2016-12-07 | 深圳国泰安教育技术股份有限公司 | 海量数据高速缓存的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103999061B (zh) | 存储器件存取系统 | |
CN110825748A (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
CN101625703B (zh) | 一种内存数据库的日志合并方法和系统 | |
CN101645043B (zh) | 写数据的方法、读数据的方法及存储设备 | |
CN103019884B (zh) | 基于虚拟机快照的内存页去重方法及装置 | |
CN103856567A (zh) | 基于Hadoop分布式文件系统的小文件存储方法 | |
CN102609360A (zh) | 一种数据处理方法、装置及系统 | |
CN102622434B (zh) | 数据存储方法、查找方法及装置 | |
CN102663090A (zh) | 元数据查询方法和装置 | |
CN105446665A (zh) | 一种计算机存储加速系统及其优化方法 | |
CN102521419A (zh) | 分级存储的实现方法和系统 | |
CN102682108A (zh) | 一种行列混合的数据库存储方法 | |
CN102411632B (zh) | 基于链表的内存数据库页式存储方法 | |
US8719235B2 (en) | Controlling tape layout for de-duplication | |
CN109313605A (zh) | 基于处理器的系统中的存储器中的经压缩的存储器行的基于优先级的存储和存取 | |
CN107247624A (zh) | 一种面向Key‑Value系统的协同优化方法及系统 | |
CN116257523A (zh) | 一种基于非易失存储器的列式存储索引方法及装置 | |
CN102542041A (zh) | 栅格数据处理方法及系统 | |
CN100580669C (zh) | 在Flash存储介质上的关于文件分配表的缓存实现方法 | |
CN111752972A (zh) | 基于RocksDB的key-value存储模式下的数据关联查询方法及系统 | |
CN102768672B (zh) | 一种磁盘空间管理方法和装置 | |
CN102609486A (zh) | 一种Linux文件系统的数据读写加速方法 | |
CN102929935A (zh) | 一种基于事务的大容量数据读写方法 | |
CN103020077A (zh) | 一种电力系统实时数据库内存管理方法 | |
CN102323889A (zh) | Matlab与数据库应用中基于内存的文件加载方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120118 |