Tabeltypen op elastische clusters in Azure Database for PostgreSQL Flexible Server

Een cluster heeft vijf typen tabellen. Elk type slaat gegevens verschillend op knooppunten op en dient voor verschillende doeleinden.

Gedistribueerde tabellen

Het eerste type, en het meest voorkomende, is gedistribueerde tabellen. Ze lijken op normale tabellen in SQL-instructies, maar ze worden horizontaal gepartitioneerd tussen werkknooppunten. Deze partitionering betekent dat de rijen van de tabellen worden opgeslagen op verschillende knooppunten in fragmenttabellen die shards worden genoemd.

Elastische clusters voeren niet alleen SQL- maar ook DDL-instructies (Data Definition Language) uit in een cluster. Wanneer u het schema van een gedistribueerde tabel wijzigt, wordt de wijziging trapsgewijs bijgewerkt om alle shards van de tabel tussen werkrollen bij te werken. U moet dergelijke bewerkingen uitvoeren via een verbinding via poort 5432.

Gedistribueerde kolom

Elastische clusters maken gebruik van algoritmes-sharding om rijen toe te wijzen aan shards. De toewijzing wordt deterministisch gemaakt op basis van de waarde van een tabelkolom die de distributiekolom wordt genoemd. De clusterbeheerder moet deze kolom aanwijzen bij het distribueren van een tabel. Het maken van de juiste keuze is belangrijk voor prestaties en functionaliteit.

Referentietabellen

Een verwijzingstabel is een type gedistribueerde tabel waarvan de volledige inhoud zich in één shard bevindt. Het cluster repliceert de shard naar elke workernode. Query's op elke werkrol hebben lokaal toegang tot de referentiegegevens, zonder de netwerkoverhead van het aanvragen van rijen vanaf een ander knooppunt. Referentietabellen hebben geen distributiekolom omdat er geen onderscheid hoeft te worden gemaakt tussen afzonderlijke shards per rij.

Referentietabellen zijn doorgaans klein en slaan gegevens op die relevant zijn voor query's die worden uitgevoerd op een werkknooppunt. Een voorbeeld hiervan zijn opgesomde waarden, zoals orderstatussen of productcategorieën.

Lokale tabellen

Wanneer u een elastisch cluster gebruikt, is elk knooppunt een gewone PostgreSQL-database. U kunt er gewone tabellen op maken en ervoor kiezen om ze niet te sharden.

Een goede kandidaat voor lokale tabellen is kleine beheertabellen die niet deelnemen aan joinquery's. Een voorbeeld hiervan is een users tabel voor aanmelding en verificatie van toepassingen. Dit type van tabel is alleen nuttig wanneer u niet van plan bent om uw verbinding onder een flexibel cluster te balanceren met behulp van poort 7432 of 8432.

Lokale beheerde tabellen

Elastische clusters kunnen automatisch lokale tabellen toevoegen aan metagegevens als er een verwijzing naar een refererende sleutel bestaat tussen een lokale tabel en een referentietabel. Daarnaast kunt u handmatig lokaal beheerde tabellen maken door de citus_add_local_table_to_metadata functie uit te voeren op gewone lokale tabellen. Tabellen die aanwezig zijn in metagegevens worden beschouwd als beheerde tabellen en kunnen vanuit elk knooppunt worden opgevraagd. Citus weet naar het knooppunt te routeren om gegevens op te halen uit de lokale beheerde tabel. Dergelijke tabellen worden weergegeven als lokaal in de citus_tables weergave.

Schematabellen

Wanneer u sharding op basis van schema's gebruikt, koppelt het systeem automatisch gedistribueerde schema's aan afzonderlijke colocatiegroepen. Wanneer u tabellen in die schema's maakt, zet het systeem deze automatisch om in gecolokaliseerde gedistribueerde tabellen zonder shard-sleutel. Deze tabellen zijn schematabellen en worden weergegeven als schema in de citus_tables weergave.