当ArcGIS10.2遇到Teradata
随着计算机技术的不断发展,GIS技术也紧跟IT技术的热潮,从三维技术、到移动技术,从大数据技术到云计算技术,只要IT有的新技术,Esri都会一直紧跟最新的技术潮流。
那么Teradata作为数据仓库的主要实践者,被广大用户所应用而且有很好的口碑。
Teradata数据仓库介绍
Teradata数据仓库拥有全球领先的技术,其主要软件和硬件产品包括:Teradata数据库、Teradata数据仓库软件、企业数据仓库、动态企业数据仓库、数据仓库专用平台。
Teradata数据仓库配备性能最高、最可靠的大规模并行处理 (MPP) 平台,能够高速处理海量数据。它使得企业可以专注于业务,无需花费大量精力管理技术,因而可以更加快速地做出明智的决策,实现 ROI 最大化。Teradata在整体上是按Shared Nothing 架构体系进行组织的,他的定位就是大型数据仓库系统,定位比较高,他的软硬件都是NCR自己的,其他的都不识别;所以一般的企业用不起,价格很贵。由于Teradata通常被用于OLAP应用,因此单机的Teradata系统很少见,即使是单机系统,Teradata也建议使用SMP结构以尽可能地提供更好的数据库性能.
典型案例:上海证券交易所的数据仓库就是teradata,每秒的io能达到2G,有1000多块磁盘,硬件昂贵。全表扫描一个几千万条的记录在几秒就完成了
Teradata对空间数据的支持
Teradata 在 Release 13.0 的版本中增加了空间扩展包,为TD数据库提供了管理和操作空间数据的能力[1]。
从总体上看,Teradata GeoSpatial 扩展包括
1)一系列的空间数据类型:Point, Line, Polygon等空间数据类型;
2)数据类型使用UDT加以实现,存储在 Teradata 的 SYSUDLIB 中;
3)数据类型操作函数使用了开源空间库 Geos, Proj, GDdal/Ogr;
4)SYSSPATIAL 存储所有的元数据表和空间函数;
5)TDGEOINPORT 工具支持从常见空间数据格式数据(Shape, TAB…)到 TD 数据库的数据加载。
此外,目前的 TD 空间数据支持部分的 GIS 数据可视化工具的直接可视化操作。
1)数据加载:空间数据可以使用现有TD的ETL加载工具(如 MultiLoad)进行加载,其支持WKB和WKT格式的空间数据。除此之外,TD还可以通过TDGEOIMPORT加载常见空间数据格式的文件,比如ESRI的Shape文件。
2)函数:用户SYSSPATIAL包含了一系列的函数集,存储过程和数据表,用于空间数据的处理。
3)数据类型:数据库SYSUDTLIB包含了所有的空间数据类型的定义。数据类型定义包含了空间数据类型的结构以及可以对其进行操作的运算函数。
4)查询语言:用户可以使用SQL以及Teradata客户端API和查询工具,通过标准的SQL接口访问空间数据类型。
2. 数据类型与操作
数据类型方面,Teradata Spatial 兼容 SQL/MM 标准。
SQL/MM Geometry Hierarchy
3. 空间元数据
SYSSPATIAL 数据库实际存在两种类型的空间元数据。SYSSPATIAL.GEOMETRY_COLUMNS 表存储了所有包含空间列的数 据表的信息。该表使用 AddGeometryColumn 和 DropGeometryColumn 存储过程进行维护。 SYSSPATIAL.SPATIAL_REF_SYS 存储空间参考相关的信息。该表在安装时进行初始化,存储在该表中的SRS信息将会被 ST_TRANSFORM 使用。
4. 数据构造与上载
空间数据可以使用任何数据上载工具或者客户端 API 加载到数据库中。空间数据构造时支持WKB和WKT形式的构造方法。TDGEOIMPORT 是一个 windows 的客户端工具,其可以将空间数据格式转换为Teradata加载工具兼容的格式。
5. 空间索引
支持 Tessellate Index,本质上是多级网格索引,需要用户输入和调整网格划分的参数,不支持R-tree Index。
1.5 版本的 Teradata GeoSpatial Release的空间扩展从功能和实现的角度相对于PostGIS和Oracle Spatial之类的空间扩展来说,从功能上还相对有限。内核中的针对空间数据优化器路径选择的改进,MPP环境下空间连接的处理,空间算子的执行等内容还没有在该版本中涉及,也希望今后的TD Spatial Release版本能有更多的改进与增强。在使用上,SYSSPATIAL数据库实际存在两种类型的空间元数据。SYSSPATIAL.GEOMETRY_COLUMNS表存储了所有包含空间列的数据表的信息。该表使用AddGeometryColumn和DropGeometryColumn存储过程进行维护。SYSSPATIAL.SPATIAL_REF_SYS存储空间参考相关的信息。该表在安装时进行初始化,存储在该表中的SRS信息将会被ST_TRANSFORM使用。
==================================================================================================
TeraData与ArcGIS10.2
关于数据仓库,最主要的三个产品包括Oracle的exdata,IBM的netezza,以及teradata,前两者都是以一体机的形式展现给客户,也就是硬件软件一块给用户,而后者根据我查看到的资料还有自己的实践好像可以不需要绑定硬件(因为我在官网下载了相关的虚拟机,这个只是猜测),而且ArcGIS从10版本就支持了IBM的netezza,那么本文主要是来看看Esri的ArcGIS是怎么与Teradata进行结合的。
首先了解一下,ArcGIS10.2对teradata的系统需求:http://resources.arcgis.com/en/help/system-requirements/10.2/index.html#//015100000090000000
- ArcGIS10.2
- Teradata服务器端
- Teradata ICU library
- Teradata GSS client package
- Teradata ODBC driver
- Teradata服务器:http://downloads.teradata.com/download/database/teradata-express/vmware
- For Windows, see http://downloads.teradata.com/download/connectivity/odbc-driver/windows
- For Linux, see http://downloads.teradata.com/download/connectivity/odbc-driver/linux
2:然后安装 Teradata ODBC driver
配置ODBC 驱动(注意:下载32Bit包需要配置32Bit的ODBC)
- On Windows operating systems, change the following settings in the set the Teradata ODBC Driver Options dialog box:
- Set the session mode to Teradata.
- Select the option to Use Native Large Object Support.
- On Linux operating systems, set the following parameters in the odbc.ini file:
- SessionMode=Teradata
- UseNativeLOBSupport=Yes
Create user sde as perm=200000000,spool=100000000,password=sde;
dbc: 安装后包含所有可用空间,跟oracle中的sys用户权限一样。所以不用于日常管理使用。
Sys_Calendar:存储系统日历表和视图。
SysAdmin:包含一些系统表以及网络连接客户端下FastLoad重启所需的表。
SystemFE:用于产生诊断报告供原厂工程师使用,默认密码为service。
Crashdumps:存储PDE dump,空间从dbc分配。推荐至少可容纳三个crashdump。
PUBLIC, EXTUSER, TDPUSER:PUBLIC, EXTUSER被系统软件使用,TDPUSER支持两阶段提交。
Default,All:系统软件使用。
SYSLIB,SYSUDTLIB:SYSLIB用于存储UDF,SYSUDTLIB用于存储UDDT。
4:执行过程中报错
提示没有相关权限。
关于ArcGIS与Teradata的权限问题,我们查看相关帮助:http://resources.arcgis.com/en/help/main/10.2/index.html#/User_privileges_for_using_ArcGIS_with_Teradata/019v0000001v000000/
所以说,我们需要对sde用户赋予上面的权限即可,具体操作过程如下
1:bteq(相当于Oracle的sqlplus)
2:.logon 127.0.0.1/dbc(连接本地服务器的dbc用户)
3:输入dbc密码
------------------------------------
上面的步骤就相当于在Oracle里面sqlplus sys / as sysdba
TDExpress14.0_Sles10:~ # bteq Teradata BTEQ 14.00.00.02 for LINUX. Enter your logon or BTEQ command:
.logon 127.0.0.1/dbc .logon 127.0.0.1/dbc
Password: *** Logon successfully completed.
*** Teradata Database Release is 14.00.00.01
*** Teradata Database Version is 14.00.00.01
*** Transaction Semantics are BTET.
*** Session Character Set Name is 'ASCII'. *** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command:
grant select on sysspatial.spatial_ref_sys to sde with grant option; grant select on sysspatial.spatial_ref_sys to sde with grant option; *** Grant accepted.
*** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command:
grant select on sysspatial.geometry_columns to sde with grant option; grant select on sysspatial.geometry_columns to sde with grant option; *** Grant accepted.
*** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command:
grant select on dbc.tvm to sde with grant option; grant select on dbc.tvm to sde with grant option; *** Grant accepted.
*** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command:
grant udtusage on sysudtlib to sde with grant option; grant udtusage on sysudtlib to sde with grant option; *** Grant accepted.
*** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command:
grant insert on sysspatial.spatial_ref_sys to sde with grant option; grant insert on sysspatial.spatial_ref_sys to sde with grant option; *** Grant accepted.
*** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command:
grant update on sysspatial.geometry_columns to sde with grant option; grant update on sysspatial.geometry_columns to sde with grant option; *** Grant accepted.
*** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command:
grant execute function on sysspatial to sde with grant option; grant execute function on sysspatial to sde with grant option; *** Grant accepted.
*** Total elapsed time was 1 second. BTEQ -- Enter your SQL request or BTEQ command:
grant execute procedure on sysspatial to sde with grant option; grant execute procedure on sysspatial to sde with grant option; *** Grant accepted.
*** Total elapsed time was 1 second.
5:重新导入数据即可
Executing: FeatureClassToFeatureClass "C:\Program Files\ArcGIS\Desktop10.2\ArcGlobeData\continent.shp" "Database Connections\Connection to teradata.sde" con # "CONTINENT "CONTINENT" true true false 13 Text 0 0 ,First,#,C:\Program Files\ArcGIS\Desktop10.2\ArcGlobeData\continent.shp,CONTINENT,-1,-1" #
Start Time: Mon Jul 15 15:34:48 2013
Succeeded at Mon Jul 15 15:39:49 2013 (Elapsed Time: 5 minutes 1 seconds)
当ArcGIS使用Teradata对空间数据进行存储,空间数据的空间字段必须为Shape或者在视图的别名为Shape,实际上Teradata的ST_geometry的底层存储为CLOB。
用户必须使用Teradata提供的tessellation(镶嵌)函数对Teradata的ST_geometry列进行创建和维护空间索引信息。这个tessellation空间索引主要被用于预定义的空间范围区域,而且它不能被ArcGIS的空间操作所使用(放大、缩小、漫游类似这种动态输入),但是tessellation索引可以应用于querylayer.
用户使用teradata的ST_geometry只支持二维数据,不支持保护M、Z的数据。
使用ArcGIS将要素类导入到Teradata数据库中,如果要素类的空间投影信息没有存储在teradata的系统表里面,ArcGIS会在Teradata的spatial_ref_sys表和geometry_columns表里面增加相关记录,但是如果更新Teradata的版本,会将这些表删除掉,重新创建然后恢复默认值,所以新增加的投影记录就需要重新输入。
那么在升级teradata之前,需要对这两个表进行备份
具体操作信息:
http://resources.arcgis.com/en/help/main/10.2/index.html#/Teradata_and_ArcGIS/019v0000001t000000/
从上面的描述,我也做了相关测试,移动一下,等了很长时间,大家可以看到上面的空白处,左下角的Drawing...和右下角小地球可以证明,这也验证了Esri帮助上说明的,因为Teradata是数据仓库,并不建议用户在ArcMap上进行视图展现。而且上面所述ArcGIS操作并不适用空间索引。
====================================================================
使用Teradata客户端
其实用户也可以下载Teradata的客户端来更直观的去了解ArcGIS在Teradata的存储,VM虚拟机也自带了一个Teradata Studio Express。
http://downloads.teradata.com/download/tools/teradata-studio
其实还有更好用的Teradata SQL Assistant但是我没有下载到
安装之后,我们连接dbc用户查看
select * from con; *** Query completed. 8 rows found. 3 columns returned.
*** Total elapsed time was 3 seconds. OBJECTID Shape
----------- ---------------------------------------------------------------
7 MULTIPOLYGON (((151.540252689999988 -24.04583359,151.54656982 -
5 MULTIPOLYGON (((-39.66893005 -18.32560348,-39.65861511 -18.2786
3 MULTIPOLYGON (((10.9794426 54.3805542,10.94645691 54.38451004,1
1 MULTIPOLYGON (((57.2022171 25.99166107,57.23068237 25.98513222,
8 MULTIPOLYGON (((163.766113280000013 -82.0816803,163.75585937 -8
6 MULTIPOLYGON (((171.1852417 -44.9383316,171.197189329999986 -44
4 MULTIPOLYGON (((0.69465101 5.77336502,0.68798602 5.7538538,0.78
2 MULTIPOLYGON (((-61.69083405 56.54804993,-61.71340179 56.569091
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
------------------------------------------------------------------------------------------------------
当ArcGIS10.2遇到Teradata的更多相关文章
- SMP、NUMA、MPP(Teradata)体系结构介绍
从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP : Symmetric Multi-Processor) ,非一致存储访问结构 (NUMA : Non-Uniform ...
- ArcGIS10的附件功能
转自 积思园 http://blog.csdn.net/linghe301/article/details/6386176 老是忘记怎么使用这个ArcGIS10的附件功能,这次就做个记录吧. 在项目应 ...
- ArcGIS10.2.2 Desktop直接连接数据库的具体步骤
ArcGIS10.2.2 Desktop直接连接数据库的具体步骤,以sqlserver2008R2和oracle11G数据库为例子,这里数据库的具体安装步骤不说了,不在讨论的范畴之内. 假如数据库软件 ...
- arcgis10.2.2桌面版具体的安装步骤过程
先声明一下,这里的截图虽说是ArcGIS10.1版本的,但是安装步骤是对的,本人用ArcGIS10.2.2软件测试成功安装上 一.ArcGIS许可证管理器安装 1.在软件包文件夹license man ...
- ArcGIS10.2.1精简版、ArcGIS_Desktop10_Tutorial、破解文件等下载地址
原版ArcGIS for Desktop的ISO文件一般都在4.5G以上,一般人用不上里面很多工具,下载回来又浪费时间,现推出ArcGIS10.2.1精简版(里面只包含主程序.Data Interop ...
- Teradata SQL programming
Teradata的SQL设计和Oracle真不是一个水平, 一点美感的没有. 上个世纪它靠着MPP一招鲜吃变天, 居然做了十多年数据仓库的老大, 时过境迁, 现在有不少SQL On Hadoop ...
- ArcGIS10.2中文版破解教程
ArcGIS10.2中文版前些时间早就出炉了,下载了但是一直没有安装,听说了ArcGIS10.2云处理能力和影像处理能力都增强了!网上经常遇到一些朋友安装失败的问题,现在特此做一个教程!分享一下安装成 ...
- 解决关于ArcGIS10.2服务手动启动的问题
解决关于ArcGIS10.2服务手动启动的问题 C:\program files\arcgis\license10.2\bin> lmgrd -z -c service.txt新建一文本,将上面 ...
- TeraData金融数据模型
Teradata天睿公司(纽交所代码:TDC),是美国前十大上市软件公司之一.经过逾30 年的发展,Teradata天睿公司已经成为全球最大的专注于大数据分析.数据仓库和整合营销管理解决方案的供应商. ...
随机推荐
- 第3章1节《MonkeyRunner源码剖析》脚本编写示例: MonkeyRunner API使用示例(原创)
天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写<深入理解 MonkeyRunner>书籍“.但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在 ...
- CSS3制作日历
目标是制作如下面DEMO显示的一个日历效果: HTML Markup 先来看看其结构: <div class="calendar"> <span class=&q ...
- Net Framework中的提供的常用委托类型
.Net Framework中的提供的常用委托类型 .Net Framework中提供有一些常用的预定义委托:Action.Func.Predicate.用到委托的时候建议尽量使用这些委托类型,而 ...
- C#异步Socket示例
C#异步Socket示例 概要 在C#领域或者说.net通信领域中有着众多的解决方案,WCF,HttpRequest,WebAPI,Remoting,socket等技术.这些技术都有着自己擅长的领域, ...
- OCP-1Z0-051-题目解析-第10题
10. View the Exhibit and examine the structure of the PROMOTIONS table. Each promotion has a duratio ...
- Spring IOC之 使用JSR 330标准注解
从Spring 3.0开始,Spring提供了对 JSR 330标准注解的支持.这些注解可以喝Spring注解一样被扫描到.你只需要将相关的Jar包加入到你的classpath中即可. 注意:如果你使 ...
- C语言移位运算
移位运算有两种:>>(右移),<<(左移). a>>b表示将a的二进制值右移b位. a<<b 表示将a的二进制值左移 b位.要求 a和 b都是整型, b ...
- 用mysql dump 导入与导出的方法
用mysql dump 导入与导出的方法 分类: 数据库2009-12-08 00:04 6825人阅读 评论(0) 收藏 举报 mysql数据库deleteinsertinternetdatabas ...
- 【转】Android 网络通信框架Volley简介(Google IO 2013)
Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...
- SpringMVC全注解
SpringMVC全注解不是你们那么玩的 前言:忙了段时间,忙得要死要活,累了一段时间,累得死去活来. 偶尔看到很多零注解配置SpringMVC,其实没有根本的零注解. 1)工程图一张: web.xm ...