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
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_statements pg_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.