それは良い質問です。現在、Citusは既存のデータのパーティションタイプを変更する直接的な方法を提供していません。
範囲パーティショニングでは、レコードは、パーティション列の値とシャードの最小/最大値に従ってシャードに配置されます。レコードxがシャードyにある場合、それはy.minvalue <= x.partition_column <= y.maxvalue
を意味します。 。
ハッシュパーティショニングでは、パーティション列がハッシュされ、このハッシュ値に従ってレコードがルーティングされます。したがって、pg_dist_shard
に表示される最小/最大値 ハッシュ関数の結果の境界値です。この場合、y.minvalue <= hash(x.partition_column) <= y.maxvalue
。
したがって、あなたが言及した変更を行うと、誤った配布になってしまいます。範囲パーティションからハッシュパーティションに切り替えるには、データを再配布する必要があります。そのためには、データを空のハッシュパーティションテーブルに再読み込みすることをお勧めします。
詳細については、分散テーブルの操作> および