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