2016-11-08 8 views
0

私は、次の手順を使用してファクトテーブルをパーティション化している:データのロードIDに基づいて2つのファイルグループを作成しSQLパーティションテーブル - パーティションテーブルに分割する必要のないデータを挿入するにはどうすればよいですか?

  1. は(バックアップとして機能)ファクトテーブルの名前を変更し
  2. (私は1000行を処理していますロードID 1のロードID 1および1000行)
  3. 作成済み2つのロード内の値の左の範囲をカバーするパーティション機能。
  4. これらの2つのファイルグループと[プライマリ]ファイルグループを含む対応するスキームを作成しました。
  5. パーティションを持つ新しいファクトテーブルを作成し、後ろにデータを挿入する。

これは、すべてが正常に動作します。 問題は、範囲によってカバーできない他のデータがあることです。これを新しいテーブルに挿入する必要があります。 (このデータを分割する必要はありません)

他のデータの新しいテーブルに挿入するだけでいいですか?私がこれを行った場合、そのデータはどこに行くのですか?つまり、どのファイルグループですか?

また、この他のデータをパーティションのファイルグループに入れないようにパーティション機能/スキームに伝える必要がありますか?

ご協力いただければ幸いです。 多くのありがとう:)

+1

このdbmsについてお尋ねしますか? MySQLまたはSQL Server? –

+0

MySQLでは、100万行を使用しない場合は、なぜパーティション化が必要ですか? –

答えて

0

パーティションを両端にラップし、パーティション機能が左と右の範囲外にデータをダンプするためのバッファを用意する必要があります。SQL Serverのパーティションスキームを使用してファイルをパーティション関数に割り当てることができます。

File 1 - BUFFER PARTITION A 
File 2 - BUFFER PARTITION AA 
File 3 - PARTITION LEFT 
File 4 - PARTITION RIGHT 
File 5 - BUFFER PARTITION Z 
File 6 - BUFFER PARTITION ZZ 

BUFFER PARTITION AABUFFER PARTITION Zは、オーバーフローを処理することができます。

次に、ファイルを交換するか、挿入して並べ替えるなどの便利な作業を行うことができます。

+0

こんにちはロス、お返事ありがとうございます、私はこれにどのようにアプローチするかの例を教えてください。これはスキームと機能の両方で定義されるものでしょうか?多くのありがとう – TheDataGuy2016

+0

ファイルのパーティション機能をマッピングするためにパーティションスキームを作成します。ただし、両端に余分なファイルをファンアウトとして作成しますが、これはSQL Serverの標準であり、MySQLには他のパーティション化技術があります。 –

+0

ありがとう、私はこのアプローチを使用し、それは働いた – TheDataGuy2016

0

テーブルがパーティション化されている場合は、スキーマに基づいている1つ以上のパーティションに移動されます。挿入するだけで、サーバは自動的に適切なパーティションに配置します。

0

パーティションテーブルとは、パーティション関数を使用して各行をどこに配置するかを決定することを意味します。テーブル内のデータがパーティション化されていて、パーティション化されていないということはありません。たぶん、2番目のテーブルが必要です。または、パーティション化すべきでない行をすべて自分自身のパーティションに配置し、計算された列にパーティション関数を作成する計算列を作成してみてください。パーティション関数に計算カラムを使用する場合は、永続化として定義されていることを確認してください。

関連する問題