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.
Importante
Azure Cosmos DB per PostgreSQL non è più supportato per i nuovi progetti. Non usare questo servizio per i nuovi progetti. Usare invece uno dei due servizi seguenti:
Usare Azure Cosmos DB per NoSQL per una soluzione di database distribuita progettata per scenari su larga scala con un contratto di servizio di disponibilità 99.999% contratto di servizio di disponibilità, scalabilità automatica immediata e failover automatico in più aree.
Usare la funzionalità Cluster elastici di Database di Azure per PostgreSQL per PostgreSQL partizionato usando l'estensione Citus open source.
Azure Cosmos DB for PostgreSQL include funzionalità oltre quelle standard di PostgreSQL. Di seguito è riportato un riferimento categorizzato di funzioni e opzioni di configurazione per:
- Parallelizzazione dell'esecuzione di query tra partizioni
- Gestione dei dati partizionati tra più server
- Compressione dei dati con archiviazione a colonne
- Automazione del partizionamento delle serie temporali
Funzioni SQL
Partizionamento orizzontale
| Nome | Descrizione |
|---|---|
| alter_distributed_table | Modificare la colonna di distribuzione, il numero di partizioni o le proprietà di condivisione di una tabella distribuita |
| citus_copy_shard_placement | Ripristinare un posizionamento di partizioni inattive usando i dati di un posizionamento integro |
| citus_schema_distribute | Trasformare uno schema PostgreSQL in uno schema distribuito |
| citus_schema_undistribute | Annullare l'azione di citus_schema_distribute |
| create_distributed_table | Trasformare una tabella PostgreSQL in una tabella distribuita (partizionata) |
| create_reference_table | Mantenere copie complete di una tabella sincronizzata tra tutti i nodi |
| citus_add_local_table_to_metadata | Aggiungere una tabella locale ai metadati per abilitare l'esecuzione di query da qualsiasi nodo |
| isolate_tenant_to_new_shard | Creare una nuova partizione per contenere righe con un singolo valore specifico nella colonna di distribuzione |
| truncate_local_data_after_distributing_table | Tronca tutte le righe locali dopo la distribuzione di una tabella |
| undistribute_table | Annullare l'azione di create_distributed_table o create_reference_table |
Ribilanciamento delle partizioni
| Nome | Descrizione |
|---|---|
| citus_add_rebalance_strategy | Accodare una riga a pg_dist_rebalance_strategy |
| citus_move_shard_placement | In genere usato indirettamente durante il ribilanciamento della partizione anziché essere chiamato direttamente da un amministratore di database |
| citus_set_default_rebalance_strategy | Modificare la strategia denominata dal relativo argomento in modo che sia l'impostazione predefinita scelta quando si ribilanciano le partizioni |
| get_rebalance_progress | Monitorare gli spostamenti pianificati ed eseguiti da rebalance_table_shards |
| get_rebalance_table_shards_plan | Output dei movimenti di partizioni pianificati di rebalance_table_shards senza eseguirli |
| rebalance_table_shards | Spostare le partizioni della tabella specificata per distribuirle uniformemente tra i ruoli di lavoro |
Inserimento in un percorso condiviso
| Nome | Descrizione |
|---|---|
| create_distributed_function | Rendere la funzione eseguita sui ruoli di lavoro vicino alle partizioni con percorso condiviso |
| update_distributed_table_colocation | Aggiornare o interrompere la corilevazione di una tabella distribuita |
Archiviazione a colonne
| Nome | Descrizione |
|---|---|
| alter_columnar_table_set | Modificare le impostazioni in una tabella a colonne |
| alter_table_set_access_method | Convertire una tabella tra l'archiviazione heap o l'archiviazione a colonne |
Partizionamento timeeries
| Nome | Descrizione |
|---|---|
| alter_old_partitions_set_access_method | Modificare il metodo di archiviazione delle partizioni |
| create_time_partitions | Creare partizioni di un determinato intervallo per coprire un determinato intervallo di tempo |
| drop_old_time_partitions | Rimuovere tutte le partizioni i cui intervalli rientrano prima di un timestamp specificato |
Informativo
| Nome | Descrizione |
|---|---|
| citus_get_active_worker_nodes | Ottenere nomi host di lavoro attivi e numeri di porta |
| citus_relation_size | Ottenere lo spazio su disco usato da tutte le partizioni della tabella distribuita specificata |
| citus_remote_connection_stats | Mostra il numero di connessioni attive a ogni nodo remoto |
| citus_stat_statements_reset | Rimuovere tutte le righe da citus_stat_statements |
| citus_table_size | Ottenere lo spazio su disco usato da tutte le partizioni della tabella distribuita specificata, esclusi gli indici |
| citus_total_relation_size | Ottenere lo spazio totale su disco usato da tutte le partizioni della tabella distribuita specificata, inclusi tutti gli indici e i dati TOAST |
| column_to_column_name | Tradurre la partkey colonna di in un nome di pg_dist_partition colonna testuale |
| get_shard_id_for_distribution_column | Trovare l'ID partizione associato a un valore della colonna di distribuzione |
Parametri del server
Esecuzione della query
| Nome | Descrizione |
|---|---|
| citus.all_modifications_commutative | Consenti a tutti i comandi di richiedere un blocco condiviso |
| citus.count_distinct_error_rate | Ottimizzare la frequenza di errore del conteggio approssimativo di postgresql-hll |
| citus.enable_repartition_joins | Consenti JOIN eseguite su colonne non di distribuzione |
| citus.enable_repartitioned_insert_select | Consentire il ripartizionamento delle righe dall'istruzione SELECT e trasferirle tra i ruoli di lavoro per l'inserimento |
| citus.limit_clause_row_fetch_count | Numero di righe da recuperare per ogni attività per l'ottimizzazione della clausola limit |
| citus.local_table_join_policy | Posizione in cui i dati vengono spostati durante l'esecuzione di un join tra tabelle locali e distribuite |
| citus.multi_shard_commit_protocol | Protocollo di commit da usare per l'esecuzione di COPY in una tabella con distribuzione hash |
| citus.propagate_set_commands | Quali comandi SET vengono propagati dal coordinatore ai lavoratori |
| citus.create_object_propagation | Comportamento delle istruzioni CREATE nelle transazioni per gli oggetti supportati |
| citus.use_citus_managed_tables | Consentire l'accesso alle tabelle locali nelle query del nodo di lavoro |
Informativo
| Nome | Descrizione |
|---|---|
| citus.explain_all_tasks | Impostare l'output EXPLAIN per visualizzare tutte le attività |
| citus.explain_analyze_sort_method | Metodo di ordinamento delle attività nell'output di EXPLAIN ANALYZE |
| citus.log_remote_commands | Query di log inviate dal coordinatore ai nodi di lavoro |
| citus.multi_task_query_log_level | Livello di log per qualsiasi query che genera più attività |
| citus.stat_statements_max | Numero massimo di righe da archiviare in citus_stat_statements |
| citus.stat_statements_purge_interval | Frequenza con cui il daemon di manutenzione rimuove i record da citus_stat_statements che non corrispondono pg_stat_statements |
| citus.stat_statements_track | Abilitare/disabilitare il rilevamento delle istruzioni |
| citus.show_shards_for_app_name_prefixes | Consente di visualizzare le partizioni per i client selezionati che vogliono visualizzarli |
| citus.override_table_visibility | Abilitare/disabilitare l'nascondere la partizione |
Gestione delle connessioni tra nodi
| Nome | Descrizione |
|---|---|
| citus.executor_slow_start_interval | Tempo di attesa in millisecondi tra l'apertura delle connessioni allo stesso nodo di lavoro |
| citus.force_max_query_parallelization | Aprire il maggior numero possibile di connessioni |
| citus.max_adaptive_executor_pool_size | Numero massimo di connessioni di lavoro per sessione |
| citus.max_cached_conns_per_worker | Numero di connessioni mantenute aperte per velocizzare i comandi successivi |
| citus.node_connection_timeout | Durata massima (in millisecondi) di attesa per la creazione della connessione |
Trasferimento dei dati
| Nome | Descrizione |
|---|---|
| citus.enable_binary_protocol | Usare il formato di serializzazione binaria di PostgreSQL (se applicabile) per trasferire i dati con i ruoli di lavoro |
| citus.max_intermediate_result_size | Dimensioni in KB dei risultati intermedi per le unità di analisi e le sottoquery che non possono essere spostate verso il basso |
Deadlock
| Nome | Descrizione |
|---|---|
| citus.distributed_deadlock_detection_factor | Tempo di attesa prima di verificare la presenza di deadlock distribuiti |
| citus.log_distributed_deadlock_detection | Indica se registrare l'elaborazione correlata al rilevamento dei deadlock distribuiti nel log del server |
Tabelle di sistema
Il nodo coordinatore contiene tabelle e viste di metadati che consentono di visualizzare le proprietà dei dati e l'attività di query nel cluster.
| Nome | Descrizione |
|---|---|
| citus_dist_stat_activity | Query distribuite in esecuzione in tutti i nodi |
| citus_lock_waits | Query bloccate in tutto il cluster |
| citus_shards | La posizione di ogni partizione, il tipo di tabella a cui appartiene e le relative dimensioni |
| citus_stat_statements | Statistiche su come vengono eseguite le query e per chi |
| citus_tables | Riepilogo di tutte le tabelle distribuite e di riferimento |
| citus_worker_stat_activity | Query sui ruoli di lavoro, incluse le attività su singole partizioni |
| pg_dist_colocation | Quali partizioni delle tabelle devono essere posizionate insieme |
| pg_dist_node | Informazioni sui nodi di lavoro nel cluster |
| pg_dist_object | Oggetti quali tipi e funzioni creati nel nodo coordinatore e propagati ai nodi di lavoro |
| pg_dist_placement | Posizione delle repliche di partizioni nei nodi del ruolo di lavoro |
| pg_dist_rebalance_strategy | Strategie che rebalance_table_shards possono essere usate per determinare dove spostare le partizioni |
| pg_dist_shard | Tabella, colonna di distribuzione e intervalli di valori per ogni partizione |
| time_partitions | Informazioni su ogni partizione gestita da funzioni come create_time_partitions e drop_old_time_partitions |
Passaggi successivi
- Informazioni su alcune query di diagnostica utili
- Esaminare l'elenco dei parametri di configurazione nel database PostgreSQL sottostante.