<new-connection-sql>use {database-name}</new-connection-sql>
Hive Translator (hive)
Also see common JDBC Translators information.
The Hive translator, known by the type name hive, is for use with Hive v.10 and SparkSQL v1.0 and later.
Hive is compatible with a limited set of data types. It does not have native support for time/XML or large objects (LOBs). These limitations are reflected in the translator capabilities. Although a Teiid view can use these types, the transformation must specify the necessary conversions. Note that in those situations, evaluations are processed in Teiid engine.
Do not use the DatabaseTimeZone
translator property with the Hive translator.
Hive only supports EQUI join, so using any other joins types on its source tables will result in inefficient queries.
To write criteria based on partitioned columns, model them on the source table, but do not include them in selection columns.
Note
|
The Hive importer does not have the concept of catalog or source schema, nor does it import keys, procedures, indexes, and so forth. |
- trimColumnNames
-
For Hive 0.11.0 and later, the
DESCRIBE
command metadata is inappropriately returned with padding. Set this property totrue
to remove white space from column names. Defaults tofalse
. - useDatabaseMetaData
-
For Hive 0.13.0 and later, the normal JDBC
DatabaseMetaData
facilities are sufficient to perform an import. Set totrue
to use the normal import logic with the option to import index information disabled. Defaults tofalse
. When true,trimColumnNames
has no effect. If it is set to false, the typical JDBC DatabaseMetaData calls are not used, so not all of the common JDBC importer properties are applicable to Hive. You can still use excludeTables anyway.
When the database name used in Hive differs from default
, the metadata retrieval and execution of queries does not work as
expected in Teiid.
The Hive JDBC driver seems to be implicitly connecting (tested with < 0.12) to "default" database, thus ignoring the database name mentioned on connection URL.
You can work around this issue if you configure your connection source to send the command use {database-name}
.
Teiid in WildFly environment set the following in data source configuration.
This is fixed in version 0.13 and later of the Hive JDBC driver. For more information, see https://issues.apache.org/jira/browse/HIVE-4256.
Empty tables might report their description without datatype information.
To work around this problem when importing, you can exclude empty tables, or use the useDatabaseMetaData
option.