- Λήψη συνδέσμου
- X
- Ηλεκτρονικό ταχυδρομείο
- Άλλες εφαρμογές
- Λήψη συνδέσμου
- X
- Ηλεκτρονικό ταχυδρομείο
- Άλλες εφαρμογές
M Query vs DAX: Πού σταματά το ένα και πού ξεκινά το άλλο;
Όποιος έχει περάσει αρκετές ώρες μέσα στο Power BI, σίγουρα έχει αναρωτηθεί: "Να το κάνω στο Power Query ή με DAX;" Είναι από τις πιο συχνές ερωτήσεις — και δεν υπάρχει πάντα μια ξεκάθαρη απάντηση.
Σε αυτή την ανάρτηση, επιχειρώ να φωτίσω τη διαφορά ανάμεσα σε M και DAX, αλλά και να καταλήξουμε μαζί στους χρυσούς κανόνες επιλογής.
🔧 Τι είναι το M (Power Query)?
Το M (ή Power Query Formula Language) είναι η γλώσσα που χρησιμοποιείται στο Power Query editor. Εστιάζει στην **προεπεξεργασία των δεδομένων** — καθαρισμό, μετασχηματισμό και φόρτωση.
- Αφορά τη φάση ETL (Extract-Transform-Load).
- Εκτελείται **πριν** από τη δημιουργία του μοντέλου δεδομένων.
- Είναι πιο procedural και step-based.
📌 Παράδειγμα:
= Table.RemoveColumns(#"Previous Step",{"UnnecessaryColumn"})
🧠 Τι είναι το DAX;
Το DAX (Data Analysis Expressions) είναι μια γλώσσα υπολογισμών και ερωτημάτων. Εστιάζει στην **ανάλυση, τη μέτρηση και τη μοντελοποίηση**.
- Εκτελείται **μετά** το data model.
- Χρησιμοποιείται για δημιουργία μετρήσεων (measures), υπολογιστικών στηλών, KPIs κ.α.
- Είναι context-sensitive: row context, filter context κ.λπ.
📌 Παράδειγμα:
Total Sales = SUM(Sales[Amount])
📊 Πότε να χρησιμοποιήσεις το Power Query (M);
➡️ Όταν θέλεις να:
- Καθαρίσεις ή μετασχηματίσεις δεδομένα (null values, split columns, pivot/unpivot)
- Φιλτράρεις rows ή αφαιρέσεις columns **μόνιμα** από το dataset
- Δουλέψεις με raw data πριν το φέρεις στο model
- Συγχωνεύσεις ή ενώσεις πίνακες (merge, append)
✔️ Tip: Ό,τι μπορεί να γίνει upstream, κάν’ το εκεί. Το μοντέλο σου θα σε ευγνωμονεί!
📐 Πότε να χρησιμοποιήσεις DAX;
➡️ Όταν θέλεις να:
- Υπολογίσεις metrics και KPIs (π.χ. ποσοστά, συσσωρευτικά, συγκρίσεις)
- Ελέγξεις context με IF / SWITCH / CALCULATE
- Φτιάξεις δυναμικά visualizations βάσει user interaction
- Δουλέψεις με Time Intelligence (YTD, MTD, SAMEPERIODLASTYEAR κ.λπ.)
✔️ Tip: Αν θες “πώς βλέπει το χρήστης τα δεδομένα”, τότε μάλλον DAX. Αν θες “πώς να τα φέρεις και να τα ετοιμάσεις”, τότε Power Query.
🏁 Οι Χρυσοί Κανόνες Επιλογής
- 🔹 Transform once → Use M: Μετασχηματισμοί που δεν αλλάζουν συχνά = upstream στο Power Query.
- 🔹 Analysis flexibly → Use DAX: Υπολογισμοί που αλλάζουν συχνά (π.χ. based on filters) = downstream με DAX.
- 🔹 Model size matters: Ό,τι μπορείς να κάνεις στο M, ελαφρύνει το μοντέλο σου.
- 🔹 Performance > Convenience: Αν κάτι "τρέχει βαριά" σε DAX, σκέψου μήπως μεταφερθεί στο Power Query.
🧩 Και όταν M & DAX δεν φτάνουν;
Αν και το Power BI είναι πανίσχυρο, υπάρχουν περιπτώσεις που χρειάζεσαι πιο ειδικά εργαλεία για optimization ή προεπεξεργασία:
- ⚙️ SQL views: Προ-φιλτράρεις και μοντελοποιείς δεδομένα στο ίδιο το RDBMS.
- 🐍 Python scripts: Για πιο εξελιγμένες προεπεξεργασίες ή machine learning μετασχηματισμούς.
Το σωστό εργαλείο, για τη σωστή δουλειά. Και το σωστό timing, για τη σωστή απόδοση.
💬 Τι χρησιμοποιείς περισσότερο; M ή DAX;
Προτιμάς να φτιάχνεις "έξυπνα" queries στο Power Query ή να παίζεις με το context μέσω DAX; Έχεις κάποιο αγαπημένο trick ή ιστορία αποδοτικότητας που θες να μοιραστείς;
📥 Άφησε σχόλιο ή στείλε μου μήνυμα — θα χαρώ να το ενσωματώσω σε επόμενο post!

Σχόλια
Δημοσίευση σχολίου