API SQL distribuita di Azure Cosmos DB per PostgreSQL
SI APPLICA A: Azure Cosmos DB for PostgreSQL (con tecnologia basata su estensione di database Citus per PostgreSQL)
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.