Teradata へのアクセスの設定 configure-access-to-teradata
キャンペーンを使用 Federated Data Access (FDA) 外部データベースに保存されている情報を処理するオプション。 次の手順に従って、Teradataへのアクセスを設定します。
- インストールと設定 Teradataドライバ
- teradataの設定 外部アカウント Campaign 内
- 設定 追加設定 (Teradataと Campaign サーバーの場合 )
Teradata設定 teradata-config
Campaign に接続するTeradataのドライバをインストールする必要があります。
-
Teradata 用の ODBC ドライバーをインストールします。
これは 3 つのパッケージで構成され、Red Hat(または CentOS)/Suse に次の順序でインストールできます。
- TeraGSS
- tdicu1510(setup_wrapper.sh を使用してインストール)
- tdodbc1510(setup_wrapper.sh を使用してインストール)
-
ODBC ドライバーを設定します。設定は、標準のファイル(一般的なパラメーターは /etc/odbc.ini、ドライバーの宣言は /etc/odbcinst.ini)でおこなえます。
-
/etc/odbc.ini
code language-none [ODBC] InstallDir=/etc/
「InstallDir」は、odbcinst.ini ファイルの保存場所です。
-
/etc/odbcinst.ini
code language-none [ODBC DRIVERS] teradata=Installed [teradata] Driver=/opt/teradata/client/17.10/lib64/tdataodbc_sb64.so APILevel=CORE ConnectFunctions=YYY DriverODBCVer=3.51 SQLLevel=1
-
-
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)。
Teradata 外部アカウント teradata-external
Teradata 外部アカウントを使用すれば、Campaign インスタンスを Teradata 外部データベースに接続することができます。
-
キャンペーンから エクスプローラ をクリックし、 管理 / Platform / 外部アカウント.
-
「新規」をクリックし、「タイプ」として「外部データベース」を選択します。
-
Teradata 外部アカウントを設定するには、次を指定する必要があります。
-
タイプ:を選択します。 Teradata タイプ。
-
サーバー:Teradataサーバーの URL または名前
-
アカウント:データデータベースへのアクセスに使用するTeradataの名前
-
パスワード:データデータベースへの接続に使用するTeradata
-
データベース:データベースの名前(オプション)
-
オプション:データに渡すTeradata。 「parameter=value」の形式を使用します。 値間の区切り記号としてセミコロンを使用します。
-
タイムゾーン:タイムゾーンがTeradataで設定されます。 詳細情報
-
コネクタは、次のオプションをサポートしています。
詳しくは、このページを参照してください。
詳しくは、 このページ
ODBC 外部アカウントを追加する add-external
teradataドライバーは独自の ODBC ライブラリを提供しますが、このライブラリは他の ODBC 外部アカウントと互換性がない場合があります。
ODBC も使用する別の外部アカウント ( 例:Snowflake) を設定する場合は、デフォルトの ODBC ライブラリ (/usr/lib/x86_64-linux-gnu/libodbc.so
(Debian および) /usr/lib64/libodbc.so
(RHEL/CentOS の場合)
Query Banding
複数の Adobe Campaign ユーザーが同じ FDA Teradata 外部アカウントに接続する場合は、「Query banding」タブを使用するとクエリバンドを設定できます(例:セッションでのキー/値のペアのセットなど)。
このオプションを設定すると、Campaign ユーザーがTeradataデータベースに対してクエリを実行するたびに、Adobe Campaignはこのユーザーに関連付けられたキーのリストで構成されたメタデータを送信します。 Teradata 管理者は、このデータを監査目的や、アクセス権の管理に使用できます。
Query Banding を設定するには、以下の手順に従います。
-
以下を使用します。 デフォルト をクリックして、ユーザーにクエリバンドが関連付けられていない場合に使用するデフォルトのクエリバンドを入力します。 このフィールドが空になっている場合、クエリバンドがないユーザーは Teradata を使用できません。
-
以下を使用します。 ユーザー フィールドを使用して、各ユーザーのクエリバンドを指定します。 キーと値のペアを必要な数だけ追加できます。例:priority=1;workload=highユーザーにクエリバンドが割り当てられていない場合は、「デフォルト」フィールドが適用されます。
-
この機能を有効にするには、「アクティブ」ボックスをオンにします。
外部アカウントのトラブルシューティング external-account-troubleshooting
接続のテスト中にエラー 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 Driver 16.10"」を追加できます。 バージョン番号は異なる場合があります。正確な番号は、odbcad32.exe を実行して「ドライバー」タブにアクセスすると見つかります。
-
古いバージョンの Campaign を使用している場合は、ドライバーのインストールによって作成された odbcinst.ini のTeradataセクションを、Teradataと呼ばれる新しいセクションにコピーする必要があります。 この場合は、regedit を使用できます。 ベースが latin1 の場合は、 APICharSize=1 」をクリックします。
その他の設定 teradata-additional-configurations
ユーザー設定 user-configuration
外部データベースには、カスタムプロシージャの作成/ドロップ/実行、テーブルの作成/ドロップ/挿入/選択の権限が必要です。 また、Adobe Campaign インスタンスで md5 および sha2 関数を使用する場合は、ユーザーモード関数を作成する必要が生じる場合もあります。
正しいタイムゾーンを設定してください。タイムゾーンは、Adobe Campaign インスタンスで作成される外部アカウントで設定される値と一致する必要があります。
Adobe Campaign は、データベース内で作成するオブジェクトに対して保護モード(フォールバック)を設定しません。次のクエリを使用して、Adobe Campaign が Teradata データベースへの接続に使用するデフォルトをユーザーに対して設定する必要がある場合があります。
MODIFY USER $login$ AS NO FALLBACK;
MD5 のインストール md5-installation
Adobe Campaign インスタンスで md5 関数を使用する場合は、このページの Teradata データベースにユーザーモード関数をインストールする必要があります(md5_20080530.zip)。
ダウンロードファイルの sha1 は「65cc0bb6935f72fcd84fef1ebcd64c00115dfd1e」です。
md5 をインストールするには、以下を実行します。
-
md5_20080530.zip ファイルを解凍します。
-
md5/src ディレクトリに移動します。
-
bteq を使用して Teradata データベースに接続します。
-
次の bteq コマンドを実行します。
code language-none .run file = hash_md5.btq
SHA2 のインストール sha2-installation
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 ディレクトリに移動します。
-
bteq を使用して Teradata データベースに接続します。
-
次の 2 つの bteq コマンドを実行します。
code language-none .run file = hash_sha256.sql .run file = hash_sha512.sql
UDF_UTF16TO8 のインストール UDF-UTF16TO8-installation
Adobe Campaignインスタンスで udf_utf16to8 関数を使用する場合は、 Teradataunicode ツールキット.
ダウンロードファイルの 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/01 Teradata UDFs/suselinux-x8664/udf_installation/ です。
-
bteq を使用して Teradata データベースに接続します。
-
次の bteq コマンドを入力します。
code language-none 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 サーバー設定 campaign-server-linux
ドライバーのインストールには次が必要です。
ファイル名と 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-installation
ODBC ドライバーをインストールするには、以下を実行します。
-
tdodbc1620__linux_indep.16.20.00.00-1.tar.gz ファイルを抽出します。
-
tdodbc1620 ディレクトリに移動します。
-
セットアップスクリプトの修正が必要になる場合があります。
code language-none "sed -i s/16.10/16.20/ setup_wrapper.sh".
-
setup_wrapper.sh を実行します。
Teradata ツールとユーティリティのインストール teradata-tools-installation
ツールをインストールするには、以下を実行します。
-
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/tptbase ディレクトリに移動します。
-
setup_wrapper.sh を実行します。
-
Libtelapi.so ファイルは /opt/teradata/client/16.20/lib64 にあります。
Windows の Campaign サーバーの設定 campaign-server-windows
最初に、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 ビット)です。
タイムゾーン timezone
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';