Teradata へのアクセスの設定

外部データベースに保存された情報を処理するには、CampaignのFederated Data Access(FDA)オプションを使用します。 次の手順に従って、Teradataへのアクセスを設定します。

  1. Teradataドライバをインストールして構成します。
  2. CampaignでTeradata外部アカウントを設定します
  3. teradataとCampaignサーバーの追加設定をセットアップします。

Teradata構成

Campaignに接続するには、Teradata用のドライバーをインストールする必要があります。

  1. Teradata 用の ODBC ドライバーをインストールします。

    これは 3 つのパッケージで構成され、Red Hat(または CentOS)/Suse に次の順序でインストールできます。

    • TeraGSS
    • tdicu1510(setup_wrapper.sh を使用してインストール)
    • tdodbc1510(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)。
メモ

FDAで外部Teradataに接続するには、Adobe Campaignサーバーで追加の設定手順が必要です。 詳細情報

Teradata 外部アカウント

Teradata 外部アカウントを使用すれば、Campaign インスタンスを Teradata 外部データベースに接続することができます。

  1. キャンペーン​エクスプローラー​から、管理 / プラットフォーム / 外部アカウント​をクリックします。

  2. 新規」をクリックし、「タイプ」として「外部データベース」を選択します。

  3. Teradata 外部アカウントを設定するには、次を指定する必要があります。

    • :Teradatatypeを選択 ​します。

    • サーバー:teradataサーバーのURLまたは名前

    • アカウント:teradata・データベースへのアクセスに使用するアカウントの名前

    • パスワード:teradata・データベースへの接続に使用するパスワード

    • データベース:データベースの名前(オプション)

    • オプション:渡すTeradata。次の形式を使用します。'parameter=value'. 値の間の区切り文字として半列を使用します。

    • タイムゾーン:タイムゾーンをTeradataで設定。詳細情報

Query Banding

複数の Adobe Campaign ユーザーが同じ FDA Teradata 外部アカウントに接続する場合は、「Query banding」タブを使用するとクエリバンドを設定できます(例:セッションでのキー/値のペアのセットなど)。

このオプションを設定すると、CampaignユーザーがTeradataデータベースに対してクエリを実行するたびに、Adobe Campaignは、このユーザーに関連付けられたキーのリストで構成されるメタデータを送信します。 Teradata 管理者は、このデータを監査目的や、アクセス権の管理に使用できます。

メモ

Query banding について詳しくは、Teradata ドキュメントを参照してください。

Query Bandingを設定するには、次の手順に従います。

  1. デフォルト​を使用して、ユーザーにクエリバンドが関連付けられていない場合に使用するデフォルトのクエリバンドを入力します。 このフィールドが空になっている場合、クエリバンドがないユーザーは Teradata を使用できません。

  2. Users​フィールドを使用して、各ユーザーのクエリバンドを指定します。 キーと値のペアを必要な数だけ追加できます。例:priority=1;workload=highユーザーにクエリバンドが割り当てられていない場合は、「デフォルト」フィールドが適用されます。

  3. この機能を有効にするには、「アクティブ」ボックスをオンにします。

外部アカウントのトラブルシューティング

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

エラー ODB-240000 ODBC error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified. は、Windows で 16.X ドライバーを使用した場合に発生します。Adobe Campaign の odbcinst.ini では、Teradata のメタデータ名は「{teradata}」である必要があります。

  • Campaign 18.10以降は、外部アカウントのオプションにODBCDriverName="TeradataデータベースODBCドライバー16.10"を追加できます。 バージョン番号は異なる場合があります。正確な番号は、odbcad32.exe を実行して「ドライバー」タブにアクセスすると見つかります。

  • 古いバージョンのCampaignを使用している場合は、ドライバーのインストールによって作成されたodbcinst.iniのTeradataセクションを、Teradataと呼ばれる新しいセクションにコピーする必要があります。 この場合は、Regeditを使用できます。 ベースがlatin1の場合は、オプションに​APICharSize=1​を追加する必要があります。

その他の設定

ユーザー設定

外部データベースには、次の権限が必要です。カスタムプロシージャの作成/ドロップ/実行、テーブルの作成/ドロップ/挿入/選択 また、Adobe Campaign インスタンスで md5 および sha2 関数を使用する場合は、ユーザーモード関数を作成する必要が生じる場合もあります。

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

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

disable default fallback
MODIFY USER $login$ AS NO FALLBACK;

MD5 のインストール

Adobe Campaign インスタンスで md5 関数を使用する場合は、このページの Teradata データベースにユーザーモード関数をインストールする必要があります(md5_20080530.zip)。

ダウンロードファイルの sha1 は「65cc0bb6935f72fcd84fef1ebcd64c00115dfd1e」です。

md5 をインストールするには、以下を実行します。

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

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

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

  4. 次の bteq コマンドを実行します。

    .run file = hash_md5.btq
    

SHA2 のインストール

Adobe Campaign インスタンスで sha2 関数を使用する場合は、このページから Teradata データベースにユーザーモード関数をインストールする必要があります(teradata-udf-sha2-1.0.zip)。

ダウンロードファイルの sha1 は「e87438d37424836358bd3902cf1adeb629349780」です。

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 のインストール

Adobe Campaign インスタンスで udf_utf16to8 関数を使用する場合は、このページTeradata unicode ツールキット(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/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));
    

Linux の Campaign サーバー設定

ドライバーのインストールには次が必要です。

  • Teradata ODBC ドライバー(このページにあります)

  • Teradata ツールおよびユーティリティ(一括読み込みに使用)(このページにあります)

ファイル名と 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 ドライバーのインストール

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 を実行します。

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 の Campaign サーバーの設定

最初に、Windows 用の Teradata ツールとユーティリティをダウンロードする必要があります。このページからダウンロードできます。

ODBC ドライバーと Teradata Parallel Transporter Base を必ずインストールしてください。Teradata データベースに一括読み込みをおこなう際に使用する telapi.dll をインストールします。

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

タイムゾーン

Teradata は、標準ではないタイムゾーン名を使用しています。リストは Teradata サイトで見つかります。Adobe Campaign は、外部設定で指定されたタイムゾーンを Teradata が理解できるものに変換しようとします。該当するものが見つからない場合は、セッションに一番近い GMT+X(または GMT-X)タイムゾーンが使用されて、ログに警告が表示されます。

変換は、teradata_timezones.txt ファイルを読み取っておこなわれます。このファイルは linux では datakit ディレクトリ(/usr/local/neolane/nl6/datakit)にあります。このファイルを編集する場合は、Adobe Campaign チームに連絡してソースコードを変更してください。これを怠ると、次回 Campaign アップデートした時にこのファイルが上書きされます。

接続に使用されるタイムゾーンは、nlserver を -verbose スイッチで実行するときに示されます。例:

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

このページ