Grzegorz Stolecki

konsultant Business Intelligence, SQL Server, MVP

Wypowiedzi

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie [SSAS 2008] Kostka z wynikami opartymi o tabelę grupującą
    26.07.2012, 14:56

    Nie o to chodzi.

    Tu mamy przykład, gdzie fakt dotyczy sprzedaży jednego towaru, który jest klasyfikowany do kilku grup towarowych. Czyli jeden towar należy do wielu grup, jedna grupa zawiera wiele towarów. Stąd wiele-do-wielu.

    Nie może to być hierarchia grupa-towar bo tutaj jeden towar należy tylko i wyłącznie do jednej grupy.
    Nie mogą to być niezależne wymiary dowiązane do faktu bo w fakcie mamy tylko id towaru. Możemy dodać id grupy - ale znowu - tylko jednej w jednym wierszu.

    Analysis Services ma mechanizm obsługi takiej relacji.

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie Typy raportów - Subiekt GT
    26.07.2012, 14:41

    BTW: ostatnio jest wysyp aplikacji BI obudowanych wokół kontrolek DevExpress.

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie Business Intelligence w temacie Szukam programu do analiz - SubiektGT

    Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Business Intelligence

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie [MSSQL]Duża tabela i sumowanie
    24.07.2012, 13:49

    Można założyć jak najwęższy indeks zawierający tylko pola z kryterium grupowania. Bez warunku filtra i tak będzie skan - ale przynajmniej mniejszej liczby stron.

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie [SSAS 2008] Kostka z wynikami opartymi o tabelę grupującą
    24.07.2012, 13:46

    Jeśli w danych jest relacja wiele-do-wielu to inaczej tego zrobić się prawie nie da. Mówię prawie bo jest jeszcze coś co się nazywa kompresją relacji many-2-many. Polega to na utworzeniu zwykłego wymiaru, którego elementami są wszystkie występujące kombinacje id. Ale to się nadaje do zastosowań gdzie jest mało id i jeszcze mniej ich kombinacji.

    Problem many-2-many jest z odbiorem wyników przez użytkowników - bo widzą coś takiego:

    bułki: 20
    pieczywo: 30
    -
    suma: 30

    Od razu problem, bo widać przecież, że suma jest źle policzona :-)

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie Import plików płaskich w SSIS
    5.07.2012, 12:53

    Może warto zamieścić przykład takiego pliku?

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie Pomoc w napisaniu zapytania
    9.05.2012, 14:50

    Trochę ryzykowne. Jakakolwiek nieciągłość spowoduje przekłamania.

    Ja bym zamienił dwa ostatnie znaki daty na 30 dla 15, na 00 dla 45 i pogrupował po wyniku tej zamiany.

    jakoś tak (piszę bez SSMSa, także mogę kręcić)

    SELECT
    SUM(Dana1),
    SUM(Dana2),
    CASE RIGHT(DataGodzina,2)
    WHEN '15' THEN LEFT(DataGodzina,10)+'30'
    WHEN '45' THEN LEFT(DataGodzina,10)+'00'
    ELSE DataGodzina
    END
    FROM dbo.aaa
    GROUP BY CASE RIGHT(DataGodzina,2)
    WHEN '15' THEN LEFT(DataGodzina,10)+'30'
    WHEN '45' THEN LEFT(DataGodzina,10)+'00'
    ELSE DataGodzina
    END

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie OLAP - sortowanie hierarchi z elementami kalkulowanymi
    9.05.2012, 14:13

    Szczerze nie bardzo rozumiem co zrobiłeś :-)

    Dodałeś element do hierarchii wymiaru? Czy chodzi Ci o pozycję elementu, gdy wyświetlany jest on razem z innymi elementami macierzystej hierarchii?

    Jeśli tak, to masz takie możliwości:
    - użyć klucza do wymuszenia sortowania - trudne, bo trzeba pewnie będzie zmieniać logikę kluczy tabel w DSV. Named Query to załatwi;
    - wstawić element jako normalny wiersz w tabeli wymiaru (w bazie relacyjnej będącej źródłem danych lub w widoku źródła danych poprzez Named Query), wtedy możesz użyć innego atrybutu do sortowania i umieścić go w każdym miejscu, pozostaje tylko dodać formułę - to załatwi SCOPE w skrypcie kalkulacyjnym kostki.

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie The server principal "" is not able to access the...
    9.05.2012, 14:03

    Czy MSDTC działa na obu serwerach?
    Czy zrobiłeś mapowanie na zdalny login?
    Zobacz: http://msdn.microsoft.com/en-us/magazine/cc163891.aspx

    A może użyć replikacji?

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie MDX, calculated measure, pytanie dla specjalistów w...
    16.03.2012, 10:28

    Bałbym się dokładania nowej hierarchii, bo przybędzie kolejna koordynata do obsługi.
    Ten scope to jest jedyny jaki masz zdefiniowany? Bo coś mi się zdaję, że gra tu coś innego.

    Polecałbym przepuszczenie zapytania w MDX Studio. Tam dokładnie da się zobaczyć jakie koordynaty są aktualne dla każdej hierarchii atrybutowej w kostce.

    A z tym niższym ziarnem to może być dobry pomysł. Ja wyznaję zasadę, że wszystko należy liczyć najwcześniej jak się da w kolejności źródło, ETL, Data Source View, skrypt kalkulacyjny, zapytania.

    BTW: przepraszam za opóźnienia, ale ostatnio mam masę pracy...

    pozdrawiamGrzegorz Stolecki edytował(a) ten post dnia 16.03.12 o godzinie 10:30

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie MDX, calculated measure, pytanie dla specjalistów w...
    28.02.2012, 14:09

    Eeee, nie przejmuj się za bardzo treścią MDX generowaną przez Excel'a. Pewnie jeszcze tworzy jakieś set'y w ramach sesji, potem je usuwa. Kiedyś było znacznie gorzej...
    Zapytanie może nie jest optymalne, ale wartości są prawidłowe.

    To co napisałeś o działaniu formuły tylko na pewnym poziomie potwierdza, że dobry może być SCOPE w skrypcie kalkulacyjnym kostki.

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie Jaki program do monitoringu SQL Server?
    23.02.2012, 12:30

    Jeśli mowa o 2008 i nowszych wystarczające może być to co jest w pudełku, czyli Performance Data Collector i raporty zarządcze wywoływane z poziomu Management Studio (opcja Reports --> Standard).

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie MDX, calculated measure, pytanie dla specjalistów w...
    22.02.2012, 16:03

    Podszedłbym do tematu inaczej.
    Jeśli kalkulację [Measures].[Case Equivalent Qty] wrzucimy do MDX Script, to następnie można będzie położyć na niej SCOPE zmieniający sposób obliczania w koordynacie All wymiaru Product, bo tam jest potrzebna agregacja podrzędnych (czyli AGGREGATE) a nie mnożenie. To klasyczny problem wartość = cena * ilość na poziomach wyższych niż liście.

    Piszę tak trochę z pamięci, bo nie mam przed sobą SSAS.

    pozdrawiamGrzegorz Stolecki edytował(a) ten post dnia 22.02.12 o godzinie 16:03

  • Grzegorz Stolecki
    Wpis na grupie Business Intelligence w temacie Jaki front-end BI?

    Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Business Intelligence

  • Grzegorz Stolecki
    Wpis na grupie Business Intelligence w temacie Jaki front-end BI?

    Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Business Intelligence

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie SQL Server nie używa indexu w joinie
    3.01.2012, 00:47

    To nie musi być kwestia złączeń w treści zapytania. Z resztą podzapytanie i tak będzie realizowane jako złączenie. Sprawdziłbym liczności tabel. Jeśli jedna z tabel jest mała, to wykorzystanie indeksu może być nieopłacalne (szczególnie jeśli indeks nie kryje zapytania).
    Sprawdziłbym ilość czytanych stron bazy po narzuceniu indeksu przez podany w tym wątku hint.

    Edit:
    W zapytaniu jest select * więc indeks, o którym mowa pewnie nie jest kryjący. No chyba, że włączono wszystkie kolumny.
    Nie ma też informacji o tym czy tabele są stertami czy indeksami zgrupowanymi.

    PozdrawiamGrzegorz Stolecki edytował(a) ten post dnia 03.01.12 o godzinie 00:51

  • Grzegorz Stolecki
    Wpis na grupie Reporting Services w temacie Proste wprowadzanie danych poprzez raport
    30.12.2011, 18:46

    Teoretycznie się da.
    Tak na gorąco: raport przypięty jest do dataset'a zdefiniowanego jako procedura składowana. Jako parametr do procedury podajemy wybrany element listy (jego id), procedura modyfikuje dane i zwraca listę po modyfikacji (czyli z zaznaczoną nową pozycją).
    Pozostaje jeszcze kwestia zaznaczania pozycji. To się da zrobić poprzez akcje na polach tekstowych listy, które wywołują nasz raport z parametrami odpowiadającymi kolejnym pozycjom.

    Pozdrawiam

    (pisane na iPad, przepraszam za literówki)

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie Testowanie kostek olap.
    10.06.2011, 12:44

    Ja stosuję raporty testowe przygotowane z aplikacji źródłowych. Problemem czasem bywa uzgodnienie kryteriów (czasem wymiary w hurtowni nie odpowiadają systemom źródłowym), czasem same dane - jeśli łączę wiele źródeł.
    Moje definicje raportów testowych uwzględniają takie rzeczy.
    Dobrze jest jeśli kostka OLAP umożliwia tzw. drillthrough czyli wyświetlenie wierszy źródłowych z tabeli faktów składających się na daną komórkę.
    Sprawdzam sumy raportów, sprawdzam sumy częściowe (kontrolując odpowiednią klasyfikację faktów - jeśli się nie zgadza to albo źle działa klasyfikacja faktu - czyli faza ETL, albo zła jest struktura wymiaru - składnik gdzie jest wartość jest źle umieszczony, zaklasyfikowany w wymiarze).
    Żmudna i ciężka robota..

    pozdrawiam

  • Grzegorz Stolecki
    Wpis na grupie SQL Server w temacie Złote myśli
    3.06.2011, 11:12

    komplikacja dedykowanej dla odbiorcy struktury danych jest odwrotnie proporcjonalna do wielkości organizacji tego odbiorcy
    :-)

  • Grzegorz Stolecki
    Wpis na grupie Hurtownie danych w temacie Opinie nt. firm wdrożeniowych
    18.04.2011, 22:16

    mój mały grosik

    Rotacja jest ogromna, chyba to efekt błędnego koła. Dostawca chce wygrać kontrakt, schodzi z ceną, odbiorca to lubi (mimo wszystko cena decyduje, przynajmniej w tych projektach w jakich ja brałem udział, a nie było ich mało), za niską cenę mamy ludzi, którzy dopiero się uczą. Jak się nauczą abo raczej zmęczą, zniechęcą to odchodzą, przychodzą nowi i tak w kółko :|

    pozdrawiam

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do