Teradata へのアクセスの設定 configure-access-to-teradata
Campaign Federated Data Access (FDA)オプションを使用して、外部データベースに保存されている情報を処理します。 teradataへのアクセスを設定するには、次の手順に従います。
- Teradata ドライバのインストールと構成
- Campaign でのTeradata 外部アカウントの設定
- 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外部データベースに接続できます。
-
Campaign エクスプローラー で、管理/プラットフォーム/外部アカウント をクリックします。
-
「新規」をクリックし、「タイプ」として「外部データベース」を選択します。
-
Teradata 外部アカウントを設定するには、次を指定する必要があります。
-
種類: Teradata の種類を選択します。
-
Server:Teradataサーバーの URL または名前
-
アカウント:Teradataデータベースへのアクセスに使用するアカウント名
-
Password:Teradataデータベースへの接続に使用するパスワード
-
Database:データベースの名前(オプション)
-
Options:Teradataを通じて渡されるオプション。 「parameter=value」の形式を使用します。 値間の区切り文字としてセミコロンを使用します。
-
タイムゾーン:Teradataに設定されたタイムゾーン。 詳細情報
-
コネクタは、次のオプションをサポートしています。
詳しくは、このページを参照してください。
詳しくは、 このページを参照してください。
追加の ODBC 外部アカウント add-external
teradata ドライバは独自の ODBC ライブラリを提供しますが、このライブラリは他の ODBC 外部アカウントと互換性がない可能性があります。
ODBC も使用する別の外部アカウント(Snowflakeなど)を設定する場合は、デフォルトの ODBC ライブラリ(Debian の場合は /usr/lib/x86_64-linux-gnu/libodbc.so
、RHEL/CentOS の場合は /usr/lib64/libodbc.so
)のパスに ODBCLib オプションを追加する必要があります。
Query Banding
複数の Adobe Campaign ユーザーが同じ FDA Teradata 外部アカウントに接続する場合は、「Query banding」タブを使用するとクエリバンドを設定できます(例:セッションでのキー/値のペアのセットなど)。
このオプションを設定すると、Campaign ユーザーがTeradataデータベースに対してクエリを実行するたびに、Adobe Campaignからメタデータが送信されます。メタデータは、このユーザーに関連付けられたキーのリストで構成されます。 Teradata 管理者は、このデータを監査目的や、アクセス権の管理に使用できます。
クエリバンドを設定するには、次の手順に従います。
-
Default を使用して、ユーザーに関連付けられたクエリーの帯がない場合に使用されるデフォルトのクエリーの帯を入力します。 このフィールドが空になっている場合、クエリバンドがないユーザーは 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 ドライバー 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 関数を使用する場合は、Teradata Unicode ツールキット からTeradataデータベースにユーザーモード関数をインストールします。
ダウンロードファイルの 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';