このページでは、Adobe Campaign Classic で Teradata 外部アカウントを使用可能にする設定方法を説明します。また、Teradata データベースを Campaign の各機能で使用するための設定方法についても説明します。

注意:

このドキュメントでは、外部アカウントの一般的な設定と使用については説明しません。詳しくは、こちらのページを参照してください。

互換性

Unicode ベース

データベースのバージョン ドライバーのバージョン Campaign の必要最小バージョン
注意
15 15 ACC 17.9

Linux の場合:

  • タイムスタンプのあるクエリは失敗する可能性があります。
    (バージョン 18.4 のビルド 8937、バージョン 18.10 のビルド 8977 で修正済み)。
  • デバッグモードでは、ドライバーの不適切なメモリ使用に関する警告が表示される可能性があります。しかし、このセットアップを使用したアドビのテストでは、安定性に問題が出ることはありませんでした。
15

16

ACC 17.9

Linux で Teradata 15 データベースを使用する場合の推奨セットアップ。
 
16
16
ACC 18.10
サローゲートペアを含む Unicode 文字は、完全に処理されません。
  • サロゲート文字をデータで使用する場合は、機能します。
  • サロゲートをクエリのフィルター条件で使用する場合は、この変更なしでは機能しません。

16

15

サポートされていない
 

Latin1 ベース

ACC 17.9 より前の Adobe Campaign Classic は、Teradata Latin-1 データベースのみをサポートしていました。

ACC 17.9 以降の Adobe Campaign Classic は、デフォルトで Unicode で Teradata データベースをサポートします。

Latin-1 の Teradata データベースを最新の Campaign Classic リリースに移行する場合は、外部アカウントのオプションにパラメーター APICharSize=1 を追加する必要があります。

説明

データベースの設定

ユーザーの設定

カスタム手順の作成/ドロップ/実行権限、テーブルの作成/ドロップ/挿入/選択権限が必要です。Adobe Campaign インスタンスで md5 および sha2 関数を使用する場合は、ユーザーモード関数も作成する必要があります(ユーザーモード関数を参照してください)。

正しいタームゾーンが設定されていることを確認します。タイムゾーンは、Adobe Campaign インスタンスで作成された外部アカウントで設定されているタイムゾーンと一致する必要があります。

Campaign は、データベース内に作成するオブジェクトに保護モード(フォールバック)を設定しません。以下のクエリを使用して、Campaign が Teradata データベースへの接続に使用するユーザーにデフォルトを設定できます。

デフォルトフォールバックの無効化
MODIFY USER $login$ AS NO FALLBACK;

ユーザーモード関数

Adobe Campaign インスタンスで md5 または sha2(sha256 または sha512)関数を使用する場合は、Teradata データベースに以下のユーザーモード関数をインストールする必要があります:

以下は、テスト済みのバージョンおよびダウンロードされるファイルの sha1 のリストです:

  • md5_20080530.zip 65cc0bb6935f72fcd84fef1ebcd64c00115dfd1e
  • teradata-udf-sha2-1.0.zip e87438d37424836358bd3902cf1adeb629349780
  • utk_release1.7.0.0.zip e58235f434f52c71316a577cb48e20b97d24f470

md5 をインストールするには:

  1. md5_20080530.zip ファイルを解凍します。

  2. md5/src ディレクトリに移動します。

  3. bteq を使用して Teradata データベースに接続します。

  4. 以下の bteq コマンドを実行します:

     

    .run file = hash_md5.btq

sha2 をインストールするには:

  1. teradata-udf-sha2-1.0.zip ファイルを解凍します。

  2. teradata-udf-sha2-1.0/src ディレクトリに移動します。

  3. bteq を使用して Teradata データベースに接続します。

  4. 以下の 2 つの bteq コマンドを実行します:

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

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/01 Teradata UDFs/suselinux-x8664/udf_installation/)に移動します。

  3. bteq を使用して Teradata データベースに接続します。

  4. 以下の bteq コマンドを入力します:

    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));

Campaign サーバーの設定

Linux

ドライバーのインストール

このインストールには、以下の 2 つのものが必要です:

ファイル名と sha1:

  • tdodbc1620__linux_indep.16.20.00.00-1.tar.gz 121fdd978b56fe1304fc5cb7819741b0847f44fd
  • TeradataToolsAndUtilitiesBase__linux_indep.16.20.01.00.tar.gz b29d0af5ffd8dcf68a9dbbaa6f8639387b19c563

Linux ディストリビューションのパッケージがない場合は、CentOS 7 で説明されている方法(docker を使用するなど)でインストールし、/opt/teradata の内容を Adobe Campaign サーバーにコピーできます。Debian 8 では、この方法が有効です。

