Geodatabase 10.2新特性(一) – ArcGIS技术研究 – 博客频道 – CSDN.NET http://t.cn/zYgspRC Geodatabase10.2新特性(二)QA – ArcGIS技术研究 – 博客频道 – CSDN.NET http://t.cn/zYeQntt ArcGIS历史归档:http://wenku.baidu.com/view/2d12324e852458fb77
Geodatabase%2010.2新特性(一)%20-%20ArcGIS技术研究%20-%20博客频道%20-%20CSDN.NET%20http://t.cn/zYgspRC%20%20
Geodatabase10.2新特性(二)Q&A%20-%20ArcGIS技术研究%20-%20博客频道%20-%20CSDN.NET%20http://t.cn/zYeQntt%20%20
ArcGIS历史归档:http://wenku.baidu.com/view/2d12324e852458fb770b56c3.html%20
Geodatabase10.2的新特性在数据归档方面变化比较大:
Geodatabase%20archiving%20is%20now%20supported%20on%20data%20that%20has%20not%20been%20versioned.
Geodatabase10.2之前版本的数据归档:
1:将存储在ArcSDE的要素类注册版本(注册版本选择不打勾)
2:将注册版本的要素类Enable%20Archiving
Geodatabase10.2以后版本的数据归档
1:上面介绍的注册版本数据的数据归档
2:如果要素类不注册版本,也可以直接进行数据归档
3:ArcToolbox工具增加了两个关于数据归档的GP工具
本文就介绍一下,要素类不注册版本,在使用数据归档方面有什么变化。
****************************************************************************************************
1:我们直接将SDE里面的要素类base(非注册版本)进行Enable%20Archiving
那么对比起前注册版本数据进行Enable%20Archiving,数据库不会产生base_H这个,但是我们可以查看这个base表,里面也添加了GDB_FROM_DATE、GDB_TO_DATE、GDB_ARCHIVE_OID。
SQL>%20desc%20sde.CONTINENT%20名称%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20是否为空?%20类型%20-----------------------------------------%20--------%20--------------------%20OBJECTID%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NOT%20NULL%20NUMBER(38)%20CONTINENT%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NVARCHAR2(13)%20SHAPE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SDE.ST_GEOMETRY%20GDB_FROM_DATE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NOT%20NULL%20TIMESTAMP(6)%20GDB_TO_DATE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NOT%20NULL%20TIMESTAMP(6)%20GDB_ARCHIVE_OID%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NOT%20NULL%20NUMBER(38)
但是将这个数据放%20在ArcMap中查看属性表并没有看到这三个新家字段,我们可以看到,非注册版本数据进行数据归档,系统又创建了一个同名视图base_evw
SQL>%20desc%20sde.CONTINENT_EVW%20名称%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20是否为空?%20类型%20-----------------------------------------%20--------%20-------------------%20OBJECTID%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NOT%20NULL%20NUMBER(38)%20CONTINENT%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NVARCHAR2(13)%20SHAPE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SDE.ST_GEOMETRY
我们可以查看这个视图的创建SQL语句
CREATE%20OR%20REPLACE%20VIEW%20CONTINENT_EVW%20ASSELECT%20OBJECTID,CONTINENT,SHAPE%20FROM%20SDE.CONTINENT%20WHERE%20GDB_TO_DATE%20=%20to_timestamp('12.31.9999%2023:59:59.000','mm.dd.yyyy%20HH24:MI:SS.FF3');
注意:Versioned%20views%20created%20in%20ArcGIS%2010.2%20or%20later%20releases%20follow%20the%20naming%20convention%20
_evw.
也就是说,我们桌面上看到的非版本数据进行数据归档其实就是一个多版本视图。
这里面有一个问题希望大家知晓:因为我在进行数据归档时候,时间字段的信息并不是我笔记本的时间,而且帮助上说的UTC时间。
It%20is%20important%20to%20understand%20how%20ArcGIS%20represents%20time%20when%20change%20is%20recorded.%20History%20can%20be%20recorded%20as%20either%20valid%20time,%20transaction%20time,%20or%20Coordinated%20Universal%20Time%20(UTC).%20Valid%20time%20is%20the%20actual%20moment%20at%20which%20a%20change%20occurred%20in%20the%20real%20world%20and%20is%20typically%20recorded%20by%20the%20user%20who%20is%20applying%20the%20change.%20Transaction%20time%20is%20the%20time%20an%20event%20was%20recorded%20in%20the%20database.%20Transaction%20times%20are%20generated%20automatically%20by%20the%20system.%20UTC%20is%20the%20primary%20standard%20used%20to%20regulate%20clocks%20and%20time%20over%20the%20Internet.%20For%20archiving%20on%20versioned%20data%20ArcGIS%20uses%20transaction%20time,%20which%20is%20based%20on%20the%20current%20server%20time,%20to%20record%20changes%20to%20the%20data%20when%20changes%20are%20saved%20or%20posted%20to%20the%20DEFAULT%20version.%20Transaction%20time%20and%20the%20time%20the%20event%20occurred%20in%20the%20real%20world%20are%20rarely%20the%20same%20time.%20Time%20will%20elapse%20between%20an%20event%20happening%20in%20the%20real%20world%20and%20its%20being%20recorded%20in%20the%20database.%20For%20example,%20a%20parcel%20is%20sold%20on%20May%2014,%202006;%20however,%20the%20change%20is%20not%20recorded%20to%20the%20data%20until%20June%205,%202006.%20The%20transaction%20time%20of%20June%205,%202006,%20is%20recorded%20in%20the%20archive%20class%20for%20this%20change.When%20the%20edit%20occurs,%20ArcGIS%20will%20archive%20the%20transaction本文来源[email protected]搞@^&代*@码)网9%20to%20the%20archive%20class.%20The%20difference%20between%20the%20time%20of%20the%20real-world%20event%20and%20the%20transaction%20time%20may%20seem%20insignificant,%20but%20it%20becomes%20more%20apparent%20when%20queries%20are%20performed%20against%20the%20archived%20information.%20Backlogs%20in%20editing%20and%20updating%20data%20are%20not%20uncommon%20in%20production%20systems,%20and%20they%20result%20in%20the%20time%20difference%20and%20lag%20between%20valid%20and%20transaction%20time.The%20difference%20between%20valid%20and%20transaction%20time%20is%20also%20an%20issue%20in%20situations%20where%20history%20is%20recorded%20in%20a%20multiuser%20environment%20with%20many%20different%20users%20or%20departments%20editing%20the%20database.%20The%20sequence%20in%20which%20changes%20are%20performed%20and%20logged%20in%20the%20database%20may%20not%20be%20the%20same%20order%20in%20which%20those%20changes%20occurred%20in%20the%20real%20world.Archiving%20on%20nonversioned%20data%20uses%20UTC%20to%20represent%20time.%20Changes%20to%20the%20data%20are%20recorded%20when%20edits%20are%20saved%20during%20an%20edit%20session.
最后一行,非版本数据归档使用了UTC时间。版本数据的归档还是服务器时间或者北京时间。
create%20table%20CONTINENT(%20%20objectid%20%20%20%20%20%20%20%20INTEGER%20not%20null,%20%20continent%20%20%20%20%20%20%20NVARCHAR2(13),%20%20shape%20%20%20%20%20%20%20%20%20%20%20ST_GEOMETRY,%20%20gdb_from_date%20%20%20TIMESTAMP(6)%20default%20sys_extract_utc(systimestamp)%20not%20null,%20%20gdb_to_date%20%20%20%20%20TIMESTAMP(6)%20default%20to_timestamp('12.31.9999%2023:59:59.000000','mm.dd.yyyy%20HH24:MI:SS.FF6')%20not%20null,%20%20gdb_archive_oid%20INTEGER%20not%20null)
Oracle数据库和SQL%20Server都是一样的使用UTC时间。
***************************************************************************
关于UTC时间
协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC。它从英文“Coordinated%20Universal%20Time”/法文“Temps%20Universel%20Cordonné”而来。中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。
可以简单理解:UTC时间=北京时间-8小时
更多参考:
UTC时间与北京时间的差多久:http://blog.gaodaima.com/dbafans/article/details/4393017
如何將%20UTC%20時間轉換為當地時間:http://support.microsoft.com/kb/884804/zh-tw
至于为什么Esri将非版本数据采用UTC时间,我现在也不太明白,帮助也没有写太多,但是这就出现了一个问题。
1:我对非版本数据进行数据归档,这个起始时间是UTC时间。
2:我进行数据编辑之前,要建立历史标记,这个历史标记的时间是服务器时间
3:进行相关数据编辑对要素的起始时间仍然是UTC时间。
那么在进行历史版本查询的时候,UTC时间和服务器时间差8个小时,肯定是查不到的。(所以,在建立历史标记的时候,可以自己减去8小时即可)
也可以直接修改操作系统的时区,但是个人认为这个方法不可取,毕竟系统记录的时间多为北京时间而不是UTC时间
关于这个问题,有可能出现个人理解的偏颇之处,仅供参考
****************************************************************
非版本数据的数据归档编辑跟版本数据一样
1:新创建的要素具有将%20gdb_from_date%20属性设置为存档操作的时间戳,将%20gdb_to_date%20属性设置为%2012/31/9999%20的属性值。
2:在编辑会话中更新的要素通过将%20gdb_to_date%20属性的属性值设置为存档操作的时间戳更新基础表中的相关的行和插入新行,为将%20gdb_from_date%20属性设置为存档操作的时间戳,将%20gdb_to_date%20属性设置为%2012/31/9999%20的属性值。
3:在编辑会话中删除的功能通过设置%20gdb_to_date%20属性值等于存档操作的时间戳更新基础表中的相关的行。
****************************************************************
而且我们也可以直接使用SQL进行数据编辑,这个时候,系统会自动对归档的起始时间以及归档ID进行维护
SQL>%20insert%20into%20CONTINENT(objectid,continent,shape)%20values(100,'aa',sde.ST_PolyFromText('polygon%20((52%2028,58%2028,58%2023,52%2023,52%2028))',%20300002));已创建%201%20行。SQL>%20commit;提交完成。SQL>%20select%20objectid,continent,gdb_from_date,gdb_to_date,gdb_archive_oid%20from%20continent%20where%20objectid=100;%20OBJECTID%20CONTINENT%20%20%20%20GDB_FROM_DATE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20GDB_TO_DATE%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20GDB_ARCHIVE_OID---------------------------------------%20---------------------------%20-------------------------------------%20%20100%20aa%20%20%20%20%20%20%20%20%20%20%20%2028-4月%20-13%2007.10.22.350000%20下午%20%2031-12月-99%2011.59.59.000000%20下午%20%20%20%20%20%20%20%2015%20
****************************************************************
有好多用户反映,数据归档三个按钮,用时候比较麻烦,老是不知道怎么操作这些功能是可用的。
1:查看历史版本
2:添加归档类
3:添加历史标记
同样可以使用版本管理器来管理
****************************************************************
——————————————————————————————————-
——————————————————————————————————-