Itu adalah pertanyaan yang bagus. Saat ini, Citus tidak menyediakan cara langsung untuk mengubah tipe partisi dari data yang ada.
Dalam partisi rentang, catatan ditempatkan di pecahan sesuai dengan nilai kolom partisi dan nilai min/maks pecahan. Jika record x berada di shard y, maka itu berarti y.minvalue <= x.partition_column <= y.maxvalue
.
Dalam partisi hash, kolom partisi di-hash dan record dirutekan menurut nilai hash ini. Oleh karena itu, nilai min/maks yang Anda lihat di pg_dist_shard
adalah nilai batas untuk hasil fungsi hash. Dalam hal ini y.minvalue <= hash(x.partition_column) <= y.maxvalue
.
Oleh karena itu, melakukan perubahan yang Anda sebutkan akan berakhir dengan distribusi yang salah. Untuk beralih dari partisi rentang ke partisi hash, data harus didistribusikan kembali. Untuk melakukan itu, saya sarankan memuat ulang data ke tabel partisi hash yang kosong.
Untuk informasi selengkapnya, Anda dapat merujuk ke Bekerja dengan Tabel Terdistribusi dan Distribusi Hash bagian dari Dokumentasi Citus.