Ansicht
Dokumentation
CL_RSDU_IC_COMP_REPART - Vollständige Repartitionierung eines InfoCubes
BAL_S_LOG - Application Log: Log header data Fill RESBD Structure from EBP Component StructureDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
SAP NetWeaver BW unterstützt die Partitionierung (Fragmentierung bei Informix, MDC bei IBM DB2
für UNIX, Linux und Windows) von InfoCubes, um das Laufzeitverhalten bei Lese- und Löschoperationen
auf der Datenbank zu verbessern. Auf Oracle und MSSQL ist die F-Faktentabelle immer dynamisch über
die Paketdimension partitioniert. Die Partitionierung der E-Faktentabelle ist statisch und kann vor
der Aktivierung des InfoCubes in der InfoCube-Pflege definiert werden. Als Partitionierungskriterium
können Kalendermonat oder Fiskalperiode ausgewählt werden. Die SIDs dieser beiden Partitionierungsmerkmale
werden als zusätzliche Spalte in beide Faktentabellen aufgenommen und beim Laden neuer Datenrequests
entsprechend der Einträge in der Zeitdimension gefüllt. Da die Fiskalvariante einen Einfluss
auf die Fiskalperiode hat, darf die E-Faktentabelle nur dann partitioniert werden, wenn die Fiskalvariante für den InfoCube auf einen konstanten Wert gesetzt ist.
Eine nachträgliche Änderung der Partitionierungseigenschaften eines InfoCubes ist über
die InfoCube-Pflege nicht mehr möglich, wenn bereits Daten hochgeladen wurden. Eine Änderung kann aber aus folgenden Gründen notwendig oder sinnvoll sein:
- Partitionierung wird für die verwendete Datenbank neu angeboten. Bereits existierende InfoCubes sollen deshalb nachträglich partitioniert werden, um die Vorteile der Partitionierung auch für den bestehenden Datenbestand nutzen zu können (vollständige Repartitionierung).
- Partitionierung wird bereits verwendet und soll angepasst werden, da das aktuelle Partitionierungsschema nicht mehr den Anforderungen entspricht. Beispielsweise könnten zu viele Daten in einer Partition gesammelt werden, da das Datenwachstum mit der Zeit größer geworden ist (vollständige Repartitionierung).
- Der Zeitbereich der Partitionierung ist zu klein. Beim Aktivieren eines InfoCubes wurden beispielsweise Partitionen für den Zeitraum Januar 2000 bis Dezember 2006 angelegt. Damit Daten für das Jahr 2007 nicht ausschließlich in der Überlaufpartition gesammelt werden, soll das Partitionierungsschema bis Dezember 2007 erweitert werden (Anhängen von Partitionen).
- Mehrerer Partitionen enthalten keine oder nur noch wenige Datensätze. Beim Aktivieren eines InfoCubes wurden beispielsweise Partitionen für den Zeitraum Januar 2000 bis Dezember 2008 angelegt. Ende 2006 werden die Daten aus den Jahren 2000 und 2001 archiviert. Damit die nun leeren Partitionen für die Jahre 2000 und 2001 nicht unnötig den DB-Systemkatalog aufblähen, sollen diese Partitionen zu einer Unterlaufpartition zusammengefasst werden (Zusammenfassen von Partitionen).
Die Klassen CL_RSDU_IC_COMP_REPART implementieren die vollständige Repartitionierung. Bei der vollständigen Repartitionierung werden alle Datensätze der beiden Faktentabellen eines InfoCubes umkopiert. Die vollständige Repartitionierung benötigt immer zusätzlichen Speicherplatz in der Größenordung des zu repartitionierenden InfoCubes. Da die Daten physisch umkopiert, Indizes neu angelegt und Tabellenstatistiken neu berechnet werden müssen, kann diese Aktion, in Abhängigkeit von der Größe des InfoCubes, mehrere Stunden dauern. Die vollständige Repartitionierung ist universal nutzbar und kann sowohl zur erstmaligen Partitionierung als auch zum Anhängen und Zusammenfassen von Partitionen genutzt werden.
Die Repartitionierung darf nicht transportiert werden, da es sonst zu Schiefständen im Zielsystem kommen kann. Vor einem Transport muss deshalb die Repartitionierung immer separat in jedem System der Systemlandschaft mit identischen Parametern repartitioniert werden.
Die vollständige Repartitionierung ist in wesentlichen Teilen von der verwendeten DB-Plattform
unabhängig. Allerdings gibt für jede DB-Plattform eine Klasse CL_RSDU_IC_COMP_REPAR_
Die Klasse CL_RSDU_IC_COMP_REPART implementiert die beiden Interfaces IF_RSCNV_MONITOR und IF_RSDU_REPART. Das Interface F_RSCNV_MONITOR dient zur Kommunikation mit dem Monitor, der den aktuellen Fortschritt der Repar titionierung sowie auftretende Fehlermeldungen anzeigt. Das Interface IF_RSDU_REPART dient als Schnittstelle zum Programm RSDU_REPART_UI, mit dem die Repartitionierung eines Objekts durch einen Benutzer eingeplant und überwacht werden kann. Die Klasse CL_RSDU_IC_COMP_REPART besitzt außerdem eine Referenz auf die Klasse CL_RSDU_REPART_SRVS, in der einige generische Services für die Repartitionierung implementiert sind.
Die einzelnen Bearbeitungsschritte der Repartitionierung werden in den Methoden implementiert, deren Name immer mit 'STEP_' beginnt:
STEP_CREA_SHD_EFACT
Anlegen einer leeren Schattentabelle für die E-Faktentabelle. Die leere Schattentabelle hat bereits die Struktur der E-Faktentabelle nach der Repartitionierung. Das beinhaltet eine zusätzliche Spalte für das Partitionierungsmerkmal,
/4E
STEP_CREA_SHD_FFACT
Anlegen einer leeren Schattentabelle für die F-Faktentabelle. Die leere Schattentabelle hat bereits die Struktur der F-Faktentabelle nach der Repartitionierung. Die beinhaltet eine zusätzliche Spalte für das Partitionierungsmerkmal, s
/4F
STEP_SPACE_CHECK
Überprüfen, ob genügend freier Plattenplatz für die Durchführung der Repartitionierung vorhanden ist. Dieser Schritt ist nur auf einigen DB-Plattformen implementiert, da der Speicherplatz bei den meisten DB-Plattformen dynamisch allokiert wird.
STEP_COPY_TO_SHD_EFACT
Umkopieren der Datensätze aus der E-Faktentabelle /BI<x>/E
STEP_COPY_TO_SHD_FFACT
Umkopieren der Datensätze aus der F-Faktentabelle /BI<x>/F
STEP_CREA_IDX
Anlegen der Indizes auf beiden Schattentabellen
STEP_SET_READ_LOCK
Lesesperre für InfoCube setzen, da ab jetzt keine richtigen Ergebnisse mehr beim Lesen garantiert werden können.
STEP_INA_AGGR
Alle Aggregate zum InfoCube deaktivieren
STEP_DELETE_FACTVIEW
View über E- und F-Faktentabelle löschen
STEP_CHECK_EFACT
Prüfen, ob Datensätze vollständig von der E-Faktentabelle in die korrespondierende Schattentabelle /BI<x>/4E
STEP_CHECK_FFACT
Prüfen, ob Datensätze vollständig von der F-Faktentabelle in die korrespondierende Schattentabelle /BI<x>/4F
STEP_SWITCH_EFACT (Kritischer Bearbeitungsschritt)
Austauschen der E-Faktentabelle mit der korrespondierenden Schattentabelle /BI<x>/4E
Da es in diesem Verarbeitungsschritt zu inkonsistenten Zuständen im Falle von Abbrüchen kommen kann, wurde der Bearbeitungsschritt als kritisch eingestuft und kann deshalb nicht über die Oberfläche des Monitors zurückgesetzt werden. Falsche Korrekturmaßnahmen können zu Datenverlust führen!
STEP_SWITCH_FFACT (Kritischer Bearbeitungsschritt)
Wie SWITCH_EFACT nur für die F-Faktentabelle
STEP_CREA_FACTVIEW
Anlegen des Views über die E- und F-Faktentabelle
STEP_POST_ACT
Anpassen der BW-Metadaten, Aktivierung der Fortschreibungsregeln, Generieren und Aktivieren der Ladeprogramme
STEP_REPA_IDX
Überprüfen, ob alle Indizes korrekt angelegt wurden. Fehlende oder fehlerhafte Indizes werden neu angelegt oder repariert.
STEP_ANALYZE
Datenbankstatistiken für E- und F-Faktentabelle berechnen
STEP_RELEASE_READ_LOCK
Lesesperre lösen. Damit steht der InfoCube wieder für Reporting und Analyse zur Verfügung. Diverse Aufräumarbeiten: Die Schattentabellen /BI<x>
/4F
Weitere Methoden der Klasse CL_RSDU_IC_COMP_REPART sind:
Methode/Eigenschaft | Beschreibung |
MODIFY_PRIMIDX_EFACT | Index der E-Schattentabelle anpassen, wenn erforderlich |
COPY_REF_TO_SHD_EFACT | Stützstellen bestandstragender InfoCubes kopieren |
FILL_SX_QUERY_EFACT | sx_query Struktur zum Füllen der E-Schattentab. besorgen |
GET_HINT | Anweisung für Optimizer |
GET_PARTTIM_SID | Festwert für Partitionierungsspalte |
PUT_DDSTORAGE_EFACT | Speicherparameter für die E-Schattentabelle schreiben |
PUT_DDSTORAGE_FFACT | Speicherparameter für die F-Schattentabelle schreiben |
STEP_CREA_IDX | STEP: Anlegen aller Indizes auf beiden Schattentabellen |
STEP_SWITCH | Schattentabelle mit Faktentabelle austauschen |
CONSISTENCY_CHECK | Konsistenzprüfung vor dem Austausch von Fakten- u. Schattentab. |
FILL_SX_QUERY_FFACT | sx_query Struktur zum Füllen der F-Schattentab. besorgen |
FILL_TX_QUERY_EFACT | sx_query Strukturen zum Füllen der E-Schattentab. besorgen |
FILL_TX_QUERY_FFACT | sx_query Strukturen zum Füllen der F-Schattentab. besorgen |
GET_REQUEST_PARAMETERS | Requestparameter aus der Tabelle RSDDICREPARTREQ lesen |
INITIALIZE_STEPS | Bearbeitungsschritte (Steps) definieren und initialisieren |
PUT_REQUEST_PARAMETERS | Requestparameter in die Tabelle RSDDICREPARTREQ schreiben |
Beziehungen
Beispiel
Hinweise
Weiterführende Informationen
rdisp/max_wprun_time - Maximum work process run time PERFORM Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 13228 Date: 20240420 Time: 114316 sap01-206 ( 205 ms )