Daten aus Aggregate Storage Cubes löschen

Sie können alle Daten aus einem Essbase Aggregate Storage-(ASO-)Cube löschen oder Daten aus einer bestimmten Region löschen, wobei die Daten in anderen Regionen beibehalten werden. Sie können physische oder logische Löschvorgänge ausführen.

Zum Löschen von Daten benötigen Sie dieselbe Anwendungsberechtigung wie zum Laden von Daten (Berechtigung für Datenbankupdates oder höher).

Sie können einen Clear Data-Job in der Essbase-Weboberfläche verwenden oder den CLI-Befehl clear verwenden oder die alter database-Anweisung MaxL mit der Grammatik clear data in region verwenden. Beispiele in diesem Thema: MaxL.

Daten aus bestimmten Regionen löschen

Diese Methode ist nützlich, wenn Sie volatile Daten (z.B. Daten, die dem letzten Monat entsprechen) löschen und dabei historische Daten beibehalten möchten.

Zu den Methoden zum Löschen von Daten aus einer ASO-Region gehören physische und logische Löschvorgänge.

  • Physisch löschen

    Die Eingabezellen in der angegebenen Region werden physisch aus dem Aggregate Storage-Cube entfernt, wie unten dargestellt.

    Abbildung 37-2: Physisches Löschen einer Datenregion


    Diese Abbildung veranschaulicht, wie Eingabezellen beim Löschen von Daten mit der physikalischen Methode physisch entfernt werden.

    Wenn mehrere Datensegmente im Cube vorhanden sind, führt der physische Vorgang zum Löschen einer Region automatisch alle Datensegmente mit dem Hauptdatenbereich zusammen. Nachdem die Daten für die angegebene Region gelöscht wurden, materialisiert Essbase alle Aggregatansichten, die im Hauptdatenbereich vorhanden waren, bevor der Vorgang zum Löschen der Region ausgeführt wurde.

    Die benötigte Zeit für die physische Datenlöschung steht im Verhältnis zur Größe der Eingabedaten, nicht zu der Größe der Daten, die gelöscht werden. Daher können Sie diese Methode nur verwenden, wenn Sie große Datenbereiche entfernen.

    Um Daten physisch zu löschen, verwenden Sie die alter database-MaxL-Anweisung mit der Grammatik clear data in region und dem Schlüsselwort physical:

    alter database appname.dbname clear data in region 'MDX set expression' physical;

    Um Zeit zu sparen, können Sie eine durch Komma getrennte Liste von MDX set expressions verwenden, um aus mehreren physischen Regionen zu löschen.

  • Logischer Löschvorgang

    Die Eingabezellen in der angegebenen Region werden in ein neues Datensegment mit negativen Kompensierungswerten geschrieben, die für die zu leeren Zellen zu dem Wert null führen, wie unten dargestellt.

    Abbildung 37-3: Logisches Löschen einer Datenregion


    Diese Abbildung veranschaulicht, wie ein neues Datensegment mit kompensierenden Werten erstellt wird, wenn Daten mit der logischen Methode gelöscht werden.

    Der logische Vorgang "Region löschen" führt automatisch nur das Datensegment mit Nullwerten in das Hauptdatensegment zusammen. Andere Datensegmente im Cube werden nicht zusammengeführt. Nachdem Daten für die angegebene Region gelöscht wurden, materialisiert Essbase Aggregatansichten nur im neuen Datenbereich.

    Die benötigte Zeit für das logische Löschen von Daten steht im Verhältnis zur Größe der Daten, die gelöscht werden. Da ausgleichende Zellen erstellt werden, erhöht diese Option die Größe des Cubes.

    Um Daten logisch zu löschen, verwenden Sie die alter database MaxL-Anweisung mit der Grammatik clear data in region, jedoch ohne das Schlüsselwort physical:

    alter database appname.dbname clear data in region 'MDX set expression';

    Abfragen in der logisch gelöschten Region geben Nullwerte anstelle von #MISSING-Werten zurück. Möglicherweise müssen Sie Formeln aktualisieren, die auf #MISSING-Werten für leere Zellen basieren.

    Um Zellen mit dem Wert Null zu entfernen, verwenden Sie die alter database MaxL-Anweisung mit der merge-Klausel, einschließlich des Schlüsselworts remove_zero_cells:

    alter database appname.dbname merge all data remove_zero_cells;

    Hinweis:

    Oracle empfiehlt nicht, eine zweite logische Operation zum Löschen einer Region in derselben Region auszuführen, da der zweite Vorgang die im ersten Vorgang erstellten Ausgleichszellen nicht löscht und keine neuen Ausgleichszellen erstellt.

