PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy mogę zmienić sposób dystrybucji na istniejącym stole Citus?

To jest dobre pytanie. Obecnie Citus nie zapewnia bezpośredniego sposobu zmiany typu partycji istniejących danych.

W partycjonowaniu zakresu rekordy są umieszczane we fragmentach zgodnie z ich wartością kolumny partycji i wartościami min/max fragmentu. Jeśli rekord x znajduje się we fragmencie y, oznacza to y.minvalue <= x.partition_column <= y.maxvalue .

W partycjonowaniu mieszającym kolumna partycji jest zaszyfrowana, a rekordy są kierowane zgodnie z tą zaszyfrowaną wartością. Dlatego wartości min/maks, które widzisz w pg_dist_shard są wartościami granicznymi wyniku funkcji skrótu. W tym przypadku y.minvalue <= hash(x.partition_column) <= y.maxvalue .

W związku z tym wprowadzenie zmian, o których wspomniałeś, zakończyłoby się niepoprawną dystrybucją. Aby przełączyć się z partycji zakresu na partycję mieszającą, dane powinny zostać ponownie rozprowadzone. Aby to zrobić, sugeruję przeładowanie danych do pustej tabeli podzielonej na partycje haszowe.

Więcej informacji znajdziesz w Praca z tabelami rozproszonymi i Dystrybucja haszu sekcje dokumentacji Citus.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Blokowanie predykatów w PostgreSQL 9.2.1 z izolacją Serializable

  2. Jak uzyskać zapytanie date_part, aby trafić na indeks?

  3. Łączenie się z lokalną instancją PostgreSql za pomocą JDBC

  4. Nie znaleziono relacji dbo.MyTable, gdy istnieje schemat i tabela

  5. Błąd wartości podczas importowania danych do tabeli postgres za pomocą psycopg2