《海量影像数据集入库策略》由会员分享,可在线阅读,更多相关《海量影像数据集入库策略(20页珍藏版)》请在金锄头文库上搜索。
1、海量影像数据入库策略(oracle为例)栅格数据量越来越大,尤其是影像数据量激增。虽然随着影像数 据量的激增,不建议影像数据本身存储到空间数据库(ArcSDE)中, 但仍有用户为了解决多用户并发、数据安全性、便于备份与恢复等问 题,要将海量的影像或栅格数据存储到空间数据库中。那么,如何更快、更高效的把海量的影像数据入到空间数据库中 呢?需要考虑哪些因素?提前做哪些准备工作?海量影像数据入库 主要做好以下三步工作。第一步:数据库和ArcSDE准备配置DBMS参数配置ArcSDE参数估算DBMS存储空间大小分配DBMS存储空间第二步:数据入库准备原始数据创建栅格数据存储对象创建DBMS统计值第三步
2、:数据查看下面分别对上述内容进行详细介绍。第一步:数据库和ArcSDE准备配置DBMS参数1)设置checkpoint间隔:通过DBA设置初始化参数 LOG_CHECKPOINT_INTERVAL和 LOG_CHECKPOINT_TIMEOUT 为 0, 实现在线redo日志组切换时,强制出现checkpointo2)增加redo日志文件单个文件大小至少为1GB。3)增加数据块缓冲区大小DB_BUFFER_CACHEo4)创建数据块大小为8KB的Oracle数据库。8KB是存储blob 数据最佳的块大小设置,已经成为ArcGIS二进制数据存储的 默认存储类型。16KB或者32KB可能会导致bl
3、ob存储空间的 浪费。配置ArcSDE参数在ArcSDE客户端和服务器之间,ArcSDE使用“传输缓冲区”进 行数据传输。在向空间数据库中写入数据时,当ArcSDE客户端数据 缓冲区达到阈值,数据将被提交到ArcSDE服务器。当ArcSDE服务器 处理数据时,客户端再将更多数据写入到缓冲区,达到阈值时,提交 到ArcSDE服务器。依次循环往复。对于栅格数据,“传输缓冲区”的大小是被ArcSDE服务器参数 RASTERBUFSIZE控制的。默认情况下,该参数大小为200KB。对于大 多数栅格数据入库而言是足够的。在默认参数设置情况下,ArcSDE会为客户端和服务器端分配RASTERBUFSIZE
4、两倍大小的内存,即如果 默认参数设置为200KB,那么ArcSDE客户端将会被分配400KB大小 的内存,服务器端同样会分配400KB大小的内存。除该参数外,ArcSDE在服务器端还提供了三个缓存区参数,用 于从DBMS中读写数据。通过这三个参数,可将服务器端的内存分配 增加到1000KB。如果使用直连direct connection方式(如下图所示),ArcSDE 客户端和服务器端的操作都在客户机上执行,因此通过直连方式分配 的内存是RASTERBUFSIZE参数指定大小的7倍。直连方式下,如果 RASTERBUFSIZE参数指定的大小无法满足未压缩栅格块的大小,仅需修改RASTERBUF
5、SIZE参数默认值的大小,与其他三个缓冲区参数无关。Spatial Database ConnectionServer:Servi ce:Database:Accijiixit。D at ab ase authenti cati onUst!rrL:=iiTiH :F as ew or d:G Save u.EerrL:diTie and p as ew or dOperating EyEtem authLenti cati unTest CoriTiection未压缩块大小计算方式:块高X块高X像素深度因子(pixeldepth)。1)例如:128*128块,像素深度为32位,那么未压缩块大
6、小二128*128*4 (像素深度因子)=65536byte200KBo像素深度与像素深度因子对照表:序号像素深度像素深度因子11bit0.12524bit0.2538bit1416bit2532bit4664bit8RASTERBUFSIZE参数大小设置:如果未压缩块大小大于默认 RASTERBUFSIZE参数,那么必须要对RASTERBUFSIZE参数值进行修改, 否则将会导致错误-SE_RASTER_BUFFER_TOO_SMALL (-294)。RASTERBUFSIZE参数修改方法:使用sdeconfig管理工具进行修 改,修改后的结果写入SDE.SERVER_CONFIG表,具体命
7、令参数如下 Sdeconfig o alter v RASTERBUFSIZE=10240000 u sde p sde。曲 言理员:C:Wiind0VbsysteiTi32cmd.exeMicrosoft Uindous 版本 6.1.76SS版权所有 2009 Microsoft Corporation 保留所有杈利*Cs SUserI)OHCPSdccDnf ig 口 altei* 一* RfiSIEREUFSIZE=102400G0 一 u sdc - p =de提醒:如块的大小未超出默认RASTERBUFSIZE参数大小,请尽量 不要修改RASTERBUFSIZE参数值。因为RAST
8、ERBUFSIZE参数值过大将 会影响整个系统的栅格数据流。估算DBMS存储空间大小为了在海量栅格入库之前,科学的分配和组织存储空间,优化 ArcSDE DBTUNE参数(参见分配DBMS存储空间),需提前对栅格入库 后的数据量进行评估。栅格数据主要存储在以下四个表: SDE_Aux_#/SDE_BLK_#/SDE_BND_#/SDE_RAS_#。其中 SDE_BLK_# 主要 用于存储栅格数据,其数据量大小是其他表的近150倍。因此其他表 忽略不计。估算DBMS存储空间大小主要有两种方法。1)方法一:加载小部分示例数据入库,基于示例数据推算整个 数据入库后所占存储空间的大小。2)方法二:基于
9、公式计算所需空间的大小。两种方法比较,方法一比方法二更加精确。但当数据尚未准备好, 需要提前预估存储空间时,方法二更为适用。为了更准确的预估DBMS存储空间的大小,还需要考虑一下属性 对存储空间的影响:压缩方式/金字塔/波段数目/像素位深。基于示例数据推算所需存储空间基于示例数据推算所需存储空间步骤如下:1. 查询 sde.raster_columns 表,获取 rastercolumn_id 的值。SQL语句如下:select rastercolumn_id from sde.raster_columns where ta ble_name= (Raster dataset/catalog
10、名称);例如:select rastercolumn_id from sde.raster_columns where table_name= TESTRCPL/SQL Deveoper - tytiem-ORC L32 - SQL Window - 5?lKt r-asfcsrcoluimn.id from sdE-.ratt-r_tolumnt where tablt_narne= TESTRJC品 File rqjert drt 5前航on Uebug Tods Maco Ocuir*ents fiepcKts Jndow HelpObjecte4 K |Output | Statist
11、ics |3。 Ml 号: tselect rutercclLiiin xd frzoi sde raj tex ccluncis wh.cze table name: 1TE5TRC1 tr1STAl Dbjec.tff口 CttcfcrtM1 正ST BLOCKS 首 TEST PARK_GDUNDBY 昌 TE5T.5B_IDXSJ TESTS7JDXS 5 TETSDE_ALJX_I 身 test.sdeZbljCi 5 T1TC_E:NC_1 舟 TE5T.5DE_HA5_I B TEST.TESTRCjj Ind,“Qj Constants疙1脸斌jTJ Malesahed vew
12、a_J Ssguercw2J UW3毋-昂晚I手 |营晶|冒llu -* _|_ RflSTERCaLUMNJDSir 3心 1.1r-aslEicDkonjd. nunbEi|3B|. mandakiM2. 获取 SDE_BLK_ (ratercolumn_id)表的大小。SQL 语句如下:select sum(length(rasterband_id)+sum(length(rrd_factor)+sum(length(row_nbr)+sum(length(col_nbr)+sum(length(bl ock_data) total size from sde_blk_(rasterco
13、lumn_id);例如:select sum(length(rasterband_id)+sum(length(rrd_fact or)+sum(length(row_nbr)+sum(length(col_nbr)+sum(length(b lock_data) total size from sde_blk_1;返回结果为:683689656byte=652M,如下图所示。3.推算总数据量所需存储空间。假设总数据量为3TB,示例数据量为120MB。那么3TB所需的存储空间大小推算: 原始数据大小为:3TB*1024*1024=3145728MB所需的 DBMS 存储空间为:3145728M
14、B/120MB=26214.426214.4*652MB=16.3TB。基于公式计算所需存储空间基于公式计算所需存储空间准确度比上述方法要低,如果数据条件允 许,建议采用方法一进行栅格数据量计算。1. 获取数据范围,利用影像的分辨率,计算覆盖该区域的像素总数。2. 计算影像的像素范围:(Extent of raster in pixel units) / (p ixel resolution) = Number of pixels例如:450平方公里,15m分辨率影像,像素范围约为:(km2 to m2 conversion factor) / (the pixel resolution in
15、 m2) 二 pixels (450 km2 * 1,000,000) / (15 x 15)= 2,000,000 pixels3. 考虑影像的波段数目,计算像素总数。例如:15m分辨率影像的波段数目为3,那么总像素数等于:2,000,000 pixels*3Bands=6,000,000 pixels4. 基于像素深度因子计算像素所占的字节数。像素深度与像素深度因子对照表:序号像素深度像素深度因子11bit0.12524bit0.2538bit1416bit2532bit4664bit8例如:16bit 数据所占的字节为:6,000,000 pixels*2=12,000,000Bytes / 10242 = 11.4 MB5. 考虑影像金字塔。金字塔的数据量约为原始影像数据量