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 si trova in un percorso di ritiro e non è più consigliato per i nuovi progetti. Usare invece uno dei due servizi seguenti:
Per i carichi di lavoro PostgreSQL : usare la funzionalità Cluster elastici di Database di Azure per PostgreSQL per usare le funzionalità PostgreSQL orizzontali con scalabilità orizzontale e distribuite contenute nell'estensione Citus open source.
Per i carichi di lavoro NoSQL , usare Azure Cosmos DB per NoSQL per una soluzione di database distribuita che include un contratto di servizio di disponibilità 99.999%, la scalabilità automatica immediata e il failover automatico in più aree.
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.