mysqlサーバーに接続し、さまざまなテーブルからデータをプルしてSQLServer2005データベースに行を挿入しようとするSSISパッケージがあります。
私が気付いた問題の1つは、実行中のどのステップに関係なく、ほとんどの場合、mysqlからsqlサーバーに合計レコードを取り込むことができないことです。
エラーはスローされません。
ある朝はすべての11Mレコードがあり、次の実行では3Kから17Kのレコードがあります。
誰かがこのようなことに気づきましたか?
mysqlサーバーに接続し、さまざまなテーブルからデータをプルしてSQLServer2005データベースに行を挿入しようとするSSISパッケージがあります。
私が気付いた問題の1つは、実行中のどのステップに関係なく、ほとんどの場合、mysqlからsqlサーバーに合計レコードを取り込むことができないことです。
エラーはスローされません。
ある朝はすべての11Mレコードがあり、次の実行では3Kから17Kのレコードがあります。
誰かがこのようなことに気づきましたか?
2 つの別々の MySQL データベースからデータをインポートします。1 つはインターネット経由、もう 1 つは社内です。私はこの種の問題を経験したことがありません。MySQL データベースへの接続をどのようにセットアップしたか説明できますか? MySQL Web サイトで入手できる ODBC ドライバーを使用し、ODBC 接続を参照するデータ フローで ADO.NET データ ソースを使用して接続しました。
少なくとも不完全なデータをロードしないようにする方法の 1 つは、新しいレコードのみをロードすることです。ソース テーブルに ID があり、挿入されたレコードが変更されない場合は、最初にデータベースをチェックして、最大 ID を入力できます。
不完全なデータのロードを防ぐもう 1 つの方法は、MySQL データベースを宛先サーバーのステージング テーブルにロードし、まだロードしていないレコードのみをロードすることです。
さらに別の方法として、データをステージング テーブルにロードし、レコードがターゲット テーブルの行数や 1 日あたりの予想される最小トランザクション数などの最小しきい値を超えていることを確認し、その後に変更をコミットするだけです。検証。行が不十分な場合は、パッケージでエラーを発生させ、通知メールを送信します。エラーを発生させる利点は、SQL Server エージェント ジョブを設定して、定義された試行回数だけステップを再試行し、これによって問題が解決するかどうかを確認できることです。
問題の根本原因に直接対処しない場合でも、これらのヒントが役立つことを願っています。
MySQL - > SSIS経由でSQL Serverを1回だけ試しましたが、MySQLの日時がSQL Serverの日時に変換されないことに関連するエラーが見つかりました。これによりデータフロー全体が壊れると思っていたでしょうが、構成によっては、純粋に不良行を無視するように設定できたでしょうか?