MAQL vs. SQL

Trotz ähnlich aufgebauter Syntax und vordefinierten Argumentverweisen, sind MAQL und SQL nicht identisch.

SQL ist eine allgemein verwendbare relationale Datenbanksprache zum Lesen und Schreiben von Daten. MAQL ist multidimensional (siehe MAQL und Multidimensionalität), und Daten werden immer je nach Kontext ausgewertet.

Dieser Bereich beschreibt elementare, jedoch wichtige Unterschiede.

Auf technischer Ebene unterscheidet die GoodData-Plattform, wie Daten in der Datenbank gespeichert werden (physisches Datenmodell) und in welchem Zusammenhang Datenelemente stehen (logisches Datenmodell). Workspace-Entwickler erstellen das logische Datenmodell über eine einfache grafische Benutzeroberfläche. Sobald das Modell in einem Workspace veröffentlicht wird, wird das physische Datenmodell entsprechend erstellt oder aktualisiert.

MAQL vs. SQL

MAQL ermöglicht es Ihnen, komplexe und effektive Berichtsmetriken zu schreiben und das in einem Bruchteil der Zeit im Vergleich zu SQL. Sehen Sie unten:

Wie die folgenden Beispiele zeigen, nutzt MAQL Syntax effektiver als SQL.

Unterschiede bei Datenabfrage

In diesem Bereich sehen Sie die Unterschiede, wie MAQL und SQL bei der Datenabfrage vorgehen.

Angenommen Sie interessieren sich für Verkaufsdaten aus Ihrer Datenbank. Mit SQL würde die Abfrage folgendermaßen lauten:

SELECT SUM(Amount) FROM sales_data;

Ergebnis:

1 000 000

Sie haben Produkte im Wert von $1,000.000 verkauft. Angenommen, Sie müssten nun wissen, wie viele dieser Daten aus dem Verkauf von Schuhen stammen. Mit SQL:

SELECT SUM(amount) FROM sales_data JOIN product_data ON sales_data.product_type_id=product_data.product_type_id WHERE product_data.name = "shoes";

Ergebnis:

500 000

Um zu verstehen, wie diese zweite Abfrage erstellt werden soll, müssen sie folgendes wissen:

  • Tabelle und Spalte als Datenbank-Konzept verstehen.
  • Sich mit relationalem Algebra auskennen.
  • Verstehen, wie und wo Ihre Daten in der Datenbank gespeichert sind, um sie abzufragen.

MAQL geht anders vor. Sie müssen nicht wissen, wie und wo Ihre Daten in der Datenbank gespeichert sind. Das Äquivalent der ersten Abfrage oben lautet bei MAQL folgendermaßen:

SELECT SUM(Amount)

Beachten Sie, dass FROM sales_data nicht notwendig ist. Alle relevanten Summen werden aus der entsprechenden Tabelle in der Datenbank addiert. Über das GoodData-Portal können Sie Abfragen durchführen, ohne genau zu wissen, wie die Daten tatsächlich in der Datenbank gespeichert werden.

Das Äquivalent der zweiten Abfrage oben lautet bei MAQL folgendermaßen:

SELECT SUM(Amount) WHERE Product Type = shoes

Sie müssen sich die Tabellennamen nicht merkenoder Tabellen-Joins herausfinden.

Beispiele

Die folgenden Beispiele zeigen, wie das Erstellen einer Metrik für Gewinn sich unterscheidet, wenn sie mit SQL bzw. mit MAQL geschrieben wird:

Beispiel Wiederverwendbarkeit

SQLMAQL

Einmalige Abfrage

SELECT (SELECT SUM(Cost_of_Shipping) FROM Shipping) + (SELECT SUM(Cost) FROM Campaigns) AS Cost_of_Sales

Wiederverwendbare Metrik

SELECT SUM(Cost of Shipping) + SUM(Cost)

Beispiel für die Kombination mehrere Metriken

SQLMAQL

Einmalige Abfrage

SELECT 100*(1 - ( (SELECT SUM(Cost_of_Shipping) FROM Shipping) + (SELECT SUM(Cost) FROM Campaigns) ) / (SELECT SUM(Amount) FROM Sales) ) AS Net_Profit_Margin

Wiederverwendbare Metrik

SELECT 1 - Cost of Sales/Revenue