Partitionen (Analysis Services - Mehrdimensionale Daten)
Eine Partition ist ein Container für einen Teil der Measuregruppendaten. Partitionen sind in einer MDX-Abfrage nicht sichtbar, da alle Abfragen den gesamten Inhalt der Measuregruppe wiedergeben, unabhängig davon, wie viele Partitionen für die Measuregruppe defniert wurden. Der Dateninhalt einer Partition wird durch die Abfragebindungen der Partition und die Slicingausdrücke definiert.
Ein einfaches Partition-Objekt besteht aus grundlegenden Informationenen, der Slicingdefinition, dem Aggregationsentwurf usw. Grundlegende Informationen beinhalten den Namen der Partition, den Speichermodus, den Verarbeitungsmodus usw. Die Slicingdefinition ist ein MDX-Ausdruck, der ein Tupel oder einen Satz angibt. Die Slicingdefinition besitzt die gleichen Einschränkungen wie die StrToSet MDX-Funktion. Zusammen mit dem CONSTRAINED-Parameter kann die Slicingdefinition Dimensionen, Hierarchien, Ebenen- und Elementnamen, Schlüssel, eindeutige Namen oder andere benannte Objekte in dem Cube verwenden, jedoch keine MDX-Funktionen. Der Aggregationsentwurf ist eine Auflistung von Aggregationsdefinitionen, die für mehrere Partitionen freigegeben sein können. Der Standard wird vom Aggregationsentwurf des übergeordneten Cubes übernommen.
Partitionen werden in Microsoft SQL Server Analysis Services zum Verwalten und Speichern von Daten und Aggregationen für eine in einem Cube enthaltene Measuregruppe verwendet. Jede Measuregruppe verfügt über mindestens eine Partition, die beim Definieren der Measuregruppe erstellt wird. Wenn Sie eine neue Partition für eine Measuregruppe erstellen, wird die neue Partition der Menge von Partitionen hinzugefügt, die bereits für die Measuregruppe vorhanden sind. Die Measuregruppe spiegelt die kombinierten Daten aller ihrer Partitionen wider. Das bedeutet, dass Sie sicherstellen müssen, dass die Daten für eine Partition einer Measuregruppe von den Daten aller anderen Partitionen der Measuregruppe ausgeschlossen sind, um sicherzustellen, dass Daten in der Measuregruppe nur einmal wiedergegeben werden. Die Originalpartition für eine Measuregruppe basiert auf einer einzelnen Faktentabelle in der Datenquellensicht des Cubes. Sind mehrere Partitionen für eine Measuregruppe vorhanden, kann jede Partition auf eine andere Tabelle entweder in der Datenquellensicht oder in der zugrunde liegenden relationalen Datenquelle für den Cube verweisen. Mehrere Partitionen in einer Measuregruppe können auf die gleiche Tabelle verweisen, wenn jede Partition auf unterschiedliche Zeilen in der Tabelle beschränkt wird.
Partitionen stellen einen leistungsstarken und flexiblen Mechanismus zum Verwalten von Cubes (insbesondere von sehr großen Cubes) dar. Ein Cube, der z. B. Umsatzinformationen enthält, kann Partitionen für die Daten aus jedem der vergangenen Jahre sowie Partitionen für jedes Quartal des aktuellen Jahres enthalten. Dabei muss nur die Partition für das aktuelle Quartal verarbeitet werden, wenn dem Cube aktuelle Informationen hinzugefügt werden. Durch die Verarbeitung einer kleineren Datenmenge wird die Verarbeitungsleistung verbessert, indem die Verarbeitungszeit verkürzt wird. Am Ende des Jahres können die Partitionen für die vier Quartale in einer einzelnen Partition für das Jahr zusammengeführt und eine neue Partition für das erste Quartal des neuen Jahres erstellt werden. Darüber hinaus kann der Prozess der Erstellung dieser neuen Partition als Teil der Data Warehouse-Ladevorgänge und Cubeverarbeitungsprozeduren automatisiert werden.
Partitionen sind für Anwender des Cubes im geschäftlichen Bereich nicht sichtbar. Partitionen können jedoch von Administratoren konfiguriert, hinzugefügt oder gelöscht werden. Jede Partition wird in einer getrennten Gruppe von Dateien gespeichert. Die Aggregatdaten jeder Partition können auf der Analysis Services-Instanz, auf der die Partition definiert ist, auf einer anderen Analysis Services-Instanz oder in derselben Datenquelle gespeichert werden, die zum Bereitstellen der Quelldaten der Partition verwendet wird. Partitionen ermöglichen es, die Quelldaten und die Aggregatdaten eines Cubes auf mehrere Festplatten und zwischen mehreren Servercomputern zu verteilen. Bei einem mittelgroßen bis großen Cube kann die Abfrageleistung, die Ladeleistung und Verwaltungsfähigkeit des Cubes durch Partitionen deutlich steigen. Weitere Informationen zu Remotepartitionen finden Sie unterRemotepartitionen.
Der Speichermodus der einzelnen Partitionen kann unabhängig von anderen Partitionen in der Measuregruppe konfiguriert werden. Für die Speicherung von Partitionen können beliebige Kombinationen von Optionen für Quelldatenspeicherort, Speichermodus, proaktives Zwischenspeichern und Aggregationsentwurf verwendet werden. Mithilfe der Optionen für Echtzeit-OLAP und proaktives Zwischenspeichern können Sie beim Entwerfen einer Partition die Abfragegeschwindigkeit gegen die Latenzzeit abwägen. Speicheroptionen können auch auf verwandte Dimensionen und auf Fakten in einer Measuregruppe angewendet werden. Aufgrund dieser Vielfalt an Möglichkeiten können Sie Strategien für die Speicherung von Cubes entwerfen, die Ihren Anforderungen gerecht werden. Weitere Informationen finden Sie unter Speichermodi und Verarbeitung von Partitionen, Aggregationen und Aggregationsentwürfe und Proaktives Zwischenspeichern (Partitionen).
Partitionsstruktur
Die Struktur einer Partition muss mit der Struktur der zugehörigen Measuregruppe übereinstimmen. Das bedeutet, dass auch die Measures, die die Measuregruppe definieren, zusammen mit allen verwandten Dimensionen in der Partition definiert sein müssen. Beim Erstellen einer Partition erbt diese somit dieselben Measures und verwandten Dimensionen, die für die Measuregruppe definiert wurden.
Die einzelnen Partitionen in einer Measuregruppe können jedoch über verschiedene Faktentabellen verfügen, die aus verschiedenen Datenquellen stammen können. Verfügen die verschiedenen Partitionen einer Measuregruppe über unterschiedliche Faktentabellen, müssen die Tabellen ausreichende Übereinstimmungen aufweisen, um die Struktur der Measuregruppe aufrechtzuerhalten. Das bedeutet, dass die Verarbeitungsabfrage für alle Faktentabellen aller Partitionen dieselben Spalten und dieselben Datentypen zurückgibt.
Stammen die Faktentabellen verschiedener Partitionen aus unterschiedlichen Datenquellen, müssen auch die Quelltabellen für sämtliche verwandten Dimensionen und sämtliche Zwischenfaktentabellen in allen Datenquellen vorhanden sein und in allen Datenbanken dieselbe Struktur aufweisen. Des Weiteren müssen alle Spalten in Dimensionstabellen, die zum Definieren von Attributen für Cubedimensionen im Zusammenhang mit der Measuregruppe verwendet werden, in allen Datenquellen vorhanden sein. Es ist nicht notwendig, alle Verknüpfungen zwischen der Quelltabelle einer Partition und einer Tabelle mit verwandten Dimensionen zu definieren, wenn die Partitionsquelltabelle die gleiche Struktur wie die Quelltabelle für die Measuregruppe aufweist.
Spalten, die nicht zum Definieren von Measures in der Measuregruppe verwendet werden, können in einigen Faktentabellen vorhanden sein, in anderen hingegen fehlen. Ebenso können Spalten, die nicht zum Definieren von Attributen in Tabellen mit verwandten Dimensionen verwendet werden, in einigen Datenbanken vorhanden sein, in anderen hingegen fehlen. Tabellen, die weder für Faktentabellen noch für Tabellen mit verwandten Dimensionen verwendet werden, können in einigen Datenbanken vorhanden sein, in anderen hingegen fehlen.
Datenquellen und Partitionsspeicherung
Eine Partition basiert entweder auf einer Tabelle oder auf einer Sicht in einer Datenquelle oder auf einer Tabelle bzw. benannten Abfrage in einer Datenquellensicht. Der Speicherort der Partitionsdaten wird durch die Datenquellenbindung definiert. In der Regel kann eine Measuregruppe horizontal oder vertikal partitioniert werden.
In einer horizontal partitionierten Measuregruppe basiert jede Partition auf einer gesonderten Tabelle. Diese Art der Partitionierung ist dann geeignet, wenn Daten auf mehrere Tabellen verteilt werden. So weisen beispielsweise einige relationale Datenbanken gesonderte Tabellen für die Daten der verschiedenen Monate auf.
In einer vertikal partitionierten Measuregruppe basiert die Measuregruppe auf einer einzelnen Tabelle, und jede Partition basiert auf einer Abfrage des Quellsystems, die die Daten für die Partition filtert. Enthält z. B. eine einzelne Tabelle die Daten mehrerer Monate, kann die Measuregruppe dennoch nach Monaten partitioniert werden, indem die Transact-SQL-Klausel WHERE angewendet wird, die die Daten eines separaten Monats für jede Partition zurückgibt.
Jede Partition verfügt über Speichereinstellungen, die bestimmen, ob die Daten und Aggregationen der Partition in der lokalen Instanz von Analysis Services oder in einer Remotepartition auf einer anderen Instanz von Analysis Services gespeichert werden. Über die Speichereinstellungen können auch der Speichermodus und das proaktive Zwischenspeichern zur Steuerung der Latenzzeit für eine Partition angegeben werden. Weitere Informationen finden Sie unter Speichermodi und Verarbeitung von Partitionen, Proaktives Zwischenspeichern (Partitionen) und Remotepartitionen.
Inkrementelle Updates
Wenn Sie in Measuregruppen mit mehreren Partitionen Partitionen erstellen und verwalten, müssen Sie besondere Vorsichtsmaßnahmen ergreifen, um die Richtigkeit der Cubedaten sicherzustellen. Obwohl diese Vorsichtsmaßnahmen normalerweise Measuregruppen mit nur einer Partition nicht betreffen, werden sie jedoch angewendet, wenn Sie ein inkrementelles Update der Partitionen durchführen. Beim inkrementellen Update einer Partition wird eine neue temporäre Partition mit einer Struktur erstellt, die mit der der Quellpartition übereinstimmt. Die temporäre Partition wird verarbeitet und dann mit der Quellpartition zusammengeführt. Daher müssen Sie sicherstellen, dass die Verarbeitungsabfrage, die die temporäre Partition auffüllt, keine bereits vorhandenen Daten einer bestehenden Partition dupliziert. Weitere Informationen finden Sie unter Verwalten von Analysis Services-Partitionen.