DSN(データベースソース名)ファイルを使用すると、複数のユーザーがフラットファイルの情報を使用してデータベースに接続できます。これは、データベースクライアントプログラム(この場合はIRI Workbenchのソフトウェア)がデータベースに接続するために使用します。
DSNファイルには、データソースの名前とディレクトリ、接続ドライバー、サーバーアドレス、ユーザーID、パスワードなどのプロパティが記述されています。これは、ODBCドライバーが、そのプロトコルをサポートするデータベースに接続するために使用します。通常、プレーンテキストとして保存されるDSNファイルは次の機能を提供します。
- 利便性–ローカルで接続を構成する必要がなくなります。
- 移植性–さまざまなユーザー間で共有でき、簡単に変更できます。
- セキュリティ–アクセスが制限されたGitなどのリポジトリに保存できます。
以下の手順は、/ PROCESS =ODBCを使用してリレーショナルデータベースのデータを処理する場合に、IRIジョブスクリプト(CoSort SortCLなど)でDSNファイルを作成して使用する方法を示しています。
ステップ1–クライアントとサーバー用のODBCドライバーを入手してインストールします
DSNファイルを作成するには、データベースとそのサーバーに適切なODBCドライバーがあることを確認してください。例:Windows上のMySQL。この説明では、データベースとサーバーがローカルマシン上にあると想定しています。
ステップ2–見つけて検査する odbcinst。 ini (コネクタ)ファイル
いずれの場合も、ODBCドライバーライブラリとそれを参照するDSNファイル間のコネクタとして機能するodbcinst.iniファイルが必要です。このファイルには、DSNファイルに必要な場所/リンク情報が含まれています。
私はWindows7PCでMySQLを実行しています。他のほとんどのオペレーティングシステムでは、これらの手順は異なる場合があり、さまざまな種類のサーバーへの接続方法を説明する検索で見つかった情報で変更できます。
私のodbcinst.iniファイルはたまたまC:\Windowsにあります。見つからない場合は、odbcinst.iniファイルへの情報のインストールをサポートしていれば、選択したサーバーの公式サイトから入手できます。
次のodbcinst.iniファイルは、MySQLがコネクタのインストールを使用して作成したものです。
私の場合と同じ詳細を手動で入力することもできます:
[MySQL ODBC 5.3 Unicode Driver (32 bit)] Driver=C:\Program Files (x86)\MySQL\Connector ODBC 5.3\myodbc5w.dll Setup=C:\Program Files (x86)\MySQL\Connector ODBC 5.3\myodbc5S.dll 32Bit=1 [MySQL ODBC 5.3 ANSI Driver (32 bit)] Driver=C:\Program Files (x86)\MySQL\Connector ODBC 5.3\myodbc5a.dll Setup=C:\Program Files (x86)\MySQL\Connector ODBC 5.3\myodbc5S.dll 32Bit=1
オペレーティングシステムはそれぞれ異なり、このファイルは複数の方法で設定できます。例として、Linux上のodbcinst.iniファイルにユーザーが次のように入力しました。
[MySQL] Description = ODBC for MySQL Driver = /usr/lib/libmyodbc3.so Setup = /usr/lib/libodbcmyS.so FileUsage = 1
コネクタファイルが適切に構成されたら、次の手順に進みます。
ステップ3–DSNファイルを作成する
この例では、忠実なクライアントを追跡するための名前と電話番号を含む「loyal」というテーブルを持つ「clients」というMySQLデータベースがあると想定しています。この例ではDSN変数を手動で入力しましたが、WindowsODBCアドミニストレータユーティリティは[ファイルDSN]タブからDSNファイルを作成できます。
DSNファイルに必要な最小変数は次のとおりです。
[ODBC] DRIVER= DATABASE= SERVER=
DRIVER変数は、odbcinst.iniファイルから取得されます。上記のWindowsの例では、MySQL ODBC 5.3 Unicodeドライバー(32ビット)を入力します。
DATABASEは、アクセスするデータベースの名前です。この場合は「クライアント」です。
SERVERはデータベースの場所です。この場合、場所は「localhost」です(データベースはローカルマシン上にあるため)。
完成したDSNファイルには次のものが含まれます。
[ODBC] DRIVER=MySQL ODBC 5.3 Unicode Driver (32 bit) DATABASE=clients SERVER=localhost
DRIVERの仕様は、odbcinst.iniファイルのドライバーに適用される括弧で囲まれたヘッダーのテキストと完全に一致する必要があることに注意してください。 DSNファイルには、実行可能ファイルがジョブ設計クライアントで実行されているか、本番/データベースサーバーで実行されているかに関係なく、データベースサーバー接続の詳細が含まれている必要があります。
DSNファイルにはより多くの情報を含めることができます。この例では、追加される3つの行は、UID、PASSWORD、およびPORTです。 UIDは、サーバーにアクセスできる任意のユーザーIDです。ここで、UIDはrootで、PASSWORDは「mypassword」です。デフォルトのMySQLポートである3306を使用しました。
更新されたDSNファイルには次のものが含まれます。
[ODBC] DRIVER=MySQL ODBC 5.3 Unicode Driver DATABASE=clients SERVER=localhost UID=root PASSWORD=mypassword PORT=3306
DSNファイルは、拡張子が.dsnの任意の名前で保存できるようになりました。 TEST.DSNを指定しました。
/ PROCESS =ODBCが指定され、入力または出力ファイル宣言に.DSNファイルと等しいFILEDSNパラメータセットが含まれている場合、すべてのIRIジョブスクリプト(NextFormおよびFieldShieldを含むCoSort SortCLプログラムに基づく)はDSNファイル情報を使用できます。
このSortCLジョブスクリプトは、上記のDSNファイルを使用します。
/INFILE="loyal;FILEDSN=C:\Users\LocalUser\Documents\Test.dsn;" /PROCESS=ODBC /ALIAS=loyal /FIELD=(NAME, TYPE=ASCII, POSITION=1, SEPARATOR="\t", EXT_FIELD="name", PRECISION=0) /FIELD=(PHONE, TYPE=ASCII, POSITION=2, SEPARATOR="\t", EXT_FIELD="phone", PRECISION=0) /REPORT /OUTFILE=stdout /PROCESS=RECORD /FIELD=(NAME, TYPE=ASCII, POSITION=1, SEPARATOR="\t", EXT_FIELD="name", PRECISION=0) /FIELD=(PHONE, TYPE=ASCII, POSITION=2, SEPARATOR="\t", EXT_FIELD="phone", PRECISION=0)
上記の例が示すように、DSNファイルへの絶対パスを指定する必要があります。
ファイルDSNは、他のすべてのODBC接続と同様に、データ接続レジストリに登録できます。 設定>データ接続レジストリ>追加に移動します 。 [ファイルDSN]を選択し、ファイルの場所を入力します。この接続は、Workbench全体のウィザードで使用できます。
IRI Workbenchでのデータベース接続の登録に関するこの記事を参照し、ヘルプが必要な場合は[email protected]に連絡してください。