关于复制外部服务器对象 - Teradata Data Mover

Teradata® Data Mover 用户指南

Product
Teradata Data Mover
Release Number
16.20
Published
2021 年 11 月
Language
中文 (简体)
Last Update
2021-12-02
dita:mapPath
zh-CN/wph1512683331242.ditamap
dita:ditavalPath
zh-CN/mpm1591127278842.ditaval
dita:id
B035-4101
Product Category
Analytical Ecosystem

通过 Teradata Database 15.0 中引入的外部服务器对象,您可以创建定义来从非 Teradata 系统(如 Hadoop 或 Oracle)查询数据。Data Mover 支持将这些外部服务器对象定义从一个 Teradata 系统复制到另一个 Teradata 系统。

所有外部服务器对象都会保留在数据库 TD_SERVER_DB 中。该数据库位于 Teradata Database 15.0 或更高版本中。

Hadoop 系统的外部服务器对象 DDL 如下所示。具有适当权限的数据库用户可以为系统信息已知的非 Teradata 系统创建外部服务器对象。有关如何创建、更新、删除或使用外部服务器对象的信息,请参阅 Teradata Database 文档。

要求和限制

  • 创建和复制外部服务器对象需要在 Teradata Database 系统上正确安装并配置各自的外部服务器软件包。如果需要帮助,请联系全球技术支持中心,网址为 https://support.teradata.com
  • 必须为 Data Mover 作业用户授予对外部服务器对象的权限,否则该作业将失败。
  • Data Mover 会通过执行 SQL 语句 SHOW FOREIGN foreign_server_name 检索外部对象 DDL。
  • 必须为 Teradata Database 系统用户授予对外部服务器对象的权限,否则该作业将失败。
  • 源系统和目标系统都必须是 Teradata 15.0 或更高版本的系统。
  • Data Mover 不会解析外部服务器对象 DDL;而是会在目标系统上运行完全相同的 DDL。
  • 仅会复制外部服务器对象定义。
  • 不支持重定位,所有外部服务器对象都必须位于数据库 TD_SERVER_DB 中。
  • 不支持部分复制。
  • 不支持行计数验证。
  • 不支持比较 DDL。
  • 移动外部服务器对象定义时,不支持使用暂存表和暂存数据库。
  • 可使用 ARC、DSA、TPT 或 JDBC 复制外部服务器对象定义。
  • 如果要复制的对象在目标数据库中不存在,则会在目标数据库中创建该对象。如果对象在目标数据库中存在,则除非 overwrite_existing_objects 属性被设置为 false,否则将覆盖该对象。这种情况下,将生成创建时错误。

示例

通过指定 CREATE FOREIGN SERVER,对象名称以及服务器信息创建外部服务器对象。
CREATE FOREIGN SERVER MyServer USING 
server('sdll9119.labs.teradata.com')
port('9083')
hosttype('hadoop')
hiveport ('10000')
username('hive')
DO IMPORT WITH syslib.load_from_hcatalog_hdp1_3_2 
USING transformformatting('true'),
DO EXPORT WITH syslib.load_to_hcatalog_hdp1_3_2;
以上示例创建了对象 MyServer,该对象定义了远程 hadoop 服务器 sdll7680.labs.teradata.com,访问端口为 9083。
  • 您可以在 Teradata Database 系统上使用 function load_from_hcatalog_hdp1_3_2MyServer 检索数据。
  • 您可以使用 function load_to_hcatalog_hdp1_3_2 将数据导出到 MyServer
  • 在数据库 TD_SERVER_DB 中会创建对象 MyServer;您不需要使用完全限定名称。