Las siguientes limitaciones afectan al uso de los enlaces de Spark a Teradata:
- No se admite la semántica de transacciones entre sistemas.
- Teradata QueryGrid no recopila métricas de consulta (como el uso de CPU) para consultas de Teradata remotas.
- El tamaño máximo admitido para BLOB y CLOB es menor de 2 GB (2.097.088.000).
- El tamaño máximo de VARCHAR es de 64 k.
- El nombre de la base de datos temporal, NVP, no se admite en Teradata Database versión 15.10.
- La función Ejecución de función externa (FFE) no es compatible con el conector de destino de Spark SQL.
- El conector de Spark no es compatible con tablas ACID ni con tablas transaccionales.
Tras exportar los datos y asignarlos a un sistema remoto, cualquier error o interrupción posterior en el sistema local no revierten la solicitud remota.
- Al utilizar el comando Explain con un conector de iniciador de Spark, el servidor remoto no devuelve datos del plan de consulta y ejecución.
- El valor predeterminado para la precisión de la marca de tiempo es nueve (9). Teradata QueryGrid trunca los datos con más de seis posiciones decimales cuando se usan enlaces de Spark a Teradata.
- Solamente está disponible la aplicación limitada de predicados.
- Si se inicia el servidor de Spark Thrift o el shell de Spark para usarlo con el conector de Spark, Teradata recomienda establecer la propiedad spark.task.maxFailures en 1 y la propiedad spark.blacklist.enabled en falso.
- A continuación se muestra el resultado de las posibles limitaciones de Apache Spark:
- Spark 2.1 y versiones posteriores: cuando se utiliza el iniciador de Spark, si el esquema de una tabla de destino cambia después de crear una tabla no nativa que representa dicha tabla de destino, ese tabla no nativa debe volver a crearse para reflejar el cambio de esquema.
- Spark 2.2 y versiones posteriores: al importar datos para el tipo DATE utilizando el conector de destino de Spark o al exportar datos del tipo DATE usando el iniciador de Spark, el valor de datos de Spark puede ser incorrecto.
- Spark 2.2 y versiones posteriores: Spark no admite Char/Varchar; por lo tanto, si utiliza el conector de destino de Spark para insertar datos desde QueryGrid y la tabla de destino contiene columnas char/varchar, los datos de QueryGrid pueden ser incorrectos. Para evitar posibles datos incorrectos, utilice String en lugar de Char/Varchar.
- Si se actualiza Spark o se cambia la ubicación de los archivos JAR de Spark estándar, se requiere un reinicio de tdqg-node.
- Los caracteres suplementarios UTF-16 que superan más de 2 bytes en una tabla provocan el truncamiento de datos.
- IMPORT no se admite en las columnas VARCHAR, STRING y CHAR de la tabla de Spark si el conjunto de caracteres de la tabla es distinto de UTF-16 o latino.
- No se admite la aplicación de condiciones de la cláusula LIMIT. El comando Show del iniciador de Spark SQL puede mostrar una cantidad limitada de filas, pero se importan todas las filas.
- Los literales de fecha utilizados en cláusulas WHERE no se convierten a la zona horaria del sistema remoto si esta es diferente de la zona horaria del sistema iniciador.
- Las comparaciones con DATE en la cláusula WHERE pueden producir resultados incorrectos.
- Al ejecutar una consulta SELECT, como mostrar los resultados en el shell de Spark, que se espera que transmita una gran cantidad de filas desde Teradata, Teradata recomienda agregar una cláusula LIMIT a la consulta si es posible.