使用Campaign 联合数据访问 (FDA)选项,用于处理存储在外部数据库中的信息。 请按照以下步骤配置对Teradata的访问。
您需要安装Teradata驱动程序才能与Campaign实施连接。
它由三个包组成,这些包可以按以下顺序安装在Red Hat(或CentOS)/Suse上:
配置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
指定Adobe Campaign服务器的环境变量:
在FDA中连接到Teradata外部数据库需要在Adobe Campaign服务器上执行其他配置步骤。 了解详情。
利用Teradata外部帐户,可将Campaign实例连接到Teradata外部数据库。
从Campaign Explorer,单击 Administration / Platform / External accounts.
单击 New 选择 External database as Type.
配置 Teradata 外部帐户,您必须指定:
Type:选择 Teradata 类型。
Server:teradata服务器的URL或名称
Account:用于访问Teradata数据库的帐户名称
Password:用于连接到Teradata数据库的密码
Database:数据库的名称(可选)
Options:要通过Teradata传递的选项。 使用以下格式:“parameter=value”。 使用半列作为值之间的分隔符。
Timezone:在Teradata中设置时区。 了解详情
当多个Adobe Campaign用户连接到同一FDATeradata外部帐户时, Query banding 选项卡,用于在会话中设置查询带(即一组键/值对)。
配置此选项后,每次Campaign用户对Teradata数据库执行查询时,Adobe Campaign都会发送元数据,元数据包含与该用户关联的键列表。 然后,Teradata管理员可以将此数据用于审核目的或管理访问权限。
有关 Query banding,请参阅 Teradata文档.
要配置查询分段,请执行以下步骤:
使用 Default 输入在用户没有关联查询带时使用的默认查询带。 如果此字段留空,则没有查询带的用户将无法使用Teradata。
使用 Users 字段来指定每个用户的查询范围。 您可以根据需要添加任意数量的键/值对,例如priority=1;workload=high。 如果用户未分配查询带,则 Default 字段。
检查 Active 用于激活此功能的框
如果在测试连接时出现以下错误 TIM-030008日期“2”:缺少字符(iRc=-53) 确保已正确安装ODBC驱动程序,并为Campaign服务器设置LD_LIBRARY_PATH(Linux)/PATH(Windows)。
错误 ODB-240000 ODBC错误: [Microsoft][ODBC Driver Manager] 未找到数据源名称,且未指定默认驱动程序。 如果使用16.X驱动程序,则在Windows中发生。 Adobe Campaign在odbcinst.ini中希望teradata名为“{teradata}”。
从Campaign 18.10开始,您可以在外部帐户的选项中添加ODBCDriverName="Teradata数据库ODBC驱动程序16.10"。 版本号可以更改,通过运行odbcad32.exe并访问“Drivers(驱动程序)”选项卡,可以找到确切的名称。
如果您使用的是旧版Campaign,则必须将驱动程序安装所创建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; |
如果要在Adobe Campaign实例中使用md5函数,则必须在Teradata数据库上从此处安装用户模式函数 页面 (md5_20080530.zip)。
下载文件的sha1如下所示:65cc0bb6935f72fcd84fef1ebcd64c00115dfd1e。
要安装md5,请执行以下操作:
解压缩md5_20080530.zip文件。
转到md5/src目录。
使用两者连接到Teradata数据库。
运行以下beq命令:
.run file = hash_md5.btq
如果要在Adobe Campaign实例中使用sha2函数,则必须在Teradata数据库上从此处安装用户模式函数 页面 (teradata-udf-sha2-1.0.zip)。
下载文件的sha1如下所示e87438d37424836358bd3902cf1adeb629349780。
要安装sha2,请执行以下操作:
解压缩teradata-udf-sha2-1.0.zip文件。
转到teradata-udf-sha2-1.0/src目录。
使用两者连接到Teradata数据库。
运行以下两个beq命令:
.run file = hash_sha256.sql
.run file = hash_sha512.sql
如果要在Adobe Campaign实例中使用udf_utf16to8函数,则必须在Teradata数据库上从 Teradataunicode工具包 此 页面 (utk_release1.7.0.0.zip)。
下载文件的sha1如下所示e58235f434f52c71316a577cb48e20b97d24f470。
要安装udf_utf16to8,请执行以下操作:
解压缩utk_release1.7.0.0.zip文件。
在提取的文件中查找udf_utf16to8.o,然后导航到包含该文件的目录。 它应命名为utk_release1.7.0.0/utk_release1.7.0.0/04 TranslationUDFs/01TeradataUDFs/suselinux-x8664/udf_installation/。
使用两者连接到Teradata数据库。
键入以下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));
安装驱动程序时需要满足以下条件:
文件名和sha1:
tdodbc1620__linux_indep.16.20.00.00-1.tar.gz 121fdd978b56fe1304fc5cb7819741b0847f44fd
TeradataToolsAndUtilitiesBase__linux_indep.16.20.01.00.tar.gz b 29d0af5ffd8dcf68a9dbbaa6f8639387b19c563
如果您的Linux分发没有包,您可以按照CentOS 7中的说明(例如使用docker)进行安装,然后在Adobe Campaign服务器上复制/opt/teradata的内容。
要安装ODBC驱动程序,请执行以下操作:
提取tdodbc1620__linux_indep.16.20.00.00-1.tar.gz文件。
转到tdobc1620目录。
您可能需要修复设置脚本:
"sed -i s/16.10/16.20/ setup_wrapper.sh".
运行setup_wrapper.sh。
要安装工具,请执行以下操作:
提取TeradataToolsAndUtilitiesBase__linux_indep.16.20.01.00.tar.gz文件。
转到TeradataToolsAndUtilitiesBase/Linux/i386-x8664/tdicu目录。
运行setup_wrapper.sh。
转到TeradataToolsAndUtilitiesBase/Linux/i386-x8664/cliv2目录。
运行setup_wrapper.sh。
转到TeradataToolsAndUtilitiesBase/Linux/i386-x8664/tpbase目录。
运行setup_wrapper.sh。
libtelapi.so文件应在/opt/teradata/client/16.20/lib64中可用。
您首先需要下载适用于Windows的Teradata工具和实用程序。 您可以从此处下载它 页面
确保安装ODBC驱动程序和Teradata并行传输器库。 它将安装用于对Teradata库进行批量加载的telapi.dll。
确保驱动程序和实用程序的路径位于nlserver在执行期间将具有的PATH变量中。 默认情况下,路径为C:\Program Files (x86)\Teradata\Client\15.10\bin on Windows 32 bits or C:\Program Files\Teradata\Client\15.10\bin on 64 bit)。
Teradata使用的时区名称不是标准名称,您可以在 Teradata网站. Adobe Campaign将尝试将外部配置中给定的时区转换为一些Teradata了解的时区。 如果找不到通信,则会在会话中找到其他时区的GMT+X(或GMT-X)时区,并在日志中显示警告。
转换完成后,将读取名为datakit目录中的teradata_timezones.txt文件:在linux下为/usr/local/neolane/nl6/datakit。 如果编辑此文件,请确保联系Adobe Campaign团队以在源代码中进行更改,否则下次更新Campaign时会覆盖此文件。
使用 — verbose开关运行nlserver时,将指示用于连接的时区,例如:
15:04:04 > ODB-240007 Teradata: will use 'Europe Central' as session time zone.
如果使用的时区不正确,则可以在外部帐户中添加名为“TimeZoneName”的选项。 在这种情况下,请使用Teradata值,例如“TimeZoneName=Europe Central”。
在Teradata文档中使用批量加载或“快速加载”时,Campaign无法指示时区。 因此,建议设置Campaign用于连接的用户的默认时区:
MODIFY USER $login$ AS TIME ZONE = 'Europe Central';