Ansicht
Dokumentation

CL_RSDU_IC_COMP_REPART - Vollständige Repartitionierung eines InfoCubes

CL_RSDU_IC_COMP_REPART - Vollständige Repartitionierung eines InfoCubes

BAL_S_LOG - Application Log: Log header data   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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:

  1. 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).
  2. 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).
  3. 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).
  4. 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 direkt von der Klasse CL_RSDU_IC_COMP_REPAR erbt und die dazu verwendet werden kann, DB-spezifische Anpassungen vorzunehmen.

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 in die Schattentabelle /BI<x> /4E. Der Kopierprozess wird mehrfach parallel über disjunkte Werte in der Zeitdimensionsspalte ausgeführt

STEP_COPY_TO_SHD_FFACT

Umkopieren der Datensätze aus der F-Faktentabelle /BI<x>/F in die Schattentabelle /BI<x> /4F. Der Kopierprozess wird mehrfach parallel über disjunkte Werte in der Paketdimensionsspalte ausgeführt

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 kopiert wurden.

STEP_CHECK_FFACT

Prüfen, ob Datensätze vollständig von der F-Faktentabelle in die korrespondierende Schattentabelle /BI<x>/4F kopiert wurden.

STEP_SWITCH_EFACT (Kritischer Bearbeitungsschritt)

Austauschen der E-Faktentabelle mit der korrespondierenden Schattentabelle /BI<x>/4E und Umbenennen der Indizes. Dazu wird zuerst die originale E-Faktentabelle /BI<x> /E in die temporäre Tabelle /BIC/01.. umbenannt. Anschließend werden die Schattentabelle /BI<x> /4E<infocube> in die Tabelle /BI<x> /E und die temporäre Tabelle /BIC/01.. (ehemals originale E-Faktentabelle) in die Schattentabelle umbenannt. Damit ist der Bearbeitungsschritt abgeschlossen und es existieren wiederum zwei Tabellen. Die Tabelle /BI<x> /E hat nun die neue und die Tabelle /BI<x>/4E die originale Struktur.

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 und /BI<x>/4E, die jetzt die originalen Faktentabellen bezeichnen, werden nicht automatisch gelöscht, um im Fehlerfall zurücksetzen und analysieren zu können. In späteren SPs werden diese Tabellen am Ende der Repartitionierung automatisch gelöscht.

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 )