0

Progressデータベース(v10.2b)から抽出するための最良のアプローチ(または選択できるいくつかの良いアプローチ)を探しています。最終的なターゲットはSQLServer(v2008)になります。「最終的なターゲット」と言うのは、SQL Server内からProgressに直接接続する必要がないためです。つまり、Progressからテキストファイルに抽出し、それをSQLServerにインポートすることを嫌うわけではありません。

アプローチに関する私の研究は、私のものと一致しないシナリオを思いついた。

  • ProgressDB全体をSQLServerに移行する
  • テーブル全体をProgressからSQLServerにエクスポートする
  • Progress固有のツールを使用して、私がアクセスできないもの

ODBCを使用してProgressに接続でき、Visual Studio(v2010)内からいくつかのクエリを記述しました。また、Progressデータベースに対して少しカスタムプログラミングを行い、いくつかのことを証明するための単純なWebインターフェイスを構築しました。

したがって、私の要件は、ODBCを使用し、特定のクエリを毎日実行するルーチンを構築することです。このクエリの結果は、SQLServerデータベースにインポートされます。よろしくお願いします。

更新
いくつかの追加調査の結果、リンクサーバーが私が探しているものであることがわかりました。SQLServerExpressを使用している他の人への注意事項。

  • 使用しているのがSQLServerExpressの場合、デスクトップまたはDTSの[スタート]メニューにプログラムが表示されない場合があります。DTSWizard.exeがSQLServerプログラムファイル(私にとってはC:\ Program Files(x86)\ Microsoft SQL Server \ 100 \ DTS \ Binn)にネストされているのを見つけ、ショートカットを簡単に作成できました。
  • また、SQLServerのSQLExpressバージョンを使用しているため、作成したパッケージを保存できませんでした。したがって、パッケージを作成して一度実行した後、パッケージを再実行し、将来使用するためにSQLを保存しました。
4

2 に答える 2

2

少し遅い答えですが、誰かがこれをしようとしていた場合に備えて...

リンクサーバーを使用することもできますが、ODBCドライバーを介して直接接続する場合ほどパフォーマンスが向上しないことがわかります。また、データ型の変換により、一部のテーブルにアクセスできない場合があります。リンクされたサーバーは、データを探索するのに便利かもしれません。

ODBCドライバーでSSISを使用する場合(ADO.NETデータソースを使用する必要があります)、これは最も効率的に実行され、より正確なデータ型を取得する必要があります(進行中のデータ型は動的に変更される可能性があることに注意してください) 。

多くのテーブルを抽出する必要がある場合は、これを実現するためにBIMLを検討します。BIML(ビジネスインテリジェンスマークアップ言語)は、マスターパッケージから呼び出すことができる多くのSSISパッケージをその場で動的に作成するのに役立ちます。その後、このマスターパッケージをスケジュールしたり、アドホックで実行したりできます。また、必要に応じて、任意の子パッケージを実行できます。

于 2014-03-15T19:50:19.967 に答える
0

OLEを使用してProgressDBに接続できますか?その場合は、SQL Server Linked Serverを使用して、SQLServerにロードされるファイルに抽出する必要を回避できます。または、Excelに抽出してから、ExcelからSQLServerにインポートすることもできます。

于 2013-01-29T14:46:11.037 に答える