随着计算机技术的不断发展,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只支持Teradata14.0以上的版本,而且和其他数据库产品一样包括NoSQL、SQLite等只支持原生的存储以及ST_geometry存储,暂不支持Geodatabase,而且也不支持要素服务。
系统环境
  • ArcGIS10.2
  • Teradata服务器端
  • Teradata ICU library
  • Teradata GSS client package
  • Teradata ODBC driver
关于Teradata的相关下载地址:
说明:
关于ICU、GSS、ODBC,需要根据客户端的位数来进行相关下载,如果使用ArcGIS for Desktop10.2(32Bit)应该下载32Bit的程序包,如果使用ArcGIS for Server 10.2(64Bit )应该下载64Bit的程序包。
Teradata服务器可以下载VM虚拟机(Suse操作系统,Teradata已经安装好了,默认用户root/root),关于更多详细可以参考如下文档:

环境配置
因为我的测试环境是Windows+ArcGIS for Desktop10.2+Teradata,所以我下载的是Windows的Teradata包
下载完毕后,的安装顺序:
1:在ArcGIS客户端机器安装 Teradata ICU library 和 GSS client 

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


打开32Bit的ODBC,添加teradata驱动

输入DataSource名称,默认:teradata,相关IP输入虚拟机的Teradata服务器的IP,Username和password,输入dbc,点击Options按钮

设置Session Mode和勾选Use Native Large Object Support
设置完毕上面的信息之后,我们就可以使用ArcGIS for Desktop10.2来连接teradata了,设置连接参数

Data Source输入上面我们默认填写的teradata,用户名密码可以输入默认的dbc/dbc(如果上面odbc输入了用户名和密码,可以使用操作系统模式,这个dbc可以类比Oracle的sys/system等)
双击连接可以看到已经连接上了

================================================================
ArcGIS10.2操作Teradata
下面我们就使用ArcGIS for Desktop 10.2来创建或者导入数据到Teradata里面
1:首先,我在Teradata数据里面连接超级用户dbc,创建一个sde用户,永久表空间为200mb,spool空间不能超过100mb

Create user sde as perm=200000000,spool=100000000,password=sde;
关于更多Teradata的基本操作可以参考: http://oracleabc-126-com.iteye.com/blog/1195986
2:然后配置连接界面
3:创建要素类,可以看到使用了Native存储SYSUDTLIB.ST_Geometry存储
关于Teradata的用户

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的简单研究,由于对Teradata这个产品第一次接触,很多命令都不是非常熟悉,以上并没有进行大数据量的分析,仅仅是初次结合的一种尝试。
参考文献:
 -------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
------------------------------------------------------------------------------------------------------

