配置对Teradata的访问

使用活动联合数据访问(联合数据访问)选项处理存储在外部数据库中的信息。 请按照以下步骤配置访问Teradata。

  1. 安装和配置Teradata驱动程序
  2. 将Teradata外部帐户配置为活动
  3. 为Teradata和活动服务器设置其他配置

Teradata配置

您需要为Teradata安装驱动程序,才能实现与活动的连接。

  1. 安装用于Teradata](https://downloads.teradata.com/download/connectivity/odbc-driver/linux)的[ODBC驱动程序。

    它由三个包组成,按照以下顺序可安装在Red Hat(或CentOS)/Suse上:

    • TeraGSS
    • tdicu1510(使用setup_wrapper.sh安装它)
    • tdobc1510(使用setup_wrapper.sh安装它)
  2. 配置ODBC驱动程序。 配置可以在标准文件中执行:/etc/odbc.ini​用于常规参数,/etc/odbcinst.ini用于声明驱动程序:

    • /etc/odbc.ini

      [ODBC]
      InstallDir=/etc/
      

      "InstallDir"对应于​odbcinst.ini​文件的位置。

    • /etc/odbcinst.ini

      [ODBC DRIVERS]
      teradata=Installed
      
      [teradata]
      Driver=/opt/teradata/client/15.10/lib64/tdata.so
      APILevel=CORE
      ConnectFunctions=YYY
      DriverODBCVer=3.51
      SQLLevel=1
      
  3. 指定环境服务器的Adobe Campaign变量:

    • LD_LIBRARY_PATH:/opt/teradata/client/15.10/lib64和/opt/teradata/client/15.10/odbc_64/lib。
    • ODBCINI:odbc.ini文件的位置(例如/etc/odbc.ini)。
    • NLSPATH:opermsgs.cat文件的位置(/opt/teradata/client/15.10/msg/opermsgs.cat?lang=zh-Hans)
注意

在联合数据访问下连接到Teradata外部数据库需要在Adobe Campaign服务器上执行其他配置步骤。 了解详情

Teradata外部帐户

teradata外部帐户允许您将活动实例连接到Teradata外部数据库。

  1. 在活动​Explorer​中,单击​Administration / Platform / External accounts

  2. 单击​New​并选择​External database​作为​Type

  3. 要配置​Teradata​外部帐户,必须指定:

    • Type:选择 Teradata 类型。

    • Server:您的Teradata服务器的URL或名称

    • Account:用于访问Teradata数据库的帐户的名称

    • Password:用于连接Teradata数据库的口令

    • Database:数据库名称(可选)

    • Options:通过Teradata的选项。使用以下格式:“parameter=value”。 使用半列作为值之间的分隔符。

    • Timezone:时区设定在Teradata。了解详情

查询条带

当多个Adobe Campaign用户连接到同一联合数据访问Teradata外部帐户时,Query banding​选项卡允许您在会话中设置查询带,即一组键/值对。

配置此选项后,每次活动用户对Teradata查询库执行时,Adobe Campaign都会发送元数据,元数据由与此用户关联的键列表组成。 此数据随后可由Teradata管理员用于审计或管理访问权限。

注意

有关​Query banding​的详细信息,请参阅Teradata文档

要配置查询条带,请按照以下步骤操作:

  1. 使用​Default​输入默认查询带,如果用户没有关联的查询带,将使用该带。 如果此字段留空,则没有查询带的用户将无法使用Teradata。

  2. 使用​Users​字段为每个用户指定查询带。 您可以添加所需数量的键/值对,如priority=1;workload=high。 如果用户未分配查询带,则将应用​Default​字段。

  3. 选中​Active​框以激活此功能

外部帐户疑难解答

如果测试连接​TIM-030008日期“2”时出现以下错误:缺少字符(iRc=-53)​确保正确安装了ODBC驱动程序,并为活动服务器设置了LD_LIBRARY_PATH(Linux)/PATH(Windows)。

错误​ODB-240000 ODBC错误:[Microsoft][ODBC Driver Manager]找不到数据源名称,未指定默认驱动程序。 如果使用16.X驱动程序,则出现在Windows中。Adobe Campaign希望在odbcinst.ini中将teradata命名为“{teradata}”。

  • 从活动18.10开始,可在外部帐户选项中添加ODBCDriverName="Teradata数据库ODBC驱动程序16.10"。 版本号可以更改,可以通过运行odbcad32.exe并访问“驱动程序”选项卡找到确切名称。

  • 如果您使用的是旧版活动,则必须将驱动程序安装创建的odbcinst.ini的“Teradata”部分复制到名为“Teradata”的新部分。 Regedit在此情况下可以使用。 如果您的基数为latin1,则必须在选项中添加​APICharSize=1

其他配置

用户配置

外部数据库需要以下权限:创建/删除/执行自定义过程,创建/删除/插入/选择表。 如果要在Adobe Campaign实例上使用md5和sha2函数,则可能还必须创建用户模式函数。

确保配置正确的时区。 它应与在外部帐户实例中创建的Adobe Campaign中将设置的内容匹配。

Adobe Campaign不会为它将在数据库中创建的对象设置保护模式(回退)。 您可能需要为Adobe Campaign使用以下查询连接到Teradata数据库的用户设置默认值:

禁用默认回退
MODIFY USER $login$ AS NO FALLBACK;

MD5安装

如果要在Adobe Campaign实例中使用md5函数,则必须从此页面(md5_20080530.zip)在Teradata数据库上安装用户模式函数。

下载文件的sha1如下所示:65cc0bb6935f72fcd84fef1ebcd64c00115dfd1e。

安装md5:

  1. 解压缩md5_20080530.zip文件。

  2. 转到md5/src目录。

  3. 使用更好的方式连接到您的Teradata数据库。

  4. 运行以下betq命令:

    .run file = hash_md5.btq
    

SHA2安装

如果要在Adobe Campaign实例中使用sha2函数,则必须从此页面(teradata-udf-sha2-1.0.zip)在Teradata数据库上安装用户模式函数。

下载文件的sha1如下所示:e87438d37424836358bd3902cf1adeb629349780。

安装sha2:

  1. 解压缩teradata-udf-sha2-1.0.zip文件。

  2. 转到teradata-udf-sha2-1.0/src目录。

  3. 使用更好的方式连接到您的Teradata数据库。

  4. 运行以下两个beq命令:

    .run file = hash_sha256.sql
    .run file = hash_sha512.sql
    

UDF_UTF16TO8安装

如果要在Adobe Campaign实例中使用udf_utf16to8函数,则必须从此页面的​Teradataunicode工具包(utk_release1.7.0.0.zip)在Teradata数据库上安装用户模式函数。

下载文件的sha1如下所示:e58235f434f52c71316a577cb48e20b97d24f470。

安装udf_utf16to8:

  1. 解压缩utk_release1.7.0.0.zip文件。

  2. 在提取的文件中查找udf_utf16to8.o,然后导航到包含该文件的目录。 它应命名为utk_release1.7.0.0/utk_release1.7.0.0/04 TranslationUDFs/01TeradataUDFs/suselinux-x8664/udf_installation/。

  3. 使用更好的方式连接到您的Teradata数据库。

  4. 键入以下beq命令:

    REPLACE FUNCTION udf_utf16to8 (
    inputString VARCHAR(8000) CHARACTER SET UNICODE
    ) RETURNS VARCHAR(16000) CHARACTER SET LATIN
    LANGUAGE C
    NO SQL
    EXTERNAL NAME 'CO!i18n103!udf_utf16to8.o!F!udf_utf16to8'
    PARAMETER STYLE SQL;
    
    -- Test: should return 410042
    SELECT CAST(Char2HexInt(UDF_UTF16to8(_UNICODE'004100000042'XC)) AS VARCHAR(100));
    

活动Linux的服务器配置

驱动程序安装需要以下各项:

  • TeradataODBC驱动程序,可在此中找到

  • Teradata工具和实用程序(用于批量加载),可在此页面中找到

文件名和sha1:

  • tdobc1620_linux_indep.16.20.00.00-1.tar.gz 121fdd978b56fe1304fc5cb7819741b0847f44

  • TeradataToolsAndUtilitiesBase_linux_indep.16.20.01.00.tar.gz b 29d0af5ffd8dcf68a9dbaa6f8639387b19c563

如果Linux分发没有包,则可以按照CentOS 7中的说明(例如使用docker)进行安装,然后在Adobe Campaign服务器上复制/opt/teradata的内容。

ODBC驱动程序安装

安装ODBC驱动程序:

  1. 解压tdodbc1620__linux_indep.16.20.00.00-1.tar.gz文件。

  2. 转到tdobc1620目录。

  3. 您可能需要修复安装脚本:

    "sed -i s/16.10/16.20/ setup_wrapper.sh".
    
  4. 运行setup_wrapper.sh。

Teradata工具和实用程序安装

安装工具:

  1. 解压TeradataToolsAndUtilitiesBase_linux_indep.16.20.01.00.tar.gz文件。

  2. 转至TeradataToolsAndUtilitiesBase/Linux/i386-x8664/tdicu目录。

  3. 运行setup_wrapper.sh。

  4. 转至TeradataToolsAndUtilitiesBase/Linux/i386-x8664/cliv2目录。

  5. 运行setup_wrapper.sh。

  6. 转至TeradataToolsAndUtilitiesBase/Linux/i386-x8664/tptbase目录。

  7. 运行setup_wrapper.sh。

  8. libtelapi.so文件应位于/opt/teradata/client/16.20/lib64中。

活动服务器配置(Windows)

您首先需要下载适用于Windows的Teradata工具和实用程序。 您可以从此页面下载它

确保安装ODBC驱动程序和Teradata并行传输器库。 它将安装telapi.dll,用于在Teradata数据库上进行批量加载。

确保驱动程序和实用程序的路径位于nlserver在执行过程中将具有的PATH变量中。 默认路径为C:\Program Files (x86)\Teradata\Client\15.10\bin on Windows 32 bits or C:\项目Files\Teradata\Client\15.10\bin on 64 bit)。

时区

Teradata使用的时区名称不标准,您可以在Teradata站点上找到列表。 Adobe Campaign将尝试将外部配置中给定的时区转换为Teradata所理解的时区。 如果找不到通信,则会话将找到衣柜GMT+X(或GMT-X)时区,日志中会显示警告。

转换完成后,将读取名为teradata_timezones.txt的文件,该文件应位于以下datakit目录中:/usr/local/neolane/nl6/datakit under linux. 如果编辑此文件,请确保与Adobe Campaign团队联系以更改源代码,否则,在下次活动更新期间将覆盖此文件。

使用-verbose开关运行nlserver时,将指示用于连接的时区,例如:

15:04:04 >   ODB-240007 Teradata: will use 'Europe Central' as session time zone.

如果使用的时区不正确,则可以在外部帐户上添加名为“TimeZoneName”的选项。 在这种情况下,请使用Teradata值,例如“TimeZoneName=Europe Central”。

在Teradata文档中使用批量加载或“快速加载”时,活动无法指示时区。 因此,建议设置活动用来连接的用户的默认时区:

MODIFY USER $login$ AS TIME ZONE = 'Europe Central';

在此页面上