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.
Há cinco tipos de tabelas em um cluster, cada uma armazenada de forma diferente em nós e usada para fins diferentes.
Tabelas distribuídas
O primeiro tipo, e mais comum, são as tabelas distribuídas. Eles parecem ser tabelas normais para instruções SQL, mas são particionados horizontalmente entre nós de trabalho. O que isso significa é que as linhas das tabelas são armazenadas em nós diferentes, em tabelas de fragmentos chamadas fragmentos.
Os clusters elásticos executam não apenas instruções SQL, mas DDL (Data Definition Language) em todo um cluster. A alteração do esquema de uma tabela distribuída é feita em cascata para atualizar todos os fragmentos da tabela entre os trabalhadores. Tais operações precisam ser feitas através de uma conexão pela porta 5432.
Coluna distribuída
Os clusters elásticos usam fragmentação algorítmica para atribuir linhas a fragmentos. A atribuição é feita deterministicamente com base no valor de uma coluna de tabela chamada coluna de distribuição. O administrador do cluster deve designar essa coluna ao distribuir uma tabela. Fazer a escolha certa é importante para o desempenho e a funcionalidade.
Quadros de referência
Uma tabela de referência é um tipo de tabela distribuída cujo conteúdo inteiro está concentrado em um único fragmento. O estilhaço é replicado em todos os trabalhadores. As consultas em qualquer trabalhador podem acessar as informações de referência localmente, sem a sobrecarga de rede de solicitar linhas de outro nó. As tabelas de referência não têm coluna de distribuição porque não há necessidade de distinguir fragmentos separados por linha.
As tabelas de referência geralmente são pequenas e são usadas para armazenar dados relevantes para consultas em execução em qualquer nó de trabalho. Um exemplo são valores enumerados, como status de pedidos ou categorias de produtos.
Tabelas locais
Quando você usa cluster elástico, cada nó é um banco de dados PostgreSQL regular. Você pode criar tabelas comuns sobre eles e optar por não fragmentá-los.
Um bom candidato para mesas locais seriam pequenas mesas administrativas que não participam de consultas de junção. Um exemplo é uma users tabela para entrada e autenticação de aplicativos. Esse tipo de tabela só é útil quando você não planeja balancear a carga de sua conexão entre um cluster elástico usando a porta 7432 ou 8432.
Tabelas gerenciadas localmente
Os clusters elásticos podem adicionar automaticamente tabelas locais aos metadados se existir uma referência de chave estrangeira entre uma tabela local e uma tabela de referência. Além disso, as tabelas gerenciadas localmente podem ser criadas manualmente executando citus_add_local_table_to_metadata função em tabelas locais regulares. As tabelas presentes nos metadados são consideradas tabelas gerenciadas e podem ser consultadas a partir de qualquer nó. O Citus sabe rotear para o nó para obter dados da tabela gerenciada local. Essas tabelas são exibidas como locais em citus_tables exibição.
Tabelas de esquema
Com a fragmentação baseada em esquema, os esquemas distribuídos são automaticamente associados a grupos de colocation individuais. As tabelas criadas nesses esquemas são convertidas automaticamente em tabelas distribuídas colocalizadas sem uma chave de estilhaço. Essas tabelas são consideradas tabelas de esquema e são exibidas como esquema em citus_tables exibição.