ODBC ドライバーをインストールするには:

  1. tdodbc1620__linux_indep.16.20.00.00-1.tar.gz ファイルを解凍します。

  2. tdodbc1620 ディレクトリに移動します。

  3. セットアップスクリプト「sed -i s/16.10/16.20/ setup_wrapper.sh」の修正が必要な場合があります。

  4. setup_wrapper.sh を実行します。デフォルトオプションが正しく設定されている必要があります。

ツールをインストールするには:

  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 にあります。

ドライバーの設定

/etc/odbc.ini
[ODBC]
InstallDir=/etc/  
[ODBC Data Sources]
Teradata=/opt/teradata/client/16.20/lib64/tdataodbc_sb64.so
/etc/odbcinst.ini
[ODBC DRIVERS]
teradata=Installed  
[teradata]
Driver=/opt/teradata/client/16.20/lib64/tdataodbc_sb64.so
APILevel=CORE
ConnectFunctions=YYY
DriverODBCVer=3.51
SQLLevel=1

環境変数

customer.sh ファイルに以下の行を挿入します:

customer.sh
export ODBCINI="/etc/odbc.ini"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/teradata/client/16.20/lib64:/opt/teradata/client/16.20/odbc_64/lib"

Windows

最初に Windows 用の Teradata ツールとユーティリティをダウンロードする必要があります。

ODBC ドライバーと Teradata Parallel Transporter Base を必ずインストールします。このインストールによって、Teradata データベースへの一括ロードに使用する telapi.dll がインストールされます。

ドライバーとユーティリティのパスが、nlserver が実行中に使用する PATH 変数に設定されていることを確認します。デフォルトのパスは、Windows 32 ビット版では C:\Program Files (x86)\Teradata\Client\15.10\bin で、Windows 64 ビット版では C:\Program Files\Teradata\Client\15.10\bin です。

外部アカウントの設定

外部アカウントを設定するには、Teradata を選択し、データベースの名前を空白のままにします。関数をデプロイすることを忘れないでください。

接続のテスト中に、TIM-030008 Date '2': missing character(s) (iRc=-53) というエラーが表示された場合は、ODBC ドライバーが正しくインストールされ、LD_LIBRARY_PATH(Linux)または PATH(Windows)が Campaign サーバーに対して設定されていることを確認します。

Windows で 16.X ドライバーを使用すると、ODB-240000 ODBC error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified. というエラーが発生します。Campaign では、odbcinst.ini で teradata に '{teradata}' という名前が付けられていることを想定しています。
Campaign サーバーのバージョンが 18.10 である場合は、外部アカウントのオプションに ODBCDriverName="Teradata Database ODBC Driver 16.10" を追加できます。バージョン番号は、変わることがあります。正確な名前を確認するには、odbcad32.exe を実行し、「ドライバー」タブにアクセスします。
18.10 より前のバージョンの場合は、ドライバーのインストール時に作成された odbcinst.ini の Teradata セクションを、Teradata という新しいセクションにコピーする必要があります。この場合、regedit を使用できます。

Latin1 ベースの場合は、オプションに APICharSize=1 を追加する必要があります。詳しくは、互換性の節を参照してください。

タイムゾーン

タイムゾーンの処理が強化され、18.4 のビルド 8931 および 18.10 のビルド 8977 に追加されています。

Teradata で使用されるタイムゾーンの名前は、標準的ではありません。名前のリストは、Teradata サイトで確認できます。Campaign は、外部設定で指定されたタイムゾーンを Teradata で認識可能なタイムゾーンに変換しようとします。対応するタイムゾーンが見つからない場合は、最も近い GMT+X(または GMT-X)タイムゾーンがセッションのために検索され、ログに警告が記録されます。
タイムゾーンの変換は、teradata_timezones.txt というファイルを読み取って実行されます。このファイルは、Linux の /usr/local/neolane/nl6/datakit という datakit ディレクトリにあります。このファイルを編集する場合は、Adobe Campaign チームに連絡してソースコードを変更してください。そうしないと、次回の Campaign のアップデートでこのファイルが上書きされます。

-verbose スイッチを使用して nlserver を実行すると、接続に使用されるタイムゾーンが表示されます。以下に例を示します:

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

使用されるタイムゾーンが正しくない場合は、「TimeZoneName」というオプションを外部アカウントに追加できます。この場合、「TimeZoneName=Europe Central」のような Teradata の値を使用します。

Teradata ドキュメントで一括ロードまたは「高速ロード」を使用する場合、Campaign はタイムゾーンを表示できません。したがって、Campaign が接続に使用するユーザーのデフォルトタイムゾーンを設定することをお勧めします:

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

まとめ

このチュートリアルを完了すると、Campaign インスタンスと Teradata データベースの間で完全に機能する接続を確立できているはずです。
このような接続を確立できていない場合は、Adobe Campaign サポートチームにご連絡ください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー