ラウンドロビン方式でデータをADLテーブルに挿入しています。別のジョブでは、テーブルから3つの異なるパーティションのデータを抽出し、パーティションの不均一な頂点数を観察しました。たとえば、1つのパーティションでは264 GBのデータ用に56の頂点を作成し、別のパーティションでは209 GBのデータ用に2つの頂点を作成します。いくつかの頂点を持つパーティションでは、完了までに膨大な時間がかかりました。添付の画像では、なぜSV5とSV3の頂点が2つしかないのか分かりません。これを最適化し、これらのパーティションの頂点の数を増やす方法はありますか?ここでADLテーブルからの読み出し時のデータ抽出の最適化
CREATE TABLE IF NOT EXISTS dbo.<tablename>
(
abc string,
def string,
<Other columns>
xyz int,
INDEX clx_abc_def CLUSTERED(abc, def ASC)
)
PARTITIONED BY (xyz)
DISTRIBUTED BY ROUND ROBIN;
アップデート:ここで
は、データを挿入するためのスクリプトです:私は複数をやっている
INSERT INTO dbo.<tablename>
(
abc,
def,
<Other columns>
xyz
)
ON INTEGRITY VIOLATION IGNORE
SELECT *
FROM @logs;
(最大3)パーティションに挿入します。しかし、別の仕事では、データを選択したり、処理をしたり、パーティションを切り捨ててパーティションにデータを戻したりしています。ラウンドロビンのデフォルト配布方式がSV5とSV3の2つのディストリビューションしか作成していないのはなぜですか?私は、この量のデータに対してより多くのディストリビューションを用意したいと考えています。
画像が表示されていません。 –