一种基于SAAS的出版物平台的海量数据读取方法.pdf

上传人:r7 文档编号:4025695 上传时间:2018-08-12 格式:PDF 页数:4 大小:147.02KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310489876.2

申请日:

2013.10.18

公开号:

CN104572699A

公开日:

2015.04.29

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 17/30申请公布日:20150429|||实质审查的生效IPC(主分类):G06F 17/30申请日:20131018|||公开

IPC分类号:

G06F17/30; G06F9/44

主分类号:

G06F17/30

申请人:

镇江鼎拓科技信息有限公司

发明人:

不公告发明人

地址:

212009江苏省镇江市镇江新区智慧大道(经十二路)689号1516室

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

一种基于SAAS的出版物平台的海量数据读取方法:随着信息技术和传感器技术的飞速发展,使得遥感图像的数据量呈几何级数的递增,而传统的利用文件指针来读取文件的方法,只能正确读取2GB以下的数据。随着云技术的发展所有的数据已放致大型数据集中,此前的读取方法已无法满足现在用户的发展需要,而此出版物平台由于特别的原因,存储大量的图片数据,现用VC++实量此特殊的读取方法。

权利要求书

权利要求书
1.  一种基于SAAS的出版物平台的海量数据读取方法:该方法主要是利用内存映射文件技术。

2.  根据权利要求1的XML数据库的海量数据读取方法,此方法主要利用计算机的HANDLE CreateFileMapping函数和MapViewofFile函数。

3.  HANDLE CreateFileMapping函数创建一个文件内存映射对象 ,以告知系统文件映射对象需要多大的物理存储器。

4.  MapViewofFile函数使用该函数的时候 ,由于它的返回值 LPVOID是一个 32Bits的指针类型 ,所以在处理海量数据文件的时候 ,还要进行分块映射 ,并且一次映射到进程地址空间的数据量要小于 231 -1字节数。

说明书

说明书一种基于SAAS的出版物平台的海量数据读取方法
技术领域
本发明涉及一种基于SAAS的出版物平台的海量数据读取方法,特别涉及的是基于SAAS技术的图片读取技术。
背景技术
随着信息技术和传感器技术的飞速发展 ,现代遥感数据源不断丰富 ,使得遥感影像图的数据量从以前的几兆、几十兆增长到现在的几百兆 ,甚至是几 GB、几十 GB。在这种情况下 ,如果对图像文件的处理仍采用传统的方法 ,显然是不行的。一方面,计算机硬件环境的发展已经远远不能满足图像处理的需要;另一方面 ,传统的利用文件指针方式来读取图像文件的方法,只能正确读取文件前面 231 -1(约 2GB)字节 ,所以不能满足大于 2GB以上的影像文件的读取。本文是在笔者开发的中国海岸带及近海卫星遥感综合应用系统 (Max_Deskpro)过程中,结合对海量遥感影像进行处理的要求 ,根据实际提出的一种快速读取海量图像的方法。实现该方法的主要技术包括内存映射文件技术、动态构建影像金字塔、缓存技术、图像分块技术。 
 
发明内容
一种基于SAAS的出版物平台的海量数据读取方法;本方法是利用内存映射文件,利用计算机的内存进行大量映射文件。内存映射文件在对文件进行读写操作的时候 , Win32 API和 MFC都提供了支持这些操作的函数和类 ,如 Win32 API的 WriteFile( ) , ReadFile( )和 MFC提供的 CFile类。这些函数在文件的数据量小于 ( 231 -1)字节的时候 ,在大多数场合是可以满足用户的需求。但是当文件的数据量大于 ( 231 -1)字节 (约 2GB)时候 ,就不能正确地使用 Seek( )函数定位到要读取数据的位置 ,这是因为 Seek( LONG Loff, UINT nFrom)函数提供的 Loff参数是 LONG型的 ,它最多支持 ( 231 -1)字节的偏移量。假如图像文件的数据量大于 2GB的话 ,就不能定位到 2GB以后的部分来读取数据。由于内存映射文件技术的主要函数都提供了两个 DWORD型参数来分别表示文件大小或偏移量的低 32Bits和高 32Bits,这两个参数加起来共 64Bits,因此它所支持的最大文件长度为 16EB( 264 -1字节 ),几乎可以满足对任何海量数据文件的处理。
下面对两个关键函数进行具体说明 : 
HANDLE CreateFileMapping( HANDLE hFile, 
LPSECURITY_ATTRIBUTES lpFileMappingAttributes, 
DWORD flProtect, 
DWORD dwMaximumSizeHigh, 
DWORD dwMaximumSizeLow, 
LPCTSTR lpName);
该函数创建一个文件内存映射对象 ,以告知系统文件映射对象需要多大的物理存储器。由于内存映射文件的物理存储器实际上是本地硬盘上的一个文件,而不是从系统的页文件中分配的内存 ,所以 CreateFileMapping( )函数不分配进程的地址空间 ,不占用内存空间 ,因此在实际应用中通常是一次性把整个文件创建为内存映射对象。如果要把文件中的数据映射到进程的地址空间中 ,则需要调用 MapViewofFile( )函数。该函数的具体定义如下 : 
LPVOID MapViewofFile( 
HANDLE hFileMappingObject, 
DWORD dwDesiredAccess, 
DWORD dwFileoffsetHigh, 
DWORD dwFileoffsetLow, 
DWORD dwNumberofBytesToMap );
调用该函数后 ,访问文件中的数据 ,就如同它位于内存中一样 ,这样就省去了对文件执行I/O操作的时间 ,所以它比用 CFile类和 Win32API的 WriteFile( ) , ReadFile( )速度上要快得多。在使用该函数的时候 ,由于它的返回值 LPVOID是一个 32Bits的指针类型 ,所以在处理海量数据文件的时候 ,还要进行分块映射 ,并且一次映射到进程地址空间的数据量要小于 231 -1字节数。文件内存映射的开始位置 (即文件的偏移地址)还必须满足是操作系统分配粒度的整数倍 (通常操作系统的分配粒度是 64K)。
使用内存映射文件的一般步骤:
(1)首先利用函数CreateFile( )打开一个文件内核对象;
  (2)执行 CreateFileMapping( )函数创建一个文件内存映射对象;
(3)运用MapViewofFile( )函数将整个文件的部分或者全部数据映射到内存中;
(4)利用UnmapViewofFile( )函数解除文件的内存映射;
(5)最后利用UnmapViewofFile释放句柄,否则会造成资源泄露。

一种基于SAAS的出版物平台的海量数据读取方法.pdf_第1页
第1页 / 共4页
一种基于SAAS的出版物平台的海量数据读取方法.pdf_第2页
第2页 / 共4页
一种基于SAAS的出版物平台的海量数据读取方法.pdf_第3页
第3页 / 共4页
点击查看更多>>
资源描述

《一种基于SAAS的出版物平台的海量数据读取方法.pdf》由会员分享,可在线阅读,更多相关《一种基于SAAS的出版物平台的海量数据读取方法.pdf(4页珍藏版)》请在专利查询网上搜索。

一种基于SAAS的出版物平台的海量数据读取方法:随着信息技术和传感器技术的飞速发展,使得遥感图像的数据量呈几何级数的递增,而传统的利用文件指针来读取文件的方法,只能正确读取2GB以下的数据。随着云技术的发展所有的数据已放致大型数据集中,此前的读取方法已无法满足现在用户的发展需要,而此出版物平台由于特别的原因,存储大量的图片数据,现用VC+实量此特殊的读取方法。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1