Utrymmen (datashards)

Tabeller är partitionerade i utrymmen eller datashards. Varje utrymme är ett horisontellt segment i tabellen som innehåller data och metadata, till exempel dess skapandetid och valfria taggar. Unionen av alla dessa utrymmen innehåller hela datamängden i tabellen. Utrymmen är jämnt fördelade över noder i klustret, och de cachelagras i både lokal SSD och minne för optimerad prestanda.

Utrymmen är oföränderliga, vilket innebär att de kan efterfrågas, omtilldelas till en annan nod eller tas bort från tabellen men aldrig ändras. Dataändring sker genom att nya utrymmen skapas och transaktionsmässigt växla gamla utrymmen med de nya. Oföränderlighet i utrymmen ger fördelar som ökad robusthet och enkel omversion till tidigare ögonblicksbilder.

Utrymmen innehåller en samling poster som är fysiskt ordnade i kolumner, vilket möjliggör effektiv kodning och komprimering av data. För att upprätthålla frågeeffektiviteten slås mindre utrymmen samman i större utsträckning enligt den konfigurerade sammanslagningsprincipen och horisontell partitioneringsprincipen. Sammanslagningsutrymmen minskar hanteringskostnaderna och leder till indexoptimering och förbättrad komprimering.

Den vanliga utrymmeslivscykeln är följande:

  1. Omfattningen skapas av en inmatningsåtgärd.
  2. Omfattningen slås samman med andra utrymmen.
  3. Den sammanfogade omfattningen (möjligen en som spårar dess ursprung i andra utsträckningar) tas så småningom bort på grund av en kvarhållningsprincip.

Tid för att skapa utrymme

Två datetime-värden spåras per utrymme: MinCreatedOn och MaxCreatedOn. Dessa värden är initialt samma men kan ändras när omfattningen slås samman med andra utrymmen. När omfattningen slås samman med andra utrymmen är de nya värdena enligt de ursprungliga lägsta och högsta värdena för de sammanfogade utrymmena.

Skapandetiden för ett utrymme används för följande ändamål:

  • Kvarhållning: Tidigare skapade utrymmen tas bort.
  • Cachelagring: Utrymmen som skapats nyligen lagras i frekvent cachelagring.
  • Sampling: De senaste utrymmena föredras när du använder frågeåtgärder som take.

Om du vill skriva över skapandetiden för ett utrymme anger du ett alternativ creationTime i egenskaperna för datainmatning. Detta kan vara användbart i kvarhållningssyfte, till exempel om du vill att data ska ändras men inte vill att de ska visas som om de kom för sent.

Anteckning

Beräkningen för att ta bort ett utrymme baserat på tid använder skapandetiden för den senaste omfattningen i den sammanslagna omfattningen.