2.09 - Spark SQL 连接器限制 - Teradata QueryGrid

Teradata® QueryGrid™ 安装和用户指南

prodname
Teradata QueryGrid
vrm_release
2.09
created_date
2019 年 5 月
category
安装
用户指南
管理
配置
featnum
B035-5991-059K-CHS
以下限制因素会影响 Spark 连接器在 Teradata QueryGrid 中的使用:
  • Spark 连接器不支持 ACID 表或事务表。
  • 不支持系统之间的事务语义。

    在数据已导出并提交到远程系统后,本地系统上的任何后续错误或中止不会回滚远程请求。

  • 对 Spark 发起程序连接器使用 Explain 命令时,远程服务器不会返回查询和执行计划数据。
  • 时间戳精度的缺省值为九 (9);使用 Spark 到 Teradata 链接时,Teradata QueryGrid 会截断小数位数超过六位的数据。
  • 只有有限的谓词下推可用。
  • Spark SQL 目标连接器目前不支持外部函数执行 (FFE) 功能。
  • Spark SQL 连接器不支持角色,因为 Spark 不支持角色。
  • 缺省情况下,无论在成功的导出查询期间导出了多少行,Spark SQL 目标连接器都会返回 1 作为导出的行数。将收集近似活动计数连接器属性设置为 True 将返回导出的行数,并会产生轻微的性能开销。如果 Spark SQL 表上同时出现多个插入,显示的行数则可能不准确,从而导致结果为近似值,而非精确的数字。
  • 在启动 Spark Thrift 服务器或 Spark Shell 以使用 Spark 连接器时,Teradata 建议将 spark.task.maxFailures 属性设置为 1。
  • 可能的 Apache Spark 限制因素带来的结果如下:
    • Spark 2.1 及更高版本:在使用 Spark 发起程序时,如果在创建表示目标表的非本地表之后,该目标表的模式发生更改,则必须重新创建该非本地表以反映此模式更改。
    • Spark 2.2 及更高版本:在使用 Spark 目标连接器导入 DATE 类型的数据或使用 Spark 发起程序导出 DATE 类型的数据时,来自 Spark 的数据值可能不正确。
    • Spark 2.2 及更高版本:Spark 不支持 Char/Varchar;因此,当使用 Spark 目标连接器插入来自 QueryGrid 的数据,且目标表包含 char/varchar 列时,来自 QueryGrid 的数据可能不正确。要避免可能不正确的数据,请使用 String,不要使用 Char/Varchar。
    • 如果 Spark 已升级或标准 Spark JAR 的位置发生了更改,则需要重新启动 tdqg-node。
  • 如果远程系统时区与发起程序系统时区不同,则 WHERE 子句中使用的日期文本不会转换为远程系统时区。
  • 连接器不支持 UTF-16 补充字符。表数据中的补充字符可能会导致数据截断。
  • 如果表字符集不是 Latin 或 UTF-16,则 Spark 表的 VARCHAR、STRING 和 CHAR 列不支持 IMPORT。