Los controladores de almacenamiento de Hive operan a nivel de tabla, por lo que se debe crear una tabla no nativa para cada tabla remota, a diferencia de los servidores externos de Teradata y los catálogos de Presto que operan a nivel de la base de datos.
Los siguientes pasos son un ejemplo de configuración de una tabla no nativa con el fin de usarla con un enlace de Hive a Teradata.
- Establezca las propiedades de enlace para el enlace de Hive a Teradata en el portlet QueryGrid.
- Inicie sesión en un cliente de Hive como Beeline.
- Agregue el JAR de hive-loaderfactory a la ruta de la clase:add jar /opt/teradata/tdqg/connector/tdqg-hive-connector/version/lib/hive-loaderfactory-version.jar;
Hay otras maneras de agregar archivos JAR a la ruta de la clase de Hive, como por ejemplo configurar HIVE_AUX_JARS_PATH.
El último enfoque suele requerir un reinicio de Hive. Si está utilizando una implementación de Cloudera de Hadoop y Sentry está habilitado, esta puede ser la única opción disponible para usar, porque Sentry no permite el uso de los comandos ADD JAR. - Utilice un controlador de almacenamiento de Hive para crear la tabla no nativa. Por ejemplo:
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");
No hay ninguna definición de columna en la sentencia CREATE TABLE porque el serializador y el deserializador (SerDe) infieren directamente la definición de columna.La cláusula de propiedad de tabla contiene el nombre completo de la tabla remota; por ejemplo, database.schema.table, schema.table y table. Si se omite cualquier parte, se usarán los valores predeterminados (especificados en las propiedades del conector).