Delen via


Tabeltypen binnen elastische clusters in Azure Database voor PostgreSQL

Er zijn vijf typen tabellen in een cluster, die elk verschillend zijn opgeslagen op knooppunten en voor verschillende doeleinden worden gebruikt.

Gedistribueerde tabellen

Het eerste type, en het meest voorkomende, is gedistribueerde tabellen. Ze lijken normale tabellen te zijn voor SQL-instructies, maar ze zijn horizontaal gepartitioneerd over werkknooppunten. Dit betekent dat de rijen van de tabellen worden opgeslagen op verschillende knooppunten, in fragmenttabellen met de naam shards.

Elastische clusters voeren niet alleen SQL-instructies uit, maar ook DDL-instructies (Data Definition Language) door heel de cluster. Het schema van een gedistribueerde tabel trapsgewijs wijzigen om alle shards van de tabel over werkrollen bij te werken. Dergelijke bewerkingen moeten worden uitgevoerd 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 is geconcentreerd in één shard. De shard wordt op elke werkrol gerepliceerd. Query's op elke werkrol hebben lokaal toegang tot de referentiegegevens, zonder de netwerkoverhead van het aanvragen van rijen vanaf een ander knooppunt. Verwijzingstabellen hebben geen distributiekolom omdat er geen onderscheid hoeft te worden gemaakt tussen afzonderlijke shards per rij.

Referentietabellen zijn doorgaans klein en worden gebruikt voor het opslaan van gegevens 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. Bovendien kunnen lokaal beheerde tabellen handmatig worden gemaakt door 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 citus_tables de weergave.

Schematabellen

Met sharding op basis van schema's worden gedistribueerde schema's automatisch gekoppeld aan afzonderlijke colocatiegroepen. Tabellen die in deze schema's worden gemaakt, worden automatisch geconverteerd naar gedistribueerde tabellen met een puntkomma zonder een shardsleutel. Dergelijke tabellen worden beschouwd als schematabellen en worden weergegeven als schema in citus_tables de weergave.