2017-08-15 15 views
2

私はC#で書いた解決策を使用して、SQL ServerからMongoDBに大量のデータを転送したい(約8000万レコード)。 一度に200,000レコードを転送したいのですが、私の問題は既に転送されているものを追跡しています。次のように通常、私はそれを行うだろう:大きなデータを新しいデータベースに移行する

Gather IDs from destination to exclude from source scope 
Read from source (Excluding IDs already in destination) 
Write to destination 
Repeat 

問題は、私はソース選択、例えばからそれらを排除するために、先に存在するすべてのIDを含むC#で文字列を構築することです。

select * from source_table where id not in (<My large list of IDs>) 

今、あなたは、私はすでに600件の000+レコードを挿入し、すべてのIDを持つ文字列を作成したときに、ここで何が起こるか想像することができ、それが大きくなり、さらに物事を遅くするので、私は探していますカーソルのように一度に200 000個のレコードを繰り返し処理する方法ですが、私はこのようなことは一度もしていないので、ここに来てアドバイスを探しています。

ただ、参考として、私は一度にすべてのデータを選択する、またはフィルタリングすることなく、大量のデータを反復処理する方法を知りたい、だから、基本的に

SqlConnection conn = new SqlConnection(myConnStr); 
    conn.Open(); 
    SqlCommand cmd = new SqlCommand("select * from mytable where id not in ("+bigListOfIDs+")", conn); 
    SqlDataReader reader = cmd.ExecuteReader(); 
    if (reader.HasRows) 
    { 
     while (reader.Read()) 
     { 
      //Populate objects for insertion into MongoDB 
     } 
    } 

を次のように私は読みくださいデータは大きな文字列を使用します。どんな助けもありがとう。

答えて

0

これを行うにはさまざまな方法がありますが、私は最初にホイールを再構成しようとしないで、既存のプログラムを見てみることをお勧めします。 さまざまなデータベース間でデータをエクスポートおよびインポートするためのプログラムが多数ありますが、非常に柔軟で高価なものもあれば、無料のオプションが付いているものもあれば、ほとんどのDBMSプログラムには何かが含まれています。

オプション1:

使用SQL Server Management Studioを(SSMS)のエクスポートウィザード。

これにより、さまざまなソースにエクスポートすることができます。必要に応じて複雑なクエリを記述することもできます。ここでの詳細情報:

https://www.mssqltips.com/sqlservertutorial/202/simple-way-to-export-data-from-sql-server/

オプション2:

エクスポートデータIDの昇順インチ 最後にエクスポートされたIDをテーブルに格納します。

エクスポートID> lastExportedID

オプション3は、データの次のセット:

バックアップ・テーブルにデータのコピーを作成します。 このテーブルからエクスポートし、エクスポートするときにレコードを削除します。

+0

カーソルのような方法や非同期の方法を使ってN個のレコードを一度に繰り返し処理する方法があることを期待していましたが、多くのグーグルが手を出した後、空の手で出てきました。最後に使用したIDを別のテーブルに格納する方法を解決する必要があります。ご協力いただきありがとうございます。 – Anomaly

1

コメントするにはより多くの担当者が必要ですが、あなたは、ソートあなたのid列で、あなたのwhere句は、あなたがのために頼ん200000の範囲を与え、あなただけ保存する必要があります

select * from source_table where *lastusedid* < id and id <= *lastusedid+200000* 

になるために変更することができれば単一の整数

関連する問題