Implementieren von Aggregationen
Wenn ein Semantikmodell Berichte über große Faktentabellen (Tabellen mit Hunderten von Millionen oder Milliarden von Zeilen) liefert, sind sogar optimierte DAX und reduzierte Kardinalität möglicherweise nicht ausreichend. Aggregationen bieten eine Möglichkeit, Daten im Voraus zusammenzufassen, sodass allgemeine Abfragen Ergebnisse aus einem kleinen, schnellen Speichercache zurückgeben, anstatt die gesamte Detailtabelle zu scannen.
Verstehen, wann Aggregationen helfen
Aggregationen sind am wertvollsten, wenn drei Bedingungen vorhanden sind:
- Große Faktentabellen. Tabellen mit Hunderten von Millionen Zeilen, die nicht effizient vollständig in den Arbeitsspeicher geladen werden können.
- Allgemeine Abfragemuster. Benutzer fragen häufig auf einer Zusammenfassungsebene (nach Monat, nach Region, nach Produktkategorie) und nicht auf der einzelnen Transaktionsebene ab.
- DirectQuery- oder zusammengesetzte Modelle. Die Detaildaten befinden sich in einer externen Quelle, und Roundtripabfragen sind langsam.
Aggregationen funktionieren, indem vorkompilierte Zusammenfassungsdaten in einer Importmodustabelle gespeichert werden, die das Abfragemodul zuerst überprüft. Wenn die Abfrage aus der Aggregation beantwortet werden kann, wird das Ergebnis sofort aus dem Speicher zurückgegeben. Wenn dies nicht der Fall ist, wird die Abfrage an die Detailtabelle weitergeleitet.
Stellen Sie sich Aggregationen wie eine Geschäftsleitungszusammenfassung vor einem langen Bericht vor. Die meisten Leser erhalten das, was sie aus der Zusammenfassung benötigen. Nur diejenigen, die vollständige Details benötigen, lesen das gesamte Dokument.
Arbeiten mit benutzerdefinierten Aggregationen
Benutzerdefinierte Aggregationen ermöglichen Ihnen die vollständige Kontrolle darüber, was zusammengefasst und gespeichert wird. So implementieren Sie sie:
- Erstellen Sie eine Aggregationstabelle. Erstellen Sie in Power Query eine Tabelle, die die Faktentabelle in der gewünschten Körnung zusammenfasst. Fassen Sie z. B. den täglichen Umsatz nach Produktkategorie und Region anstelle einzelner Transaktionen zusammen.
- Konfigurieren Sie die Aggregationszuordnung. Wählen Sie in der Power BI Desktop Modellansicht die Aggregationstabelle aus, und öffnen Sie Aggregationen verwalten. Ordnen Sie jede Spalte der entsprechenden Detailtabellenspalte zu, und geben Sie die Aggregationsfunktion an (Summe, Anzahl, Min, Max, GroupBy).
- Blenden Sie die Aggregationstabelle aus. Aggregationstabellen sollten von Berichtsautoren ausgeblendet werden. Das Abfragemodul verwendet sie automatisch: Benutzer müssen nicht wissen, ob sie vorhanden sind.
- Legen Sie Speichermodi fest. Die Aggregationstabelle verwendet den Importmodus für schnellen In-Memory-Zugriff. Die Detailtabelle verwendet in der Regel DirectQuery, sodass Sie keine Milliarden von Zeilen in den Arbeitsspeicher laden müssen.
Wenn ein visuelles Element Daten abfragt, die dem Korn und der Funktion der Aggregation entsprechen, gibt das Modul das Ergebnis aus der Importtabelle zurück. Wenn die Abfrage eine feinere Granularität erfordert, wird sie ohne Unterbrechung zur DirectQuery-Detailtabelle weitergeleitet.
Hinweis
Benutzerdefinierte Aggregationen erfordern ein zusammengesetztes Modell (Tabellen mit gemischten Speichermodi). Die Aggregationstabelle ist Import, und die Detailtabelle ist DirectQuery. Beide Tabellen benötigen übereinstimmende Beziehungen zu denselben Dimensionstabellen.
Verwenden von automatischen Aggregationen
Automatische Aggregationen vereinfachen diesen Prozess, indem maschinelles Lernen verwendet wird, um zu bestimmen, was zusammengefasst werden soll. Anstatt Aggregationstabellen manuell zu erstellen und zuzuordnen, analysiert Power BI Das Abfrageprotokoll und erstellt, aktualisiert und entfernt Aggregationen basierend auf tatsächlichen Verwendungsmustern automatisch.
So aktivieren Sie automatische Aggregationen:
- Öffnen Sie die Einstellungen des semantischen Modells im Power BI-Dienst.
- Aktivieren sie automatische Aggregationsschulungen.
- Planen Sie eine oder mehrere Aktualisierungen.
Mit dem ersten Schulungs- und Aktualisierungszyklus wertet Power BI das Abfrageprotokoll aus (das sieben Tage mit Abfragedaten speichert) und erstellt In-Memory-Aggregationstabellen. Das System passt sich kontinuierlich an: Wenn sich Abfragemuster ändern, passen sich Aggregationen an, um die am häufigsten angeforderten Zusammenfassungen zu priorisieren.
Automatische Aggregationen haben mehrere Anforderungen:
- Eine Premium-, Premium-pro-Benutzer- oder Fabric-Kapazität
- DirectQuery-Speichermodus für die Tabellen, die Aggregation benötigen
- Unterstützte Datenquellen (Azure SQL-Datenbank, Synapse, Databricks, Snowflake und andere)
Sie können sowohl benutzerdefinierte als auch automatische Aggregationen im selben Modell verwenden. Benutzerdefinierte Aggregationen behandeln bekannte, statische Muster, während sich automatische Aggregationen an das ändernde Abfrageverhalten anpassen.
Überwachen der Aggregationseffektivität
Überprüfen Sie nach der Implementierung von Aggregationen, ob sie verwendet werden:
- Überprüfen Sie den Aktualisierungsverlauf. In den Einstellungen des Modells zeigt das Aktualisierungsprotokoll an, wie viel Arbeitsspeicher der Aggregationscache verwendet und wie viele Abfragen er bearbeitet.
- Verwenden Sie Azure Log Analytics. Wenn Ihre Kapazität mit Azure Log Analytics verbunden ist, können Sie den Prozentsatz der Abfragen analysieren, die von Aggregationen bereitgestellt werden, und Abfragen, die die Datenquelle direkt treffen. Dadurch erhalten Sie eine detaillierte Ansicht der Aggregationstreffraten auf DAX- und SQL-Abfrageebene.
Wenn bei Abfragen die Aggregation fehlt und diese auf DirectQuery zurückgreifen, überprüfen Sie die Abfragemuster. Die Aggregation deckt möglicherweise nicht die Granularität oder die Funktion ab, die Nutzer anfordern.
Aggregationen und Direct Lake
In Microsoft Fabric lesen semantische Modelle, die den Direct Lake-Speichermodus verwenden, direkt aus Delta-Tabellen in OneLake, ohne Daten in den Arbeitsspeicher zu importieren oder DirectQuery-Abfragen zu senden. Direct Lake ist bereits für viele Szenarien schnell, da dadurch der Aufwand für den Datenimport und externe Abfrage-Roundtrips vermieden wird.
Aggregationen können Direct Lake ergänzen, wenn:
- Die zugrunde liegende Delta-Tabelle ist sehr groß, und allgemeine Abfragen benötigen nur Ergebnisse auf Zusammenfassungsebene.
- Sie müssen die Menge der in Spaltensegmente geladenen Daten für häufig abgefragte Muster reduzieren.
Beginnen Sie bei den meisten Direct Lake-Modellen mit dem Testen der Leistung ohne Aggregationen. Fügen Sie sie nur hinzu, wenn die Messung einen klaren Bedarf anzeigt.