2

SSIS を使用して PostgreSql データ ウェアハウスを維持することを検討しています。以前は問題なく SQL Server 間で使用していましたが、Postgres でうまく動作させるのは非常に困難です。OLEDB PGNP データ プロバイダー ( http://www.postgresql.org/about/news.1004 ) の評価版を使用しています。

ファクト テーブルの UPSERT のような単純なものから始めたかったのですが (1 万から 1 万 5 千行が毎日更新/挿入されます)、これは非常に難しいことがわかりました (言うまでもなく、将来的には代理キーを使用したいと思います)。

私は(http://blogs.msdn.com/b/mattm/archive/2008/11/22/lookup-pattern-upsert.aspx)および(http://consultingblogs.emc.com/jamiethomson/archiveを試みました/2006/09/12/SSIS_3A00_-Checking-if-a-row-exists-and-if-it-does_2C00_-has-it-changed.aspx ) これらは事実上同じです (ユニオンを本当に理解していないことを除いて)アップサートしようとしているときに最後にすべて)しかし、OLEDb コマンドを使用して更新を行うときに、パラメーターで同じ問題に遭遇します。 /library/ms141773.aspx ) しかし、それはうまくいかないようです。検証エラーが発生します –

complent の外部列..​​.. データソース列と同期していません... 外部列「Param_2」を外部列から削除する必要があります。(このエラーは最初の 2 つのパラメーターでも繰り返されます。名前付きパラメーターをサポートしているため、SQL 接続を使用してこれに遭遇したことはありません)

誰かがこれに出くわしましたか?

と:

この単純なタスクを SSIS で行うのは明らかに非常に難しいという事実は、私がその仕事に間違ったツールを使用していることを示唆しています。これを行うためのより良い (そしてまだ柔軟な) 方法はありますか? それとも、2 つの Postgres データベース間で使用するのに別の ETL パッケージの方が適していますか? -その他のオプションには、( http://en.wikipedia.org/wiki/Extract,_transform,_load#Open-source_ETL_frameworks ) にリストされているものが含まれます。これを実行するために大量の SQL を作成することもできますが、きちんとした簡単に保守できるソリューションが必要でした。

4

2 に答える 2

0

これには、緩やかに変化するディメンション ウィザードを使用しましたが、うまくいきました。特にウィザードで探しているものを提供する場合があります

http://msdn.microsoft.com/en-us/library/ms141715.aspx

外部列の同期が取れていない: SSIS は大文字と小文字を区別します - この問題に何度も遭遇したため、髪を引っ張りたくなりました。

この単純なタスクには、いずれにしても多少の作業が必要です。SSIS は決してエンタープライズ クラスの ETL 製品ではありませんが、迅速で簡単な機能を提供し、ほとんどの ETL 作業には十分です。それはあなたの快適さのレベルにも関係していると思います。

于 2009-10-14T19:49:20.843 に答える
0

SCDは、私が望むものには遅すぎます。セットベースのSQLを使用する必要があります。

私の問題の多くはプロバイダーのバグにあることが判明しました。フォーラムのトピック ( http://www.pgoledb.com/forum/viewtopic.php?f=4&t=49 )を開き、モデレーター/サポート/開発者と有益なディスカッションを行いました。

また、Postgres ではクロス db クエリを実行できないため、次の方法で問題を解決しました。

  • 本番 DB から一時アーカイブ DB テーブルへのデータ ソース
  • 一時テーブルとアーカイブ テーブルの間でセット ベースのクエリを実行する
  • 一時テーブルを切り捨てる

一時テーブルは完全に一時テーブルではなく、データを一時的に格納するためのアーカイブ テーブル スキーマのコピーであることに注意してください。

時間はかかりましたが、やっとたどり着きました。

この単純なタスクには、いずれにしても多少の作業が必要です。SSIS は決してエンタープライズ クラスの ETL 製品ではありませんが、迅速で簡単な機能を提供し、ほとんどの ETL 作業には十分です。それはあなたの快適さのレベルにも関係していると思います。

どのエンタープライズ ETL ソリューションを提案しますか?

于 2009-10-15T09:06:36.620 に答える