MapInfo SpatialWare阅读器/写入器

许可选项对于这种格式,从FME专业版开始。

SpatialWare是MapInfo开发的基于服务器的数据管理软件®公司。它使企业能够在Informix或SQL Server数据库中存储、管理和操作空间数据(即基于位置的数据)。

SpatialWare使关系数据库管理系统(RDBMS)能够通过提供一个新的空间来存储空间和非空间数据sw_geometry列类型转换为底层RDBMS。空间数据包括各种非传统的数据类型。高速公路、光纤线路、销售区域或地块的数字表示都是空间数据的例子;在空间中具有物理背景或存在的数据。

FME是一个SpatialWare客户端应用程序,可以通过ODBC连接到SpatialWare,而不管它位于哪个平台上。

概述

SpatialWare提供了一个无缝的数据模型,地理数据存储在其中。SpatialWare提供了一个围绕表组织的关系数据模型。FME是一种典型的空间件特征类型1术语“特征类型”和“表格”在本章中互换使用。相当于一个RDBMS表。FME可以用来读写任何RDBMS表,无论它是否有一个空间(sw_geometry)列。空间列具有以下属性:

  • 每个空间列可以有一个空间索引。
  • 一个关系表只能有一个空间列。
  • 空间列中的特征可以是二维的,也可以是三维的。在空间列中允许混合维度。
  • 每个表可能有一个单一的坐标系统,特性最终存储在其中。

FME的SpatialWare Reader和Writer利用了SpatialWare的独特功能。

读者通过构造由空间和/或非空间组成的查询来检索SpatialWare的特性。SpatialWare数据库可能具有非常多的特性,因此查询构建能力对于确保FME reader模块能够满足高度聚焦的数据请求至关重要。

作者利用SpatialWare的事务模型来简化数据导入到SpatialWare中的任务。SpatialWare编写器还可以在三种模式下操作(“DELETE”模式、“UPDATE”模式或“INSERT”模式),使得FME可以作为基于SpatialWare的解决方案中的关键组件。SpatialWare阅读器还能够执行多表连接查询,从而充分利用底层RDBMS的功能。

读者概述

SpatialWare阅读器首先通过ODBC与SpatialWare数据集所在的服务器建立一个SpatialWare连接。一旦连接上,SpatialWare阅读器就会查询SpatialWare,并将结果特性(即行)传递给FME进行处理。

当从SpatialWare读取特性时,可以使用< ReaderKeyword > _DEF声明。在一次读取中可以使用多个查询。如果没有指定空间或属性约束,则读取所标识表的所有特性。SpatialWare存储过程也可以以与SQL查询相同的方式执行。然而,用户需要熟悉使用SpatialWare空间查询。语法示例如下(注意单引号的位置):

exec sp_spatial_query 'select * from canada where ST_Contains(加拿大。sw_geometry ST_Point (-101.362325, 48.999346))

这将返回包含点的特征(-101.362325, 48.999346)

SpatialWare阅读器至少需要一个< ReaderKeyword > _DEF,一个< ReaderKeyword > _DEF_OVERRIDE,或者一个< ReaderKeyword > _id语句,以标识要检索数据的查询。如果没有指定这些语句,则不会从数据库读取任何特性。

作家概述

SpatialWare writer模块将FME特性存储在SpatialWare数据库中。SpatialWare writer模块提供以下功能。

事务支持:SpatialWare编写器提供了事务支持,简化了数据加载过程。偶尔,数据加载操作会由于数据困难而提前终止。事务支持提供了一种机制,可以在不丢失或复制数据的情况下重新加载已修正的数据。

警告:此功能目前仅对SQLServer可用。此外,如果不止一个读写器通过FME访问SpatialWare(这可以使用FME对象),则可能会出现并发问题。在这种情况下,我们将事务的隔离级别使用为READ_COMMITTED.这意味着,如果我们有一个写入器在一个表上写入一个特性,那么,直到这个事务被提交时,其他读取器读取同一个表的任何尝试都会导致程序挂起。这样做的原因是SQLServer将在事务提交之前对表保持一个锁。目前,用户无法设置事务隔离级别,但将来可能会更改。

表创建:SpatialWare writer模块使用FME映射文件中的信息来根据需要自动创建SpatialWare表。如果映射文件表定义有一个空间列,那么也会创建相关的SpatialWare空间列。

表的验证:当数据加载到现有表时,SpatialWare编写器模块在映射文件中的表定义和SpatialWare中的表定义之间执行验证操作。所有发现的差异都被记录下来。所有关键的差异都会导致数据加载操作停止。

非同构聚合加载:提供将非同构聚合加载到SpatialWare表的能力,如SpatialWare所支持的那样。

更新功能:此功能是为SQLServer而不是为Informix提供的。SpatialWare writer模块允许在SpatialWare中通过使用指定的键和更新的操作方式。如果需要区域替换功能,也可以通过将SpatialWare编写器的功能与SpatialWareQueryFactory.指操作模式(仅适用于SQLServer)有关如何使用该关键字的更多细节。

删除功能:此功能是为SQLServer而不是为Informix提供的。指操作模式(仅适用于SQLServer)有关如何使用该关键字的更多细节。

SpatialWare阅读器/写入器集锦

SpatialWare Reader/Writer格式具有以下功能:

  • 编程表创建:在进行数据导入操作之前,不必创建表。所有的表创建细节都由FME处理。
  • 编程空间列和属性验证:当将数据加载到现有的空间数据库时,FME验证映射文件中指定的表定义是否与现有的RDBMS定义匹配。
  • 事务支持:完全支持事务,可以在稍后恢复部分完成的加载操作,而不会丢失或复制数据。
  • 属性查询支持:可以指定任何复杂的结构化查询语言(Structured Query Language, SQL)查询来限制要导出的数据。
  • 空间查询支持:FME利用了SpatialWare的所有额外空间查询功能。可以指定任何复杂的SQL/Spatial查询来限制要导出的数据。
  • 多表查询支持:查询可以组合多个RDBMS表,从而利用底层RDBMS的全部SQL功能。
  • 多个SpatialWare连接:FME可以支持多个SpatialWare连接,打开相同或不同的SpatialWare数据库。这可以用于不同SpatialWare站点之间的选择性复制,用于将数据从准备SpatialWare移动到生产SpatialWare,或用于从多个SpatialWare数据库构建功能的结果集。
  • 非空间表的支持:任何表都可以用FME读或写到SpatialWare数据库,无论它是否启用空间。例如,如果您的SpatialWare使用SQL Server,您可以使用FME来读取、写入或创建常规SQL Server表。
  • 全自动进出口:FME的SpatialWare支持通过Workbench或Quick Translator提供完全自动化的数据导入和导出。这对于快速数据导入或快速数据导出非常理想。

提示:查询支持使数据导出操作高度集中,从而减少了导出的数据量。

FME中的空间件模块被设计成与其他空间件产品协同工作。亚搏在线娱乐平台例如,使用简单GUI搜索引擎的用户可以很容易地识别出满足复杂查询的所有功能,然后使用带有SpatialWare阅读器的FME来处理这些功能。