sql >> Databasteknik >  >> RDS >> PostgreSQL

Kan jag ändra distributionsmetoden på en befintlig Citus-tabell?

Det är en bra fråga. För närvarande erbjuder Citus inte ett direkt sätt att ändra partitionstyp för befintliga data.

Vid intervallpartitionering placeras poster i shards enligt deras partitionskolumnvärde och shard min/max-värden. Om en post x finns i skärva y betyder det y.minvalue <= x.partition_column <= y.maxvalue .

I hashpartitionering hashas partitionskolumnen och poster dirigeras enligt detta hashade värde. Därför ser du min/max-värden i pg_dist_shard är gränsvärdena för resultatet av hashfunktionen. I det här fallet y.minvalue <= hash(x.partition_column) <= y.maxvalue .

Att göra de ändringar du har nämnt skulle därför sluta med en felaktig fördelning. För att växla från intervallpartition till hashpartition bör data omdistribueras. För att göra det föreslår jag att du laddar om data till en tom hash-partitionerad tabell.

För mer information kan du se Arbeta med distribuerade tabeller och Hashdistribution avsnitt av Citus Documentation.




  1. Anslut till ONLINE MySQL-databas med DSN ODBC

  2. Kan inte använda kolumnnamn i urvalsfrågan på sqlfiddle (oracle)

  3. hur man använder kontrollbegränsning i Oracle

  4. HUR gör man en join i MySQL där nyckeln är en delsträng av key2?