Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Esistono cinque tipi di tabelle in un cluster, ognuna archiviata in modo diverso nei nodi e usata per scopi diversi.
Tabelle con distribuzione
Tabelle distribuite è il primo tipo, e anche il più frequente. Sembrano essere tabelle normali per istruzioni SQL, ma sono partizionate orizzontalmente tra i nodi di lavoro. Ciò significa che le righe delle tabelle vengono archiviate in nodi diversi, in tabelle di frammenti denominate partizioni.
I cluster elastici eseguono non solo istruzioni SQL, ma DDL (Data Definition Language) in un cluster. Modifica dello schema di una tabella distribuita a cascata per aggiornare tutte le partizioni della tabella tra i ruoli di lavoro. Tali operazioni devono essere eseguite tramite una connessione sulla porta 5432.
Colonna distribuita
I cluster elastici usano il partizionamento orizzontale algoritmico per assegnare righe alle partizioni. L'assegnazione viene eseguita in modo deterministico in base al valore di una colonna di tabella denominata colonna di distribuzione. L'amministratore del cluster deve designare questa colonna durante la distribuzione di una tabella. Fare la scelta giusta è importante ai fini delle prestazioni e della funzionalità.
Tabelle di riferimento
Una tabella di riferimento è un tipo di tabella distribuita il cui intero contenuto viene concentrato in una singola partizione. La partizione viene replicata in ogni ruolo di lavoro. Le query su qualsiasi ruolo di lavoro possono accedere alle informazioni di riferimento in locale, senza il sovraccarico di rete della richiesta di righe da un altro nodo. Le tabelle di riferimento non hanno una colonna di distribuzione perché non è necessario distinguere le partizioni separate per riga.
In genere le tabelle di riferimento sono di piccole dimensioni e vengono usate per archiviare i dati rilevanti per le query in esecuzione nei nodi di lavoro. Un esempio è costituito da valori enumerati, ad esempio gli stati degli ordini o le categorie di prodotti.
Tabelle locali
Quando si usa un cluster elastico, ogni nodo è un normale database PostgreSQL. È possibile creare tabelle comuni su di esse e scegliere di non partizionarle.
Le tabelle amministrative di piccole dimensioni che non partecipano alle query di join rappresentano la scelta migliore per le tabelle locali. Un esempio è una tabella users per l'accesso e l'autenticazione dell'applicazione. Questo tipo di tabella è utile solo quando non si prevede di bilanciare il carico della connessione tra un cluster elastico usando la porta 7432 o 8432.
Tabelle gestite locali
I cluster elastici possono aggiungere automaticamente tabelle locali ai metadati se esiste un riferimento di chiave esterna tra una tabella locale e una tabella di riferimento. Inoltre, le tabelle gestite localmente possono essere create manualmente eseguendo citus_add_local_table_to_metadata funzione nelle normali tabelle locali. Le tabelle presenti nei metadati sono considerate tabelle gestite e possono essere sottoposte a query da qualsiasi nodo. Citus sa indirizzare al nodo per ottenere dati dalla tabella gestita locale. Tali tabelle vengono visualizzate come locali nella visualizzazione citus_tables.
Tabelle dello schema
Con il partizionamento orizzontale basato su schema, gli schemi distribuiti vengono associati automaticamente ai singoli gruppi di condivisione. Le tabelle create in tali schemi vengono convertite automaticamente in tabelle distribuite coubicate senza una chiave di partizione. Tali tabelle sono considerate tabelle dello schema e vengono visualizzate come schema nella vista citus_tables.