Partilhar via


Azure Cosmos DB para API SQL distribuída do PostgreSQL

APLICA-SE A: Azure Cosmos DB para PostgreSQL (alimentado pela extensão de banco de dados Citus para PostgreSQL)

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

Name Description
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

Name Description
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

Name Description
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

Name Description
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

Name Description
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

Name Description
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

Name Description
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

Name Description
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_remote_comandos 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

Name Description
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_trabalhador 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

Name Description
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

Name Description
citus.distributed_deadlock_detection_factor Tempo de espera antes de verificar se há bloqueios distribuídos
citus.log_distributed_deadlock_detection 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.

Name Description
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 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