Kubuspartities
Gepubliceerd: juli 2016
Is van toepassing op: System Center 2012 SP1 - Service Manager, System Center 2012 R2 Service Manager, System Center 2012 - Service Manager
Elke maateenheidgroep in een kubus is onderverdeeld in partities, waarbij een partitie een portie is van de feitgegevens die in een maateenheidgroep zijn geladen. In SQL Server Analysis Services (SSAS) op SQL Server 2008 R2 Standard Edition is slechts één partitie per maateenheidgroep toegestaan, terwijl in Enterprise Edition meerdere partities zijn toegestaan. Partities zijn volledig transparant voor de eindgebruiker, maar hebben een belangrijke invloed op prestaties en schaalbaarheid. Partities kunnen bijvoorbeeld afzonderlijk en parallel worden verwerkt. Ze kunnen verschillende aggregatieontwerpen hebben, hoewel dat niet is geïmplementeerd in System Center 2012 – Service Manager. U kunt een partitie opnieuw verwerken zonder dat dat gevolgen heeft voor alle andere partities in een maateenheidgroep. SSAS scant ook alleen automatisch de partities die de benodigde gegevens voor een query bevatten, wat de queryprestaties aanzienlijk kan verbeteren.
Het partitioneren van kubussen wordt uitgevoerd bij elke keer dat er onderhoudstaken op het datawarehouse worden uitgevoerd, wat standaard elk uur is. De naam van de specifieke procesmodule die wordt uitgevoerd, is ManageCubePartitions. Deze module wordt altijd uitgevoerd na de stap CreateMartPartitions. De afhankelijkheidsgegevens worden opgeslagen in de tabel infra.moduletriggercondition.
De hoofd-DLL (Dynamic Link Library), die verantwoordelijk is voor het partitioneren, bevindt zich in het DLL-bestand van het hulpprogramma voor warehouses, Microsoft.EnterpriseManagement.Warehouse.Utility, in de klasse PartitionUtil. Meer specifiek: er is methode ManagePartitions() in de klasse die verantwoordelijk is voor al het onderhoud van partities. De DLL voor datawarehouseonderhoud, Microsoft.EnterpriseManagement.Warehouse.Maintenance, en de DLL voor datawarehouse-OLAP (Online Analytica Processing), Microsoft.EnterpriseManagement.Warehouse.Ola, roepen allebei Microsoft.EnterpriseManagement.Warehouse.Utility aan voor het verwerken van partities tijdens onderhoud en kubusimplementatie. Daarom vindt de daadwerkelijke verwerking van de partitionering plaats in het gemeenschappelijke DLL-bestand van het hulpprogramma voor warehouses, om het dupliceren van logica of code te voorkomen.
Bij het onderhoud van gepartitioneerde kubussen worden de volgende taken uitgevoerd:
Partities maken
Partities verwijderen
Grenzen van partities bijwerken
Hiervoor wordt de SQL-tabel (Structured Query Language) etl.TablePartition gelezen om alle feitpartities te bepalen die voor een maateenheidgroep zijn gemaakt. De volgende acties worden uitgevoerd:
Kubusverwerking voor elke maateenheidgroep in de kubus starten
Alle partities ophalen uit de tabel etl.TablePartition voor de maateenheidgroep
Partities verwijderen die wel bestaan in de maateenheidgroep maar die ontbreken in de tabel etl.TablePartition
Nieuwe partities toevoegen die zijn gemaakt en die alleen in de tabel etl.TablePartition bestaan
Partities bijwerken die mogelijk zijn gewijzigd, door elke partitie te vergelijken met de RangeStartDate en RangeEndDate in de tabel etl.TablePartition.
Onthoud het volgende over kubusverwerking:
Alleen maateenheidgroepen die zijn gericht op feiten, bevatten meerdere partities in SQL Server 2008 R2 Standard Edition. Standaard bevatten alle maateenheidgroepen en dimensie maar één partitie. Er zijn daarom geen voorwaarden voor de grenzen van de partitie.
De partitiegrenzen worden gedefinieerd met een querybinding die is gebaseerd op datekeys die overeenkomen met de datekeys voor de overeenkomstige feitpartitie in de tabel etl.TablePartition.
Zie ook