Przejdź do głównej zawartości

MDX i eksport

Dwie powiązane funkcje dla zaawansowanych: edytor MDX (do pisania zapytań ręcznie lub ręcznego strojenia wyniku workbencha) i opcje eksportu (do wyciągania wyniku do innego narzędzia lub raportu).

Edytor MDX

Za kulisami każde przeciągnięcie i upuszczenie w workbenchu kompiluje się do zapytania MDX — języka zapytań do kostek OLAP. Większość analiz nigdy nie wymaga, byś patrzył na MDX; workbench jest szybszy do typowych przypadków. Ale czasem chcesz:

  • Debugowanie. Zapytanie workbencha zwraca nieoczekiwane liczby i chcesz zobaczyć dokładnie, o co zostało zapytane.
  • Kopiowanie. Inne narzędzie mówi MDX (lub zapisujesz zapytanie do pliku do kontroli wersji).
  • Strojenie ręczne. Workbench daje Ci punkt startowy; Ty dopracowujesz.
  • Rzeczy, których workbench nie wyraża. Niektóre zaawansowane funkcje MDX (nazwane zbiory, sub-kostki, złożone klauzule WITH) nie są wynurzone jako affordance stref upuszczania.

Otwieranie panelu MDX

Kliknij Pokaż MDX na pasku narzędzi. Panel wysuwa się, pokazując bieżące zapytanie jako MDX.

Panel jest domyślnie tylko do odczytu; kliknij Przełącz na MDX, by uczynić zapytanie edytowalnym. Od tego momentu autorzysz MDX bezpośrednio — strefy upuszczania już nie napędzają zapytania. Aby wrócić do trybu workbencha, Przełącz z powrotem porzuca Twoje edycje MDX i odbudowuje ze stref upuszczania.

Jak wygląda MDX

Minimalne zapytanie MDX:

SELECT
{ [Measures].[Revenue] } ON COLUMNS,
{ [Time].[Year].MEMBERS } ON ROWS
FROM [Sales]

To daje Ci tabelę przychodu rok-po-roku — to samo co przeciągnięcie Revenue na Kolumny i Time › Year na Wiersze.

Ciekawszy MDX:

WITH
MEMBER [Measures].[YoY Growth] AS
([Measures].[Revenue], [Time].CURRENTMEMBER) /
([Measures].[Revenue], [Time].CURRENTMEMBER.PREVMEMBER) - 1,
FORMAT_STRING = '0.0%'
SELECT
{ [Measures].[Revenue], [Measures].[YoY Growth] } ON COLUMNS,
{ [Time].[Year].MEMBERS } ON ROWS
FROM [Sales]

To dodaje procent wzrostu rok-do-roku jako miarę obliczaną — workbench mógłby wyprodukować podobny wynik przez okno calculated members, ale napisanie tego jako MDX daje Ci dokładną kontrolę.

Przydatne wzorce MDX

Kilka wzorców wartych poznania:

  • TOPCOUNT(set, n, expression) — top-N po mierze. Np. TOPCOUNT([Customer].[Name].MEMBERS, 10, [Measures].[Revenue]) daje 10 klientów o najwyższym przychodzie.
  • FILTER(set, predicate) — ogranicz zbiór. FILTER([Region].[Name].MEMBERS, [Measures].[Revenue] > 1000000) zatrzymuje tylko regiony z przychodem ponad milion.
  • PARALLELPERIOD — ten sam okres rok temu. Czyściej niż ręczne odejmowanie 1 od poziomu roku.
  • NON EMPTY na zbiorze — wyrzuca wiersze lub kolumny z all-null miarami, ekwiwalent przełącznika Non-Empty workbencha.

Głębsza referencja MDX: dokumentacja MDX Microsoft jest standardem. Mondrian (silnik za Saiku) implementuje większość standardowego MDX z kilkoma dziwactwami udokumentowanymi w upstreamowych dokumentach Mondrian.

Eksport danych

Pasek narzędzi ma trzy przyciski eksportu. Produkują różne rzeczy dla różnych odbiorców.

Eksport do Excel (XLSX)

Co dostajesz: plik .xlsx z tabelą wynikową sformatowaną jako arkusz. Struktura pivota (wiersze, kolumny, sumy) jest zachowana. Wiele miar staje się wieloma kolumnami. Dzieci drillthrough stają się wciętymi wierszami w tym samym arkuszu.

Najlepsze do: przekazania komuś, kto będzie dalej analizował w Excelu, gdzie kształt pivota jest przydatny.

Eksport do CSV

Co dostajesz: zwykły CSV z jednym wierszem na komórkę tabeli wynikowej. Wiersz nagłówka niesie nazwy kolumn. Sumy są wykluczone domyślnie (CSV z mieszanymi wierszami suma + szczegół jest mylące dla parserów downstream).

Najlepsze do: rurkowania do innego narzędzia — skryptu Python, narzędzia BI, hurtowni danych, czegokolwiek, co chce danych tabularycznych.

Eksport do PDF

Co dostajesz: renderowanie PDF bieżącego widoku — tabeli wynikowej ALBO wykresu, w zależności od tego, co pokazane. Wielostronicowe wyjście dla dużych tabel; wykres mieści się na jednej stronie.

Najlepsze do: wklejania do raportu, mailowania jako migawka, archiwizowania konkretnego odkrycia razem z jego wizualną postacią.

Eksport drillthrough

Prawy klik dowolnej komórki w wyniku i wybór Eksportuj drillthrough. To omija agregację kostki całkowicie i eksportuje surowe wiersze tabeli faktów leżące pod tą jedną komórką. Przydatne, gdy ktoś kwestionuje liczbę, a Ty chcesz mu wysłać bazowe rekordy.

Eksporty drillthrough są tylko CSV, celowo — surowe wiersze nie mają struktury pivota do zachowania.

Kiedy używać którego eksportu

  • CSV, gdy dane idą gdzieś indziej do dalszego przetwarzania.
  • Excel, gdy człowiek będzie dalej pracował z danymi w Excelu.
  • PDF, gdy wyjście to ostateczny deliverable — migawka do raportu, załącznik mailowy, share-out z share-screena.
  • Drillthrough, gdy potrzebujesz bazowych wierszy za konkretną zagregowaną liczbą.

Uwaga o limitach wierszy

Saiku nie ogranicza sztucznie rozmiaru eksportu, ale bazowe zapytanie hurtowni musi się skompletować. Drillthrough na milion wierszy chwilę zajmuje wykonanie i chwilę pobieranie. Jeśli rutynowo eksportujesz setki tysięcy wierszy, rozważ, czy agregacja kostki robi to, co powinna — cały sens OLAP to podsumowywanie, nie zrzucanie wierszy.

Co dalej