MAQL en comparación con SQL

A pesar de las similitudes en la construcción de la sintaxis y las referencias de argumentos predefinidos, MAQL no es lo mismo que SQL.

SQL es un lenguaje de base de datos relacional de uso general para leer y escribir datos. MAQL es multidimensional (vea MAQL y la multidimensionalidad) y los datos siempre se evalúan basándose en el contexto.

Esta sección describe algunas distinciones básicas pero importantes.

En el plano técnico, la plataforma de GoodData separa la forma en que se almacenan los datos en la base de datos (modelo físico de datos) de la forma en que los objetos de datos se relacionan entre sí (modelo lógico de datos). Los desarrolladores de espacios de trabajo crean el modelo lógico de datos mediante una interfaz gráfica sencilla y, cuando el modelo se publica en un espacio de trabajo, el modelo físico de datos se crea o actualiza acorde a él.

MAQL en comparación con SQL

MAQL le permite escribir métricas de informes complejas y potentes en una fracción de tiempo de lo que se tarda con SQL. Eche un vistazo a lo siguiente:

Como verá en los siguientes ejemplos, el uso que MAQL hace de la sintaxis es más eficiente que el de SQL.

Diferencias en la consulta de datos

En esta sección, descubrirá las diferencias entre cómo MAQL y SQL abordan la consulta de datos.

Supongamos que está interesado en los datos de venta de su base de datos. En SQL, la consulta puede ser la siguiente:

SELECT SUM(Amount) FROM sales_data;

Resultados en:

1 000 000

Ha vendido productos por un valor de 1.000.000 $. Ahora supongamos que necesita saber qué cantidad de esos datos se genera por la venta de zapatos. En 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";

Resultados en:

500 000

Para comprender cómo construir esta segunda consulta, debe controlar lo siguiente:

  • Comprender las tablas y columnas como conceptos de base de datos.
  • Tener conocimientos de álgebra relacional.
  • Comprender cómo y dónde se almacenan sus datos en la base de datos para poder consultarlos.

MAQL adopta un enfoque diferente. No necesita saber dónde ni cómo se almacenan sus datos. El equivalente en MAQL de la primera consulta de arriba es el siguiente:

SELECT SUM(Amount)

Tengan en cuenta que FROM sales_data no es necesario. Todas las cantidades relevantes se suman desde la tabla correspondiente en el almacén de datos. A través del portal de GoodData, puede ejecutar consultas sin saber los detalles de cómo se almacenan realmente los datos en la base de datos.

El equivalente en MAQL de la primera consulta es el siguiente:

SELECT SUM(Amount) WHERE Product Type = shoes

No hay necesidad de recordar el nombre de las tablas ni de entender las combinaciones.

Ejemplos

Los siguientes ejemplos muestran cómo la creación de una métrica para ganancias difiere cuando se escribe con SQL o MAQL:

Ejemplo de reutilización

SQLMAQL

Consulta única

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

Métrica reusable

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

Ejemplo de combinación de varias métricas

SQLMAQL

Consulta única

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

Métrica reusable

SELECT 1 - Cost of Sales/Revenue