Extent (partizioni di dati)

Le tabelle vengono partizionate in extent o partizioni di dati. Ogni extent è un segmento orizzontale della tabella che contiene dati e metadati, ad esempio l'ora di creazione e i tag facoltativi. L'unione di tutti questi extent contiene l'intero set di dati della tabella. Gli extent vengono distribuiti uniformemente tra i nodi del cluster e vengono memorizzati nella cache sia nell'unità SSD locale che nella memoria per ottimizzare le prestazioni.

Gli extent non sono modificabili, ovvero possono essere sottoposti a query, riassegnati a un nodo diverso o eliminati dalla tabella ma non modificati. La modifica dei dati avviene creando nuovi extent e scambiando transazionalmente extent precedenti con quelli nuovi. L'immutabilità degli extent offre vantaggi quali maggiore affidabilità e facile inversione agli snapshot precedenti.

Gli extent contengono una raccolta di record disposti fisicamente in colonne, consentendo una codifica e una compressione efficienti dei dati. Per mantenere l'efficienza delle query, gli extent più piccoli vengono uniti in misura maggiore in base ai criteri di unione configurati e ai criteri di partizionamento orizzontale. L'unione degli extent riduce il sovraccarico di gestione e comporta l'ottimizzazione dell'indice e una compressione migliorata.

Il ciclo di vita dell'extent comune è il seguente:

  1. L'extent viene creato da un'operazione di inserimento.
  2. L'extent viene unito ad altri extent.
  3. L'extent unito (possibilmente uno che tiene traccia della derivazione in altri extent) viene infine eliminato a causa di un criterio di conservazione.

Tempo di creazione dell'extent

Vengono rilevati due valori datetime per extent: MinCreatedOn e MaxCreatedOn. Questi valori sono inizialmente uguali, ma possono cambiare quando l'extent viene unito ad altri extent. Quando l'extent viene unito ad altri extent, i nuovi valori sono in base ai valori minimi e massimi originali degli extent uniti.

L'ora di creazione di un extent viene utilizzata per gli scopi seguenti:

  • Conservazione: gli extent creati in precedenza vengono eliminati in precedenza.
  • Memorizzazione nella cache: gli extent creati di recente vengono mantenuti nella cache ad accesso frequente.
  • Campionamento: gli extent recenti sono preferibili quando si usano operazioni di query come take.

Per sovrascrivere il tempo di creazione di un extent, fornire un'alternativa creationTime nelle proprietà di inserimento dati. Ciò può essere utile per scopi di conservazione, ad esempio se si desidera eseguire il reingest dei dati, ma non si vuole che vengano visualizzati come se fosse arrivato in ritardo.

Nota

Il calcolo per la rimozione di un extent in base al tempo usa l'ora di creazione dell'extent più recente all'interno dell'extent unito.