sql >> Databáze >  >> RDS >> PostgreSQL

Mohu změnit způsob distribuce na existující tabulce Citus?

To je dobrá otázka. V současné době Citus neposkytuje přímý způsob, jak změnit typ oddílu existujících dat.

Při dělení rozsahů jsou záznamy umístěny ve fragmentech podle jejich hodnoty sloupce oddílu a min/max hodnot fragmentu. Pokud se záznam x nachází ve fragmentu y, pak to znamená y.minvalue <= x.partition_column <= y.maxvalue .

Při rozdělování hash je sloupec oddílu hašován a záznamy jsou směrovány podle této hašované hodnoty. Proto minimální/maximální hodnoty, které vidíte v pg_dist_shard jsou hraniční hodnoty pro výsledek hashovací funkce. V tomto případě y.minvalue <= hash(x.partition_column) <= y.maxvalue .

Provedení změn, které jste zmínil, by proto skončilo nesprávnou distribucí. Aby bylo možné přepnout z oddílu rozsahu na oddíl hash, měla by být data znovu distribuována. Chcete-li to provést, doporučuji znovu načíst data do prázdné tabulky rozdělené na hash.

Další informace naleznete v části Práce s distribuovanými tabulkami a Distribuce hash sekce Dokumentace Citus.




  1. Pole MySQL CURRENT_TIMESTAMP se aktualizuje při každé aktualizaci

  2. vložte do databází znak Unicode

  3. Replikace GROUP_CONCAT pro pandas.DataFrame

  4. Jak mohu používat Tvůrce výrazů v Accessu 2016?