Beschleunigen Sie Ihre Anfragen mit Looker Aggregate Awareness

Kevin Marr & Joel McKelvey, Looker Produktmanagement, Google Cloud und Looker Produktmarketing Manager, Google Cloud

11. August 2020

Wenn Sie bei wichtigen Geschäftsentscheidungen auf Daten angewiesen sind, ist es von größter Wichtigkeit, dass Abfragen schnell und effizient abgewickelt werden.

Um hohe Leistung und effiziente Abfragen zu erreichen, verwenden die meisten Analysetools Techniken, die eines gemeinsam haben: die Begrenzung der Größe des abgefragten Datensatzes. Desktop-Analytik-Tools erreichen dies durch die Verwendung von Würfeln oder Datenextrakten. Bei anderen Legacy-Tools bedeutet das Erreichen schnellerer Abfragen, dass die Daten massiv transformiert, formatiert oder in irgendeiner Weise aggregiert werden müssen. Bestimmte Systeme sind so konzipiert, dass sie Daten in Teilmengen aufteilen und indexieren und somit bei der Ausführung einer Abfrage nur auf diese Teilmenge zurückgreifen.

Während es sich hierbei um großartige Strategien handelt, um langsamere Datenbanken oder ältere Datentools vor Überlastung zu schützen, sind diese Ansätze im Umgang mit den Daten der meisten Unternehmen auch fehlerbehaftet. Datenextrakte können veralten und sind schwer zu verwalten. Die Erstellung von Teilmengen von Daten und komplexe Transformationen sind kompliziert, ressourcenintensiv und fehleranfällig. Und beim Umgang mit extrahierten Daten wird die Granularität eliminiert, und Analysten verlieren ihre Fähigkeit, die Daten für tiefere Einblicke aufzuschlüsseln.

Moderne Datenbanken lösen aufgrund ihrer geringen Kosten und ihrer einfachen Skalierbarkeit viele der Performance-Probleme. Die Nutzung einer modernen Datenbank mit einer In-Database-Analytik-Architektur, wie die von Looker, kann die Probleme mit veralteten und in Silos gespeicherten Daten lösen, Extrakte eliminieren und den Bedarf an transformationslastigen Datenpipelines reduzieren. Aber wie sieht es mit der Abfrageleistung aus? Wie schnell und effizient können Abfragen sein, wenn der gesamte Datenbestand zur Laufzeit der Abfrage verarbeitet werden muss?

Looker bietet hohe Leistung und hocheffiziente Abfragen durch Nutzung von Aggregate Awareness. Wie bei früheren Ansätzen können die Datenteams dank Aggregate Awareness die Menge der abgefragten Daten begrenzen – sie vermeiden jedoch die Fallstricke, die mit Datenextrakten verbunden sind und die für Analystenteams so problembehaftet sein können.

Mit Aggregate Awareness kann der Looker-Modellierer Aggregationen in der eigenen Datenbank des Benutzers materialisieren und dann bevorzugt diese materialisierte Sicht als die Daten verwenden, gegen die er nachfolgende Abfragen durchführen kann. Diese materialisierten Sichten (Aggregat-Tabellen) enthalten weniger Datenzeilen und liefern daher schneller Ergebnisse als eine typische Abfrage. Und da Aggregat-Tabellen auf Live-Daten basieren, können sie so definiert werden, dass sie sich automatisch in jeder erforderlichen Frequenz aktualisieren. Wenn es um die Verwaltung von Aggregaten in anderen Tools geht, kann dies ein schwieriges Unterfangen sein. Aber mit Looker werden Elemente wie Ablauflogik, Aktualisierung/Neuaufbau und referentielle Integrität mit dem Modell automatisch für Sie verwaltet – ein Ansatz, der einzigartig bei Looker ist.

Es ist auch wichtig zu wissen, dass Aggregate Awareness Abfragen nicht auf die Daten in der Aggregat-Tabelle beschränkt. Looker kann automatisch frische Daten in Ihrer Aggregat-Tabelle vereinigen (UNION) und dabei nach Möglichkeit das Aggregat verwenden und eventuelle Lücken nach Bedarf mit nicht aggregierten Daten füllen. Beispielsweise können Sie ein Aggregat haben, das Vertriebsdaten für den Vormonat enthält. Dieses Aggregat wird die neuesten Daten nicht enthalten, da es zum Ende des letzten Monats erstellt wurde und keine Daten für den laufenden Monat enthält. Looker kann dennoch die Aggregat-Tabelle verwenden, um eine Abfrage zu beschleunigen, die sowohl die Daten des aktuellen als auch die des Vormonats enthält, indem es die Daten der Aggregat-Tabelle mittels des Abfragetyps  UNION mit den neuesten Ergebnissen vereinigt. Mit dieser vereinheitlichten Antwort erhalten Sie die Leistung und Effizienz eines Aggregats mit der Vollständigkeit des kompletten Datensatzes.

Aggregat-Tabellen werden mit dem Parameter aggregate_table in LookML definiert. Einmal definiert, wird die Aggregat-Tabelle in Ihrer Datenbank gespeichert, ähnlich wie eine Persistent Derived Table (PDT, persistente abgeleitete Tabelle). Sie können Aggregate automatisch generieren, was die Entwicklung so einfach wie ein Kopieren und Einfügen macht. Tabellen können auch manuell definiert werden. Nachstehend finden Sie ein Beispiel für LookML-Code mit einer definierten Tabelle namens sales_monthly, die zur Aggregation von Vertriebsdaten eines Monats dient.


explore: orders {
    label: "Sales Totals" 
    aggregate_table: sales_monthly {
        materialization: {
            datagroup_trigger: orders_datagroup
        } 
        query: {
            dimensions: [created_month] 
            measures: [order_items.total_sales]
            timezone: America/Los_Angeles
        }
    } 
    # other explore parameters
}

Die Möglichkeit, Aggregate Awareness zu nutzen, hängt von dem Datenbankdialekt ab, den Ihre Looker-Verbindung verwendet. Die aktuellen Dialekte, die Aggregate Awareness unterstützen, finden Sie in unserer Dokumentation hier.

Wenn Sie Looker im Entwicklungsmodus verwenden, können Sie testen, welche Daten abgefragt werden und ob Ihre Aggregat-Tabellen verwendet werden, indem Sie Abfragen auf Ihrem Explore ausführen. Dies kann Ihnen helfen, Aggregate zu entwerfen, die die häufigsten Abfragen verbessern und die Abfragezeit und -kosten reduzieren.

Erfahren Sie anhand unserer Looker-Dokumentation mehr darüber, wie Aggregate Awareness Ihre eigene Abfrageleistung verbessern und die Anzahl der Zeilen reduzieren kann, die Ihre Benutzer jedes Mal abfragen.

Weiter Zurück

Für die neuesten Beiträge abonnieren