Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
O Azure Cosmos DB para PostgreSQL não tem mais suporte para novos projetos. Não use esse serviço para novos projetos. Em vez disso, use um destes dois serviços:
Use o Azure Cosmos DB para NoSQL para uma solução de banco de dados distribuída projetada para cenários de alta escala com um SLA (contrato de nível de serviço de disponibilidade) de 99,999%, dimensionamento automático instantâneo e failover automático em várias regiões.
Use o recurso Clusters Elásticos do Banco de Dados do Azure para PostgreSQL para PostgreSQL fragmentado usando a extensão de código aberto Citus.
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.