Udostępnij za pomocą


Typy tabel w klastrach elastycznych w usłudze Azure Database for PostgreSQL

Istnieje pięć typów tabel w klastrze, z których każdy jest przechowywany inaczej w węzłach i używany do różnych celów.

Rozproszone tabele

Pierwszy typ i najbardziej typowy to tabele rozproszone. Wydają się być normalnymi tabelami instrukcji SQL, ale są one partycjonowane w poziomie między węzłami roboczymi. Oznacza to, że wiersze tabel są przechowywane w różnych węzłach w tabelach fragmentów nazywanych fragmentami.

Klastry elastyczne obsługują nie tylko instrukcje SQL, ale także w szczególności instrukcje DDL (Data Definition Language) w całym klastrze. Zmiana schematu kaskadowej tabeli rozproszonej w celu zaktualizowania wszystkich fragmentów tabeli między procesami roboczymi. Takie operacje należy wykonać za pośrednictwem połączenia przez port 5432.

Kolumna rozproszona

Klastry elastyczne używają algorytmicznego fragmentowania w celu przypisania wierszy do fragmentów. Przypisanie jest określane w sposób deterministyczny na podstawie wartości kolumny tabeli nazywanej kolumną dystrybucji. Administrator klastra musi wyznaczyć tę kolumnę podczas dystrybucji tabeli. Wybór właściwy jest ważny dla wydajności i funkcjonalności.

Tabele odwołań

Tabela referencyjna jest typem rozproszonej tabeli, której cała zawartość jest skoncentrowana na jednym fragmentie. Fragment jest replikowany dla każdego procesu roboczego. Zapytania dotyczące dowolnego procesu roboczego mogą uzyskiwać dostęp do informacji referencyjnych lokalnie bez konieczności żądania wierszy z innego węzła przez sieć. Tabele odwołań nie mają kolumny dystrybucji, ponieważ nie ma potrzeby rozróżniania oddzielnych fragmentów na wiersz.

Tabele odwołań są zwykle małe i są używane do przechowywania danych istotnych dla zapytań uruchomionych w dowolnym węźle roboczym. Przykładem są wyliczone wartości, takie jak stany zamówienia lub kategorie produktów.

Tabele lokalne

W przypadku korzystania z klastra elastycznego każdy węzeł jest zwykłą bazą danych PostgreSQL. Możesz tworzyć na nich zwykłe tabele i nie fragmentować ich.

Dobrym kandydatem do tabel lokalnych byłoby małe tabele administracyjne, które nie uczestniczą w zapytaniach sprzężenia. Przykładem jest users tabela logowania i uwierzytelniania aplikacji. Ten typ tabeli jest przydatny tylko wtedy, gdy nie planujesz równoważenia obciążenia połączenia między klastrem elastycznym przy użyciu portu 7432 lub 8432.

Lokalne tabele zarządzane

Klastry elastyczne mogą automatycznie dodawać tabele lokalne do metadanych, jeśli istnieje odwołanie klucza obcego między tabelą lokalną a tabelą referencyjną. Ponadto tabele zarządzane lokalnie można tworzyć ręcznie, wykonując funkcję citus_add_local_table_to_metadata w zwykłych tabelach lokalnych. Tabele obecne w metadanych są traktowane jako zarządzane tabele i mogą być odpytywane z dowolnego węzła. Citus wie, że będzie kierować do węzła w celu uzyskania danych z lokalnej tabeli zarządzanej. Takie tabele są wyświetlane jako lokalne w citus_tables widoku.

Tabele schematów

W przypadku fragmentowania opartego na schemacie rozproszone schematy są automatycznie skojarzone z poszczególnymi grupami kolokacji. Tabele utworzone w tych schematach są automatycznie konwertowane na kolokowane tabele rozproszone bez klucza fragmentu. Takie tabele są uznawane za tabele schematów i są wyświetlane jako schemat w citus_tables widoku.