仕事場では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ビットのドライバもインストールされてしまうんですね。
そこで、以下の手順で再インストール。
- SQL Serverからリンクサーバーの情報を消す
- ODBCの設定を消す
- ODBCドライバを削除する
- Program Filesと(x86)からTeradataのディレクトリを消す
- SQL Serverのマシンを再起動(重要!)
- 上記ドライバをダウンロードし、解凍する
- 解凍してできたディレクトリ内のx64ディレクトリ内を、ICU、GSS、ODBCの順にインストールする
- 管理ツールのODBC データソース(64ビット)からODBCの設定を行う
- 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 件のコメント:
コメントを投稿