Freigeben über


MDX-Datenbearbeitung – Verwenden von Cube Writebacks

gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Sie aktualisieren einen Cube mithilfe der UPDATE CUBE-Anweisung . Mit dieser Anweisung können Sie ein Tupel mit einem bestimmten Wert aktualisieren. Um die UPDATE CUBE-Anweisung effektiv zum Aktualisieren eines Cubes zu verwenden, müssen Sie die Syntax für die Anweisung, die Fehlerbedingungen, die auftreten können, und die Auswirkungen, die Aktualisierungen auf einem Cube aufweisen können, verstehen.

Syntax der Anweisung UPDATE CUBE

Die folgende Syntax beschreibt die UPDATE CUBE-Anweisung:

UPDATE [CUBE] <Cube_Name> SET <tuple>.VALUE = <value> [,<tuple>.VALUE = <value>...]  
 [ USE_EQUAL_ALLOCATION | USE_EQUAL_INCREMENT |  
  USE_WEIGHTED_ALLOCATION [BY <weight value_expression>] |  
  USE_WEIGHTED_INCREMENT [BY <weight value_expression>] ]   

Wenn kein vollständiger Satz von Koordinaten für das Tupel angegeben ist, verwenden die nicht angegebenen Koordinaten das Standardelement der Hierarchie. Das identifizierte Tupel muss auf eine Zelle verweisen, die mit der Funktion Summe aggregiert wird, und darf kein berechnetes Element als eine der Koordinaten der Zelle verwenden.

Sie können sich die UPDATE CUBE-Anweisung als Unterroutine vorstellen, die eine Reihe einzelner Rückschreibvorgänge in Atomzellen generiert. Alle diese einzelnen Rückschreibvorgänge werden dann in die angegebene Summe integriert.

Hinweis

Wenn aktualisierte Zellen nicht überlappen, kann die Verbindungszeichenfolgeneigenschaft " Update Isolation Level " verwendet werden, um die Leistung für UPDATE CUBE zu verbessern. Weitere Informationen finden Sie unter ConnectionString.

Example

Sie können UPDATE CUBE mithilfe der Measuregruppe "Sales Targets" im Adventure Works-Cube testen. Diese Measure-Gruppe besteht aus Measures, die durch die Funktion SUMME aggregiert werden, was eine Voraussetzung für UPDATE CUBE ist.

  1. Aktivieren Sie den Rückschreibvorgang für die Measuregruppe "Sales Targets" in der Adventure Works-Datenbank. Klicken Sie in Management Studio mit der rechten Maustaste auf eine Maßgruppe, zeigen Sie auf Schreiboptionen, wählen Sie Schreibzugriff aktivieren aus.

    Im Ordner "Writeback" sollte eine neue Rückschreibtabelle angezeigt werden. Der Tabellenname ist WriteTable_FactSalesQuota.

  2. Öffnen Sie ein MDX-Abfragefenster. Führen Sie die folgende Select-Anweisung aus, um den ursprünglichen Wert anzuzeigen:

    SELECT [Measures].[Sales Amount Quota] on 0 ,  
    [Employee].[Employee Department].[Title].&[Sales Representative].children on 1  
    FROM [Adventure Works]  
    
    

    Für jeden Vertreter sollten Verkaufsbetragskontingente angezeigt werden.

  3. Führen Sie die Update cube-Anweisung aus, um einen neuen Wert zurückzuschreiben. In diesem Beispiel legen wir das Verkaufsbetragskontingent auf 0 fest. Da der neue Wert 0 ist, geben Sie keine Zuordnungsmethode an.

    UPDATE CUBE [Adventure Works]   
    SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 0  
    
    
  4. Führen Sie die SELECT-Anweisung erneut aus. Sie sollten jetzt Null für die Kontingente sehen.

Der Rückschreibwert ist auf die aktuelle Sitzung beschränkt. Um den Wert für Benutzer und Sitzungen beizubehalten, verarbeiten Sie die Rückschreibtabelle. Klicken Sie in Management Studio mit der rechten Maustaste auf WriteTable_Fact Sales Quota und wählen Sie "Verarbeiten" aus.

Um eine Zuordnungsmethode anzugeben, muss der neue Wert größer als Null sein. In diesem Beispiel beträgt der neue Wert für das Verkaufsbetragskontingent zwei Millionen, und die Zuordnungsmethode verteilt den Betrag über alle Vertriebsmitarbeiter.

UPDATE CUBE [Adventure Works]   
SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 2000000   
USE_EQUAL_ALLOCATION  

Fehlerbedingungen

In der folgenden Tabelle wird beschrieben, was dazu führen kann, dass Rückschreibvorgänge fehlschlagen, und das Ergebnis dieser Fehler.

Fehlerzustand Ergebnis
Das Update enthält Mitglieder aus derselben Dimension, die nicht gemeinsam existieren. Update schlägt fehl. Der Würfelraum wird die referenzierte Zelle nicht enthalten.
Das Update enthält ein Maß, das auf ein Maß eines nicht-signierten Typs verweist. Update schlägt fehl. Inkremente erfordern, dass das Maß einen negativen Wert annehmen kann.
Das Update enthält eine Maßnahme, die anders als Summe aggregiert. Es wird ein Fehler ausgelöst.
Das Update wurde auf einem Teilwürfel versucht. Es wird ein Fehler ausgelöst.

Auswirkungen von Cubeänderungen

Die folgenden Änderungen wirken sich nicht auf einen Rückschreibvorgang aus:

  • Verarbeitung eines Würfels, der Maßgruppen oder der Dimensionen des Würfels.

  • Hinzufügen von Attributen zu einer beliebigen Dimension.

  • Hinzufügen einer neuen Dimension.

  • Löschen einer Dimension, die den Rückschreibvorgang nicht enthält.

  • Hinzufügen, Ändern oder Entfernen einer Hierarchie.

  • Hinzufügen einer neuen Maßnahme.

Die folgenden Änderungen können nicht vorgenommen werden, ohne die Rückschreibdaten zu entfernen:

  • Löschen eines Attributs oder seiner Attributhierarchie, wenn das Attribut im Rückschreiben enthalten ist. Dies schließt das explizite Entfernen des Attributs oder dessen Attributhierarchie oder das Entfernen der übergeordneten Dimension des Attributs ein.

  • Löschen einer in die Rückschreibeoperation eingebundenen Maßnahme.

  • Hinzufügen eines Attributs ohne (Alle)-Ebene zu einer Dimension, die im Writeback enthalten ist.

  • Änderung der Dimensionsgranularität für eine Dimension, die im Writeback enthalten ist.

Siehe auch

Ändern von Daten (MDX)