Befolgen Sie die folgenden Richtlinien, um die zu löschende ASO-Region anzugeben:

  • Die Region muss symmetrisch sein. Beispiel:

    • {(Jan, Budget)} ist ein gültiger symmetrischer Bereich, der alle Budgetdaten für Jan löscht.

    • {(Jan, Forecast1),(Feb, Forecast2)} ist eine ungültige Region, da sie aus zwei asymmetrischen Regionen besteht (Jan, Forecast1 und Feb, Forecast2).

  • Einzelne Elemente in einer Dimension in der Regionsspezifikation müssen gespeicherte Elemente sein.

  • Mitglieder der Region können nicht sein:

    • Dynamische Elemente (Elemente mit impliziten oder expliziten MDX-Formeln)

    • Von Attributdimensionen

      Wenn Sie Zellen nach einem Attribut löschen müssen, verwenden Sie die MDX-Funktion Attribut.

  • Elemente in der Region können Elemente der oberen Ebene in gespeicherten Hierarchien sein. Auf diese Weise können Sie bequem mehrere Elemente der Ebene 0 angeben.

    Beispiel: Sie können Qrt1 angeben. Dies entspricht der Angabe von Jan, Feb und Mar (die untergeordneten Elemente der Ebene 0 von Qrt1):


    Diese Abbildung zeigt eine Gliederung, wie im Text vor dem Bild beschrieben.

    Die folgenden beiden MaxL-Anweisungen erzeugen dieselben Ergebnisse:

    alter database appname.dbname clear data in region '{Qtr1}';
    alter database appname.dbname clear data in region '{Jan, Feb, Mar}';
  • Bei physischen Löschvorgängen können Elemente in der Region Elemente der oberen Ebene in alternativen Hierarchien sein.

    Beispiel: Sie können High-End-Merchandise angeben. Dies entspricht der Angabe von Flat Panel, HDTV, Digital Recorders und Notebooks (die gemeinsamen untergeordneten Elemente der Ebene 0 von High-End-Merchandise):


    Diese Abbildung zeigt eine Gliederung, wie im Text vor dem Bild beschrieben.

    Die folgenden beiden MaxL-Anweisungen erzeugen dieselben Ergebnisse:

    alter database appname.dbname clear data in region '{High End Merchandise}';
    alter database appname.dbname clear data in region '{[Flat Panel],[HDTV],[Digital Recorders],[Notebooks]}';

    Um Elemente in alternativen Hierarchien anzugeben, wenn Daten logisch gelöscht werden, verwenden Sie die MDX-Funktion Abhängige Elemente.

    Hinweis:

    Wenn der Bereich Elemente der oberen Ebene aus alternativen Hierarchien enthält, kann sich die Performance verringern. In diesem Fall sollten Sie nur Elemente der Ebene 0 verwenden.

  • Der MDX-Set-Ausdruck muss in einfache Anführungszeichen gesetzt werden.

Um z.B. alle Januardaten für die Szenarios Forecast1 und Forecast2 zu löschen, verwenden Sie die folgende Anweisung:

alter database ASOSamp.Basic clear data in region 'CrossJoin({Jan},{Forecast1, Forecast2})';

Während des Vorgangs "Region löschen" können Sie keine Vorgänge ausführen, die den Cube aktualisieren (z.B. Daten laden, Datensegmente zusammenführen oder Daten aus einer anderen Region löschen) oder Daten exportieren. Sie können den Cube abfragen. Die Abfrageergebnisse basieren jedoch auf dem Dataset vor dem Vorgang "Region löschen".

Die Klausel Daten in Region löschen kann keine Daten aus dem gesamten Cube löschen.

Alle Daten werden gelöscht

Das Löschen aller Daten aus einem Aggregate Storage-Cube ist mit dem Löschen eines Block Storage-Cubes identisch. Um den gesamten Cube zu löschen, verwenden Sie die alter database MaxL-Anweisung mit dem Schlüsselwort reset:

alter database appname.dbname reset;