Extensões (fragmentos de dados)

As tabelas são particionadas em extensões ou partições horizontais de dados. Cada extensão é um segmento horizontal da tabela que contém dados e metadados, como a hora de criação e etiquetas opcionais. A união de todas estas extensões contém todo o conjunto de dados da tabela. As extensões são distribuídas uniformemente pelos nós no cluster e são colocadas em cache no SSD local e na memória para um desempenho otimizado.

As extensões são imutáveis, o que significa que podem ser consultadas, reatribuídas a um nó diferente ou removidas da tabela, mas nunca modificadas. A modificação de dados ocorre ao criar novas extensões e trocar extensões antigas de forma transacional com as novas. A imutabilidade das extensões proporciona benefícios como o aumento da robustez e a reversão fácil para instantâneos anteriores.

As extensões contêm uma coleção de registos que estão fisicamente dispostos em colunas, permitindo uma codificação e compressão eficientes dos dados. Para manter a eficiência das consultas, as extensões mais pequenas são intercaladas em maiores extensões de acordo com a política de intercalação configurada e a política de fragmentação. A intercalação de extensões reduz a sobrecarga de gestão e leva à otimização do índice e à compressão melhorada.

O ciclo de vida de extensão comum é o seguinte:

  1. A extensão é criada por uma operação de ingestão.
  2. A extensão é intercalada com outras extensões.
  3. A extensão intercalada (possivelmente uma que controla a sua linhagem até outras extensões) é eventualmente removida devido a uma política de retenção.

Tempo de criação da extensão

Dois valores datetime são monitorizados por extensão: MinCreatedOn e MaxCreatedOn. Estes valores são inicialmente os mesmos, mas podem ser alterados quando a extensão é intercalada com outras extensões. Quando a extensão é intercalada com outras extensões, os novos valores são de acordo com os valores mínimos e máximos originais das extensões intercaladas.

O tempo de criação de uma extensão é utilizado para os seguintes fins:

  • Retenção: as extensões criadas anteriormente são removidas anteriormente.
  • Colocação em cache: as extensões criadas recentemente são mantidas em cache frequente.
  • Amostragem: as extensões recentes são preferenciais ao utilizar operações de consulta, como take.

Para substituir o tempo de criação de uma extensão, forneça uma alternativa creationTime nas propriedades de ingestão de dados. Isto pode ser útil para fins de retenção, como, por exemplo, se pretender reestest data, mas não quer que apareça como se chegasse tarde.

Nota

O cálculo para remover uma extensão com base no tempo utiliza o tempo de criação da extensão mais recente dentro da extensão intercalada.