MySQL'ten bir Citus kümesine geçiş sırasında, range
dağıtım yöntemini kullandım. Taşıma işlemi tamamlandı, ancak şimdi dağıtım yöntemini hash
olarak değiştirmek istiyorum.Varolan bir Citus tablosundaki dağıtım yöntemini değiştirebilir miyim?
Zaten mevcut bir tablo için range
- hash
arasındaki dağıtım yöntemini değiştirmenin bir yolu var mı?
aşağıdaki yordam ile geldi, ama geçerli olduğundan emin değilim:
- Güncelleme tüm kırıkların için
pg_dist_shard
tablonunminvalue
vemaxvalue
sütun - Güncelle kırığından depolama türü sütununu değiştirilen
h
COMMIT;
r
den
pg_dist_partition
tablonun
ben aynı MINVALUE olması shard tabloları güncellemek eğer planlayıcısı her kırığa yol sorgusu olacak böylece 'karma (x.partition_column)' her bir kırığı vuracak çünkü/maxvalue her şey iyi çalışır teyit edebilir. –
Yeniden yükleme verileri geçerli değil. Birkaç gün sürecek ... Situs meta verilerinin planlayıcı tarafından nasıl kullanıldığı hakkında bir DOC görmekten mutluluk duyacağım. –
En düşük değerin INT_MIN değerine ayarlanması ve her bir piste maksimum INT_MAX değerinin olması güzel bir bahis olur. SELECT sorgularında çalışır, ancak daha yavaş olurdu, çünkü sert budama yapılmayacaktır. Ancak, değişiklik sorguları (INSERT, UPDATE, DELETE), her sorguda bir isabetli isabet aldıklarından işe yaramaz. Sadece Citus'un çalışması için bu çözümün pozitif olacağını, ancak performans karşılaştırmaları ya da üretimi için kesinlikle sıfırdan veri yüklemeyi öneririm. –