API para SQL distribuída do Azure Cosmos DB for PostgreSQL
APLICA-SE AO: Azure Cosmos DB for PostgreSQL (da plataforma da extensão de dados Citus para PostgreSQL)
O Azure Cosmos DB for PostgreSQL inclui recursos além do PostgreSQL padrão. Veja abaixo uma referência categorizada das funções e opções de configuração para:
- Paralelizar a execução da consulta entre fragmentos
- Gerenciar dados fragmentados entre vários servidores
- Compactar dados com o armazenamento de coluna
- Automatizar o particionamento da série temporal
Funções do SQL
Fragmentação
Nome | Descrição |
---|---|
alter_distributed_table | Alterar a coluna de distribuição, a contagem de fragmentos ou as propriedades de colocação de uma tabela distribuída |
citus_copy_shard_placement | Reparar um posicionamento de fragmento inativo usando dados de um posicionamento íntegro |
citus_schema_distribute | Transforme um esquema PostgreSQL em um esquema distribuído |
citus_schema_undistribute | Desfaz a ação de citus_schema_distribute |
create_distributed_table | Transformar uma tabela PostgreSQL em uma tabela distribuída (fragmentada) |
create_reference_table | Manter cópias completas de uma tabela em sincronia em todos os nós |
citus_add_local_table_to_metadata | Adiciona uma tabela local aos metadados para habilitar a consulta a partir de qualquer nó |
isolate_tenant_to_new_shard | Criar um fragmento para armazenar linhas com um valor individual específico na coluna de distribuição |
truncate_local_data_after_distributing_table | Truncar todas as linhas locais depois de distribuir uma tabela |
undistribute_table | Desfazer a ação create_distributed_table ou create_reference_table |
Rebalanceamento de fragmento
Nome | Descrição |
---|---|
citus_add_rebalance_strategy | Acrescentar uma linha a pg_dist_rebalance_strategy |
citus_move_shard_placement | Normalmente usado indiretamente durante o rebalanceamento de fragmento, em vez de ser chamado diretamente por um administrador de banco de dados |
citus_set_default_rebalance_strategy | Alterar a estratégia nomeada pelo argumento para ser o padrão escolhido no rebalanceamento de fragmentos |
get_rebalance_progress | Monitorar as movimentações planejadas e executadas pelo rebalance_table_shards |
get_rebalance_table_shards_plan | Gerar os movimentos do fragmento planejados de rebalance_table_shards sem executá-los |
rebalance_table_shards | Mover os fragmentos de determinada tabela para distribuí-los uniformemente entre os trabalhos |
Colocalização
Nome | Descrição |
---|---|
create_distributed_function | Fazer com que a função seja executada nos trabalhos próximos aos fragmentos colocados |
update_distributed_table_colocation | Atualizar ou interromper a colocação de uma tabela distribuída |
Armazenamento em coluna
Nome | Descrição |
---|---|
alter_columnar_table_set | Alterar as configurações de uma tabela de coluna |
alter_table_set_access_method | Converter uma tabela entre armazenamento de heap ou de coluna |
Particionamento da série temporal
Nome | Descrição |
---|---|
alter_old_partitions_set_access_method | Alterar o método de armazenamento das partições |
create_time_partitions | Criar partições de determinado intervalo para abranger um intervalo de tempo especificado |
drop_old_time_partitions | Remover todas as partições cujos intervalos ocorrem antes de determinado carimbo de data/hora |
Informativo
Nome | Descrição |
---|---|
citus_get_active_worker_nodes | Obter os nomes do host e os números da porta do trabalho ativo |
citus_relation_size | Obter o espaço em disco usado por todos os fragmentos da tabela distribuída especificada |
citus_remote_connection_stats | Mostrar o número de conexões ativas com cada nó remoto |
citus_stat_statements_reset | Remover todas as linhas de citus_stat_statements |
citus_table_size | Obter o espaço em disco usado por todos os fragmentos da tabela distribuída especificada, exceto os índices |
citus_total_relation_size | Obter o espaço em disco total usado por todos os fragmentos da tabela distribuída especificada, incluindo todos os índices e os dados de notificação do sistema |
column_to_column_name | Converter a coluna partkey de pg_dist_partition em um nome de coluna textual |
get_shard_id_for_distribution_column | Localizar a ID de fragmento associada a um valor da coluna de distribuição |
Parâmetros do Servidor
Execução de consulta
Nome | Descrição |
---|---|
citus.all_modifications_commutative | Permitir que todos os comandos declarem um bloqueio compartilhado |
citus.count_distinct_error_rate | Ajustar a taxa de erros da contagem aproximada do postgresql-hll |
citus.enable_repartition_joins | Permitir junções feitas em colunas que não são de distribuição |
citus.enable_repartitioned_insert_select | Permitir o reparticionamento de linhas da instrução SELECT e a transferência delas entre trabalhos para inserção |
citus.limit_clause_row_fetch_count | O número de linhas a serem buscadas por tarefa para otimização da cláusula de limite |
citus.local_table_join_policy | A localização para a qual os dados serão movidos durante uma junção de tabelas locais e distribuídas |
citus.multi_shard_commit_protocol | O protocolo de confirmação a ser usado ao executar o comando COPY em uma tabela distribuída por hash |
citus.propagate_set_commands | Os comandos SET a serem propagados do coordenador para os trabalhos |
citus.create_object_propagation | Comportamento de instruções CREATE em transações para objetos com suporte |
citus.use_citus_managed_tables | Permitir que tabelas locais sejam acessadas em consultas de nó de trabalho |
Informativo
Nome | Descrição |
---|---|
citus.explain_all_tasks | Fazer com que a saída EXPLAIN mostre todas as tarefas |
citus.explain_analyze_sort_method | Classificar o método das tarefas na saída de EXPLAIN ANALYZE |
citus.log_remote_commands | Registrar em log as consultas enviadas pelo coordenador aos nós de trabalho |
citus.multi_task_query_log_level | Nível de log para qualquer consulta que gere mais de uma tarefa |
citus.stat_statements_max | Número máximo de linhas a serem armazenadas em citus_stat_statements |
citus.stat_statements_purge_interval | A frequência em que o daemon de manutenção remove os registros de citus_stat_statements que não correspondem em pg_stat_statements |
citus.stat_statements_track | Habilitar/desabilitar acompanhamento de instrução |
citus.show_shards_for_app_name_prefixes | Permite que os fragmentos sejam exibidos para clientes selecionados que desejam vê-los |
citus.override_table_visibility | Habilitar/desabilitar ocultação de fragmentos |
Gerenciamento de conexão entre nós
Nome | Descrição |
---|---|
citus.executor_slow_start_interval | Tempo de espera em milissegundos entre as conexões de abertura para o mesmo nó de trabalho |
citus.force_max_query_parallelization | Abrir o máximo de conexões possível |
citus.max_adaptive_executor_pool_size | Número máximo de conexões de trabalho por sessão |
citus.max_cached_conns_per_worker | Número de conexões mantidas em aberto para acelerar os comandos seguintes |
citus.node_connection_timeout | Duração máxima (em milissegundos) de espera para o estabelecimento da conexão |
Transferência de dados
Nome | Descrição |
---|---|
citus.enable_binary_protocol | Usar o formato de serialização binária do PostgreSQL (quando aplicável) para transferir os dados com trabalhos |
citus.max_intermediate_result_size | Tamanho em KB dos resultados intermediários para CTEs e subconsultas que não podem ser propagadas |
Deadlock
Nome | Descrição |
---|---|
citus.distributed_deadlock_detection_factor | Tempo de espera antes de verificar se há deadlocks distribuídos |
citus.log_distributed_deadlock_detection | Indica se é preciso registrar o processamento relacionado à detecção de deadlock distribuído no log do servidor |
Tabelas do sistema
O nó coordenador contém tabelas de metadados e exibições para ajudar a ver as propriedades de dados e a atividade de consulta no cluster.
Nome | Descrição |
---|---|
citus_dist_stat_activity | Consultas distribuídas que estão sendo executadas em todos os nós |
citus_lock_waits | Consultas bloqueadas em todo o cluster |
citus_shards | A localização de cada fragmento, o tipo de tabela a que ele pertence e o tamanho dele |
citus_stat_statements | Estatísticas sobre como as consultas estão sendo executadas e para quem |
citus_tables | Um resumo de todas as tabelas distribuídas e de referência |
citus_worker_stat_activity | Consultas sobre trabalhos, incluindo tarefas em fragmentos individuais |
pg_dist_colocation | Indica os fragmentos das tabelas que devem ser posicionados em conjunto |
pg_dist_node | Informações sobre os nós de trabalho no cluster |
pg_dist_object | Objetos, como tipos e funções que foram criados no nó coordenador e propagados para os nós de trabalho |
pg_dist_placement | A localização das réplicas de fragmento nos nós de trabalho |
pg_dist_rebalance_strategy | Estratégias que podem ser usadas por rebalance_table_shards para determinar a localização para a qual os fragmentos serão movidos |
pg_dist_shard | A tabela, a coluna de distribuição e os intervalos de valor para cada fragmento |
time_partitions | Informações sobre cada partição gerenciada por essas funções como create_time_partitions e drop_old_time_partitions |
Próximas etapas
- Saiba mais sobre algumas consultas de diagnóstico úteis
- Examine a lista de parâmetros de configuração no banco de dados PostgreSQL subjacente.