当ArcGIS10.2遇到Teradata的更多相关文章

  1. SMP、NUMA、MPP(Teradata)体系结构介绍

    从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP : Symmetric Multi-Processor) ,非一致存储访问结构 (NUMA : Non-Uniform ...

  2. ArcGIS10的附件功能

    转自 积思园 http://blog.csdn.net/linghe301/article/details/6386176 老是忘记怎么使用这个ArcGIS10的附件功能,这次就做个记录吧. 在项目应 ...

  3. ArcGIS10.2.2 Desktop直接连接数据库的具体步骤

    ArcGIS10.2.2 Desktop直接连接数据库的具体步骤,以sqlserver2008R2和oracle11G数据库为例子,这里数据库的具体安装步骤不说了,不在讨论的范畴之内. 假如数据库软件 ...

  4. arcgis10.2.2桌面版具体的安装步骤过程

    先声明一下,这里的截图虽说是ArcGIS10.1版本的,但是安装步骤是对的,本人用ArcGIS10.2.2软件测试成功安装上 一.ArcGIS许可证管理器安装 1.在软件包文件夹license man ...

  5. ArcGIS10.2.1精简版、ArcGIS_Desktop10_Tutorial、破解文件等下载地址

    原版ArcGIS for Desktop的ISO文件一般都在4.5G以上,一般人用不上里面很多工具,下载回来又浪费时间,现推出ArcGIS10.2.1精简版(里面只包含主程序.Data Interop ...

  6. Teradata SQL programming

    Teradata的SQL设计和Oracle真不是一个水平, 一点美感的没有.  上个世纪它靠着MPP一招鲜吃变天, 居然做了十多年数据仓库的老大,  时过境迁, 现在有不少SQL On Hadoop ...

  7. ArcGIS10.2中文版破解教程

    ArcGIS10.2中文版前些时间早就出炉了,下载了但是一直没有安装,听说了ArcGIS10.2云处理能力和影像处理能力都增强了!网上经常遇到一些朋友安装失败的问题,现在特此做一个教程!分享一下安装成 ...

  8. 解决关于ArcGIS10.2服务手动启动的问题

    解决关于ArcGIS10.2服务手动启动的问题 C:\program files\arcgis\license10.2\bin> lmgrd -z -c service.txt新建一文本,将上面 ...

  9. TeraData金融数据模型

    Teradata天睿公司(纽交所代码:TDC),是美国前十大上市软件公司之一.经过逾30 年的发展,Teradata天睿公司已经成为全球最大的专注于大数据分析.数据仓库和整合营销管理解决方案的供应商. ...

随机推荐

  1. 关于jquery mobile 页面闪烁与抖动问题

    1.闪烁:在用a链接跳转到另一个页面的时候,页面总会抖动几下,其实就是页面切换时的transition特效,jqm貌似默认了这项. 解决方案:在a链接添加transition:none; 属性就可以啦 ...

  2. hibernate的orphanRemoval

    在@OneToMany与@OneToOne中使用orphanRemoval = true时候 改动保存时候setXXX org.springframework.orm.hibernate3.Hiber ...

  3. 如何判断微信内置浏览器(通过User Agent实现)

    在进行微信公众账号开发的时候,其中很大一块是微站点的开发,我们需要知道当前的浏览器是微信内置的浏览器,那么如何判断呢? 微信内置浏览器的 User Agent 如何判断微信内置浏览器,首先需要获取微信 ...

  4. linux 下一个 jira-6.3.6 组态 皴 翻译 迁移数据库

    每一个版本号翻译包下载  https://translations.atlassian.com/dashboard/download jira下载地址  https://www.atlassian.c ...

  5. Bootstrap的栅格系统

    Bootstrap的栅格系统 上一节:ASP.NET MVC5 + EF6 入门教程 (6) View中的Razor使用 源码下载:点我下载 要做一个完整的系统,除了需要MVC这样的B/S框架及EF这 ...

  6. C++中出现的计算机术语4

    adaptor(适配器) 一种标准库类型.函数或迭代器,使某种标准库类型.函数或迭代器的行为类似于第二种标准库类型.函数或迭代器.系统提供了三种顺序容器适配器:stack(栈).queue(队列)以及 ...

  7. Ubuntu开启NFS,挂载根目录

    1.安装NFS server Ubuntu初始状态是没有NFS server的,首先要安装NFS server: $ sudo apt-get install nfs-kernel-server (安 ...

  8. JavaScript实例技巧精选(13)—计算在网页上的停留时间

    >>点击这里下载完整html源码<< 这是截图: 核心代码如下: <SCRIPT LANGUAGE="JAVASCRIPT"> <!-- ...

  9. 分页存储过程实现-SqlServer

    一个通用的分页存储过程实现-SqlServer(附上sql源码,一键执行即刻搭建运行环境) 使用前提 查询表必须有ID字段,且该字段不能重复,建议为自增主键 背景 如果使用ADO.NET进行开发,在查 ...

  10. Visual Stuido也有非常多的快捷键

    最近看到很多同事用 VI 来开发Ruby,Python脚本. 编辑代码全部用的是快捷键,效率很高. 其实Visual Stuido也有非常多的快捷键,熟练运用后,能大大提高工作效率. 本文介绍一些最常 ...