Configure a Non-Native Table for Hive-to-Teradata | Teradata Fabric - Configuring a Non-Native Table for Hive-to-Teradata - Teradata Fabric

Teradata® Fabric - Installation and User Guide - 3.11

Product
Teradata Fabric
Release Number
3.11
Published
August 2026
ft:locale
en-US
ft:lastEdition
2026-08-15
dita:mapPath
svw1780362788070.ditamap
dita:ditavalPath
ezw1784752870623.ditaval
dita:id
lxg1591800469257
The Hive Storage Handlers framework is used for the Teradata Fabric Hive initiator connector. Storage handlers allow Hive to access data stored on other systems. A Hive table created using a storage handler is referred to as a non-native table.

Hive storage handlers operate at the table level, so one non-native table must be created for each remote table, unlike Teradata Foreign Servers that operate at the database level.

The following steps provide an example of configuring a non-native table in order to use it with a Hive-to-Teradata link.

  1. Set the link properties for the Hive-to-Teradata link in the Teradata Fabric portlet.
  2. Log on to a Hive client such as Beeline.
  3. Add hive-loaderfactory JAR to the class path:
    add jar /opt/teradata/tdqg/connector/tdqg-hive-connector/version/lib/hive-loaderfactory-version.jar;

    There are others ways to add JARs to Hive class path, one of which is by setting HIVE_AUX_JARS_PATH.

    The last approach typically requires a Hive restart. If you are using a Cloudera implementation of Hadoop and Sentry is enabled, this may be the only option available for use because Sentry does not allow use of ADD JAR commands.
  4. Use a Hive storage handler to create the non-native table. For example:
    CREATE EXTERNAL TABLE cardata_remote
    ROW FORMAT SERDE 'com.teradata.querygrid.qgc.hive.QGSerDe'
    STORED BY'com.teradata.querygrid.qgc.hive.QGStorageHandler'
    TBLPROPERTIES (
    "link"="hive_to_td_link",
    "version"="active",
    "table"="ut1.cardata");
    There is no column definition in the CREATE TABLE statement because the column definition is inferred dynamically by the Serializer and Deserializer (SerDe).

    The table property clause contains the fully-qualified name of the remote table; for example, database.schema.table, schema.table, and table. If any part is omitted, default values (specified in connector properties) are used.