Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
O Azure Cosmos DB para PostgreSQL não tem mais suporte para novos projetos. Não use este serviço para novos projetos. Em vez disso, use um destes dois serviços:
Use o Azure Cosmos DB para NoSQL para obter uma solução de banco de dados distribuído 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 Citus de código aberto.
O Azure Cosmos DB for PostgreSQL inclui funcionalidades que vão além do PostgreSQL padrão. Abaixo está uma referência categorizada de funções e opções de configuração para:
- Paralelizar a execução de consultas entre fragmentos
- Gerir dados fragmentados entre vários servidores
- Comprimir dados com armazenamento em colunas
- Automatizar a criação de partições de séries temporais
Funções SQL
Fragmentação
| Nome | Descrição |
|---|---|
| alter_distributed_table | Alterar a coluna de distribuição, a contagem de estilhaços ou as propriedades de colocation de uma tabela distribuída |
| citus_copy_shard_placement | Reparar um posicionamento de estilhaço inativo usando dados de um posicionamento íntegro |
| citus_schema_distribute | Transformar um esquema PostgreSQL em um esquema distribuído |
| citus_schema_undistribute | Desfazer 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 sincronizadas em todos os nós |
| citus_add_local_table_to_metadata | Adicionar uma tabela local aos metadados para permitir a consulta a partir de qualquer nó |
| isolate_tenant_to_new_shard | Criar um novo fragmento para manter linhas com um único valor 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 de create_distributed_table ou create_reference_table |
Reequilíbrio de estilhaços
| 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 estilhaços em vez de ser chamado diretamente por um administrador de banco de dados |
| citus_set_default_rebalance_strategy | Alterar a estratégia nomeada por seu argumento para ser o padrão escolhido ao reequilibrar fragmentos |
| get_rebalance_progress | Monitore os movimentos planejados e executados por rebalance_table_shards |
| get_rebalance_table_shards_plan | Saída dos movimentos de estilhaços planejados de rebalance_table_shards sem executá-los |
| rebalance_table_shards | Mova fragmentos da tabela dada para distribuí-los uniformemente entre os trabalhadores |
Colocalização
| Nome | Descrição |
|---|---|
| create_distributed_function | Fazer a função funcionar em trabalhadores perto de fragmentos colocalizados |
| update_distributed_table_colocation | Atualizar ou quebrar a colocalização de uma tabela distribuída |
Armazenamento colunar
| Nome | Descrição |
|---|---|
| alter_columnar_table_set | Alterar configurações em uma tabela colunar |
| alter_table_set_access_method | Converter uma tabela entre armazenamento de pilha ou colunar |
Particionamento de séries cronológicas
| Nome | Descrição |
|---|---|
| alter_old_partitions_set_access_method | Alterar o método de armazenamento de partições |
| create_time_partitions | Criar partições de um determinado intervalo para cobrir um determinado intervalo de tempo |
| drop_old_time_partitions | Remova todas as partições cujos intervalos caem antes de um determinado carimbo de data/hora |
Informativo
| Nome | Descrição |
|---|---|
| citus_get_active_worker_nodes | Obter nomes de host de trabalhador ativo e números de porta |
| citus_relation_size | Obter 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 para cada nó remoto |
| citus_stat_statements_reset | Remover todas as linhas de citus_stat_statements |
| citus_table_size | Obter espaço em disco usado por todos os fragmentos da tabela distribuída especificada, excluindo índices |
| citus_total_relation_size | Obter espaço total em disco usado por todos os fragmentos da tabela distribuída especificada, incluindo todos os índices e dados do sistema |
| column_to_column_name | Traduzir a partkey coluna de em um nome de pg_dist_partition coluna textual |
| get_shard_id_for_distribution_column | Localizar o ID do estilhaço associado a um valor da coluna de distribuição |
Parâmetros do servidor
Execução da consulta
| Nome | Descrição |
|---|---|
| citus.all_modifications_commutative | Permitir que todos os comandos reivindiquem um bloqueio compartilhado |
| citus.count_distinct_error_rate | Ajustar a taxa de erro da contagem aproximada do postgresql-hll |
| citus.enable_repartition_joins | Permitir JOINs feitas em colunas que não sejam de distribuição |
| citus.enable_repartitioned_insert_select | Permitir o reparticionamento de linhas da instrução SELECT e transferi-las entre trabalhadores para inserção |
| citus.limit_clause_row_fetch_count | O número de linhas a serem buscadas por tarefa para otimização de cláusula de limite |
| citus.local_table_join_policy | Onde os dados são movidos ao fazer uma junção entre tabelas locais e distribuídas |
| citus.multi_shard_commit_protocol | O protocolo de confirmação a ser usado ao executar COPY em uma tabela distribuída por hash |
| citus.propagate_set_commands | Quais comandos SET são propagados do coordenador para os trabalhadores |
| citus.create_object_propagation | Comportamento de instruções CREATE em transações para objetos suportados |
| 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 | Método de classificação das tarefas na saída de EXPLICAR ANALISAR |
| citus.log_comandos_remotos | Consultas de log que o coordenador envia 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 para armazenar citus_stat_statements |
| citus.stat_statements_purge_interval | Frequência com que o daemon de manutenção remove registos incomparáveis citus_stat_statementspg_stat_statements |
| citus.stat_statements_track | Ativar/desativar o acompanhamento de instruções |
| citus.show_shards_for_app_name_prefixes | Permite que fragmentos sejam exibidos para clientes selecionados que desejam vê-los |
| citus.override_table_visibility | Ativar/desativar a ocultação de estilhaços |
Gerenciamento de conexão entre nós
| Nome | Descrição |
|---|---|
| citus.executor_slow_start_interval | Tempo de espera em milissegundos entre a abertura de conexões para o mesmo nó de trabalho |
| citus.force_max_query_parallelization | Abra o maior número possível de conexões |
| citus.max_adaptive_executor_pool_size | Máximo de conexões de trabalho por sessão |
| citus.max_cached_conns_per_worker | Número de conexões mantidas abertas para acelerar os comandos subsequentes |
| citus.node_connection_timeout | Duração máxima (em milissegundos) para aguardar o estabelecimento da ligação |
Transferência de dados
| Nome | Descrição |
|---|---|
| citus.enable_binary_protocol | Use o formato de serialização binária do PostgreSQL (quando aplicável) para transferir dados com trabalhadores |
| citus.max_tamanho_resultado_intermediário | Tamanho em KB dos resultados intermediários para CTEs e subconsultas que não podem ser empurradas para baixo |
Impasse
| Nome | Descrição |
|---|---|
| citus.distributed_deadlock_detection_factor | Tempo de espera antes de verificar se há bloqueios distribuídos |
| citus.log_Detectação_Deadlock_Distribuído | Se o processamento relacionado à deteção de deadlock distribuído deve ser registrado no log do servidor |
Tabelas de sistema
O nó coordenador contém tabelas de metadados e exibições para ajudá-lo a ver as propriedades de dados e a atividade de consulta no cluster.
| Nome | Descrição |
|---|---|
| citus_dist_stat_activity | Consultas distribuídas em execução 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 pertence e o seu tamanho |
| 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 trabalhadores, incluindo tarefas sobre fragmentos individuais |
| pg_dist_colocation | Que estilhaços de mesa devem ser colocados juntos |
| pg_dist_node | Informações sobre nós de trabalho no cluster |
| pg_dist_object | Objetos como tipos e funções que foram criados no nó coordenador e propagados para nós de trabalho |
| pg_dist_placement | O local das réplicas de estilhaços em nós de trabalho |
| pg_dist_rebalance_strategy | Estratégias que rebalance_table_shards podem ser usadas para determinar para onde mover fragmentos |
| pg_dist_shard | A tabela, a coluna de distribuição e os intervalos de valores para cada fragmento |
| time_partitions | Informações sobre cada partição gerenciada por funções como create_time_partitions e drop_old_time_partitions |
Próximos passos
- Conheça algumas consultas de diagnóstico úteis
- Analise a lista de parâmetros de configuração no banco de dados PostgreSQL subjacente.