2015年3月13日

SQL ServerからTeradataに接続する

仕事場ではTeradata使っています

かなりの量のデータになってるみたいなんですが。
とりあえずの物置みたいです。
そんなTeradataにSQL Serverからリンクサーバー機能を使って接続する、って話。

TeradataのDeveloer Blogに書いてある

何のことは無い、実はすでに書いてあるんです。
Setup SQL Server 2008 R2 Linked Server To the Teradata Database
んで、この通りにやってみると。
リンクサーバー作るまではできるんですが、ODBCのドライバが読み込めないとのエラーが。
(スクショ撮るの忘れた… orz)
Microsoft SQL Server Error. 7303 とのこと。

答えもすでに書いてある

上記のページに実はすでにこのエラーについてコメントに書いてあって。
「すべてのTeradataのドライバを消して、64ビットだけ入れればいいよ」
とのこと。
実は、上記のページの最初にTeradataのODBCドライバがリンクされてあって、そこからドライバをダウンロードして入れたのですが、それだと32ビットのドライバもインストールされてしまうんですね。
そこで、以下の手順で再インストール。
  1. SQL Serverからリンクサーバーの情報を消す
  2. ODBCの設定を消す
  3. ODBCドライバを削除する
  4. Program Filesと(x86)からTeradataのディレクトリを消す
  5. SQL Serverのマシンを再起動(重要!)
  6. 上記ドライバをダウンロードし、解凍する
  7. 解凍してできたディレクトリ内のx64ディレクトリ内を、ICU、GSS、ODBCの順にインストールする
  8. 管理ツールのODBC データソース(64ビット)からODBCの設定を行う
  9. SQL Serverにリンクサーバーの設定をする
と。
まあ、普通にx64を再インストールすればいいだけなんですが。
これで問題なくリンクサーバーとして使えるようになります。

アクセス方法

Teradataにアクセスする方法としては、最初のリンクに書いてありますが、
select * from TD..scheme.table
という書き方でできます。
リンクサーバーの名前をTDのところに、リンクサーバー名を書くんですね。
やってみたらデータ多すぎでメモリに入らない、と言われたら、
select * from openquery(TD, ‘select * from scheme.table’)
という感じで、openquery構文を使いましょう。
’内に’を書く場合、’’と2重で書けば大丈夫です。

MySQLとのリンクサーバーを作るときの問題

以前にSQL ServerからMySQLのサーバーにリンクサーバーを作るときの方法を書いたのですが。
これが。
いろいろ間違っていて。(日本語関連とか…)
時期を見て書き直します…。

0 件のコメント:

コメントを投稿