MAQL et SQL
Malgré des ressemblances dans la construction de la syntaxe et les références d’argument prédéfinies, MAQL est différent de SQL.
SQL est un langage de bases de données relationnelles général pour la lecture et l’écriture de données. MAQL est multidimensionnel (consultez MAQL et multidimensionnalité) et les données sont toujours évaluées en fonction du contexte.
La section suivante présente des différences élémentaires mais importantes entre les deux langages.
Au niveau technique, la plateforme GoodData sépare la façon dont les données sont stockées dans la base de données (modèle de données physique) de la façon dont les objets de données sont liés les uns aux autres (modèle de données logique). Les développeurs d’espace de travail créent le modèle de données logique sur une interface graphique intuitive et quand le modèle est publié dans un espace de travail, le modèle de données physique est créé ou modifié en conséquence.
MAQL et SQL
MAQL vous permet d’écrire des métriques de rapport complexes et performantes beaucoup plus rapidement qu’avec SQL. Voyez ci-dessous :
Comme vous allez le voir dans les exemples ci-dessous, l’utilisation de la syntaxe de MAQL est plus performante que SQL.
Différences lors de la requête de données
Dans cette section, vous allez explorer les différences d’approche entre MAQL et SQL en matière de requête de données.
Supposons que vous êtes intéressé par les données de ventes de votre base de données. Avec SQL, la requête pourrait être la suivante :
SELECT SUM(Amount) FROM sales_data;
Le résultat est :
1 000 000
Vous avez vendu 1 000 000 $ de produits. Supposons maintenant que vous voulez savoir quelle fraction de ces données est générée par des ventes de chaussures. Avec 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";
Le résultat est :
500 000
Pour comprendre comment construire cette deuxième requête, vous devez :
- comprendre les concepts de tables et colonnes dans des bases de données,
- connaître les bases de l’algèbre relationnelle,
- comprendre comment et où vos données sont stockées dans la base de données pour effectuer une requête.
MAQL utilise une autre approche. Vous n’avez pas besoin de savoir où et comment vos données sont stockées. L’équivalent de la première requête plus haut est la suivante avec MAQL :
SELECT SUM(Amount)
Remarquez que FROM sales_data n’est pas nécessaire. Tous les montants concernés sont additionnés à partir de la table correspondante dans la banque de données. Avec le portail GoodData, vous pouvez effectuer des requêtes sans savoir exactement comment les données sont stockées dans la base de données.
L’équivalent de la deuxième requête avec MAQL est ce qui suit :
SELECT SUM(Amount) WHERE Product Type = shoes
Vous n’avez pas besoin de vous souvenir de noms de tables ni de jointures de tables.
Exemples
Les exemples suivants montrent la différence entre l’écriture d’une métrique de profit avec SQL et avec MAQL :
Exemple de réutilisation
SQL | MAQL |
---|---|
Requête unique
| Métrique réutilisable
|
Exemple de combinaison de plusieurs métriques
SQL | MAQL |
---|---|
Requête unique
| Métrique réutilisable
|