当ArcGIS10.2遇到Teradata
随着计算机技术的不断发展,GIS技术也紧跟IT技术的热潮,从三维技术、到移动技术,从大数据技术到云计算技术,只要IT有的新技术,Esri都会一直紧跟最新的技术潮流。 那么Teradata作为数据仓库的主要实践者,被广大用户所应用而且有很好的口碑。 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只支持Teradata14.0以上的版本,而且和其他数据库产品一样包括NoSQL、SQLite等只支持原生的存储以及ST_geometry存储,暂不支持Geodatabase,而且也不支持要素服务。
系统环境
- ArcGIS10.2
- Teradata服务器端
- Teradata ICU library
- Teradata GSS client package
- Teradata ODBC driver
关于Teradata的相关下载地址:
- 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
说明:
关于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
关于ArcGIS Server的配置参考:http://resources.arcgis.com/en/help/main/10.2/index.html#/Set_up_a_connection_to_Teradata/019v0000001s000000/
打开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这个产品第一次接触,很多命令都不是非常熟悉,以上并没有进行大数据量的分析,仅仅是初次结合的一种尝试。
参考文献:
[1]:http://blog.r-tree.net/
-------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

2024CSRankings全美计算机科学专业排名,刚刚发布了!今年,全美全美CS最佳大学排名中,卡耐基梅隆大学(CMU)在全美和CS领域均名列前茅,而伊利诺伊大学香槟分校(UIUC)连续六年稳定地位于第二。佐治亚理工学院则排名第三。然后,斯坦福大学、圣迭戈加利福尼亚大学、密歇根大学、华盛顿大学并列世界第四。值得注意的是,MIT排名下跌,跌出前五。CSRankings是由麻省州立大学阿姆赫斯特分校计算机与信息科学学院教授EmeryBerger发起的全球院校计算机科学领域排名项目。该排名基于客观的

Windows远程桌面服务允许用户远程访问计算机,对于需要远程工作的人来说非常便利。然而,当用户无法连接到远程计算机或远程桌面无法验证计算机身份时,会遇到问题。这可能是由网络连接问题或证书验证失败引起的。在这种情况下,用户可能需要检查网络连接、确保远程计算机是在线的,并尝试重新连接。另外,确保远程计算机的身份验证选项已正确配置也是解决问题的关键。通过仔细检查和调整设置,通常可以解决Windows远程桌面服务中出现的这类问题。由于存在时间或日期差异,远程桌面无法验证远程计算机的身份。请确保您的计算

MSTeams是与队友和同事交流、聊天或通话的值得信赖的平台。MSTeams上的错误代码为80090016以及您的计算机的受信任的平台模块出现故障的消息可能会导致登录困难。在错误代码得到解决之前,该应用将不允许您登录。如果您在打开MS团队或任何其他Microsoft应用程序时遇到此类消息,那么本文可以指导您解决问题。

计算机的“e”是科学计数法符号,字母 "e" 在科学计数法中用作指数分隔符,表示 "乘以 10 的多少次方",在科学计数法中,一个数通常被写为M × 10^E的形式,其中 M 是一个介于1到10之间的数,而E表示指数。

计算机中cu的意思取决于上下文:1、Control Unit,在计算机的中央处理器中,CU是负责协调和控制整个计算过程的组件;2、Compute Unit,在图形处理器或其他加速处理器中,CU是处理并行计算任务的基本单元。

在使用电脑时,操作系统偶尔也会出现故障。今天遇到的问题是在访问gpedit.msc时,系统提示无法打开组策略对象,因为可能缺乏正确的权限。未能打开这台计算机上的组策略对象解决方法:1、访问gpedit.msc时,系统提示无法打开该计算机上的组策略对象,因为缺乏权限。详细信息:系统无法定位指定的路径。2、用户点击关闭按钮后,弹出如下错误窗口。3、立即查看日志记录,并结合记录信息,发现问题出在C:\Windows\System32\GroupPolicy\Machine\registry.pol文件

steam无法连接至远程计算机的解决办法:1、在游戏平台中,点击左上角的“steam”选项;2、打开菜单选择“设置”选项;3、选择“远程畅玩”选项;4、勾选启动“远程畅玩”功能,然后点击“确定”按钮即可。

如果您在将数据从远程桌面复制到本地计算机时遇到问题,本文可以帮助您解决。远程桌面技术允许多用户访问中央服务器上的虚拟桌面,提供数据保护和应用程序管理。这有助于确保数据安全,并使公司能够更有效地管理其应用程序。用户在使用远程桌面时可能会遇到挑战,其中一个是无法将数据从远程桌面复制到本地计算机。这可能由不同因素引起阻止。因此,本文将提供解决此问题的指导。为什么无法从远程桌面复制到本地计算机?在计算机上复制文件时,文件会暂时存储在一个叫做剪贴板的位置。如果无法使用此方法将数据从远程桌面复制到本地计算机
