Teradata Spatial and Non-Spatial Reader/Writer

Licensing options for this format begin with FME Professional Edition.

Note: This chapter refers to both the Teradata Spatial and Teradata Non-spatial Reader/Writer.

Overview

Teradata Spatial is a geometric extension of Teradata since version 13.10 that provides geometry and Spatial Reference System (SRS) handling. The Teradata Spatial reader/writer module enables FME to read geometric data as well as underlying attribute data stored in Teradata.

The Teradata Spatial reader/writer is specifically designed to handle the geometric and SRS portions of the data. The Teradata Spatial reader/writer uses the Teradata JDBC driver.

Note: When reading attribute-only tables from Teradata, you should select the Teradata Non-Spatial reader/writer in Workbench.

This chapter assumes familiarity with Teradata Spatial and Teradata, the attribute and geometry types supported, and its indexing mechanisms.

For more information, please see the Teradata home at http://www.teradata.com/ and the Teradata Documentation at http://www.info.teradata.com/.

Teradata JDBC Drivers

Teradata also requires Teradata JDBC drivers, which are not installed with FME.

You can download the drivers from: http://downloads.teradata.com/download/connectivity/jdbc-driver

The .jar files in the downloaded archive must be placed in FME_HOME/plugins.

Installing the JDBC Driver

To view instructions for installing the JDBC driver, please see Getting Started with JDBC.

Usage Notes

The performance of this format is dependent on the amount of memory allocated to the Java Virtual Machine (JVM). The following environment variables allow you to specify memory available to Java Plugins:

  • FME_JVM_MIN_HEAP_SIZE: Initial heap size for initializing the JVM. Default value is 1024K.
  • FME_JVM_MAX_HEAP_SIZE: Maximum heap size for initializing JVM. Default value is 16384K.

If unset, the JVM applies the default values. If set, the values must be multiples of 1024K (for example, 4M and 64M, or 4096K and 32768K).

Note: To pass additional parameters used by FME to the Java Virtual Machine, use the JAVA_TOOL_OPTIONS environment variable.

Reader Overview

FME considers a Teradata Spatial dataset to be a database containing a collection of relational tables together with their corresponding geometries. The tables must be defined in the workspace before they can be read. Arbitrary WHERE clauses and joins are fully supported, as well as an entire arbitrary SQL SELECT statement; however, the user then assumes responsibility for the correctness of the statement or clause, including quoting where necessary.

When reading from the Teradata database, each table is considered a feature type in FME and each row of a table at least one feature in FME. In the case of heterogeneous geometry collections, they may become more than one FME feature.

The basic reading process involves opening a connection to the database, querying metadata, and querying data. The data is read using a cursor and rows are fetched to the client machine individually by default. There is one cursor per input table.

If null geometries are read, they are treated as non-geometry features and the attributes are preserved.

Table and column names are truncated at 30 characters. If duplicate names are produced by truncation, the behavior is undetermined. Please ensure that table names comply with Teradata naming conventions.

Spaces and special characters are permissible in both table and column names. Table and column names are case-insensitive and always lowercase.

UNICODE support is enabled by default, and new char columns created by FME will be created with UNICODE support.

The user that the client uses to log in with is the schema used for all tables. Specifying schema is not supported.

Writer Overview

The Teradata Spatial writer module stores both geometry and attributes into a Teradata database. The Teradata Spatial writer provides the following capabilities:

  • Transaction Support: The Teradata Spatial writer provides transaction support that eases the data loading process. Occasionally, a data load operation terminates prematurely due to data difficulties. The transaction support provides a mechanism for reloading corrected data without data loss or duplication.