Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Hurtownia Danych OLAP

Czy zbudowanie od podstaw(!) OLAP-owej hurtowni danych jest trudne?

Pewnie tak - trzeba pobrać dane z różnych źródeł danych, zebrać je w jednej bazie (ETL), następnie je przekształcić do formy przyjaznej do analizy, a potem zaprojektować i wykonać moduł analizy wielowymiarowej OLAP, który oferuje natychmiastowy dostęp do dowolnych wymiarów naszej analizy i umożliwia łatwą eksplorację danych tabelą przestawną.

Spróbujmy!
http://afin.net/webcasts/Demo_DataWarehouseInMOLAP.swf

Streszczenie filmiku:
1. Otwieramy odpowiedni szablon AFIN.NET i dostosowujemy go da naszego zadania (tu: usuwamy niepotrzebne wiersze)

2. Wykonujemy kolejno szereg kwerend, pobierając do arkusze dane z różnych źródeł danych, tu:
1.1. SQL Server (wersja Express, serwer lokalny, dane faktur - 'faktura')
1.2. Access (dane kontrahentów - 'odbiorca')
1.3. Excel (słownik regionów - 'region')
Kwerendy są proste, dla uproszczenia bez żadnych fitrów i uszlachetnień

3. Uruchamiamy program, budujący bazę danych, składającą się z 3 wymienionych wyżej tabel - tu: plik Accessa WorkBase.mdb
Użycie 'stop' zatrzymuje program przed wykonaniem linii, dotyczącej budowy kostki - kostka nie jest jeszcze zaprojektowana.

4. Budujemy kostkę OLAP
4.1. Budujemy kwerendę, składającą dane z trzech tabel do jednej szerokiej tabeli wynikowej (widoku)
4.2. Uruchamiamy Excelowego kreatora modułów danych OLAP (W standardzie Excela od wersji 2000)
4.3. Projektujemy kostkę, najpierw miara, potem wymiary, następnie podajemy, gdzie ma zostać zapisany moduł danych (kostka OLAP, plik CUB) oraz gdzie ma zostać zapisana jego definicja (plik OQY)
Kostka OLAP również jest celowo najprostsza, jak być może: jedna miara, trzy wymiary, prosta hierarchia.

5. Dokonujemy korekt ścieżek - wskazujemy adresy kostki i jej definicji

6. Uruchamiamy cały program

7. Na stworzonej kostce budujemy raport tabeli przestawnej - otwieramy plik CUB pod Excelem

8. W celu pokazania automatyzacji całego procesu, otwieramy na chwilę plik Excela ze źródłową tabelą 'region' i dokonujemy w niej zmian - tu: zmieniamy przyporządkowanie miasta 'Warszawa' do innego regionu - tu: tworzymy nową pozycję słownikową - 'Stolica'

9. Uruchamiamy ponownie program - odświeżamy kostkę oraz odświeżamy tabelę przestawną, gdzie natychmiast pojawia się nowy region.

10. Gotowe. Definicja kostki jest gotowa, kostkę można odświeżać dowolną ilość razy w dowolnym czasie, nawet, gdy raporty z niej są otwarte.

Wnioski:
Budowa procesu ETL - kilka minut, myszką
Projekt kostki OLAP - równie prosto i szybko
Odświeżanie naszej hurtowni - jedno kliknięcie myszą
Odświeżenie raportu - standardowo.

Wydajność:

Proces taki w następujących warunkach:
1. Dane dużej firmy dystrybucyjno-produkcyjnej urządzeń gospodarswa domowego - źródłowy plik tekstowy ok. 1.000.000 wierszy, tj. dane sprzedaży z dokładnością do pozycji faktury
2. Dołączone słowniki - 5 sztuk, hierarchiczne, kilkaset-kilka tysięcy pozycji, format: pliki Excela
3. Z pełnych trzech lat, z dokładnością do dnia
4. Z dokładnością drążenia (drill-down) w kostce do pozycji faktury, czyli bez uproszczeń, ale, oczywiście, ze wszyskimi sumami pośrednimi itp.
5. Tworzona kostka miała 32 MB i działała bardzo sprawnie już pod Excelem XP

... trwał 3 minuty.Wojciech Gardziński edytował(a) ten post dnia 28.08.09 o godzinie 19:57
Robert Woźniak

Robert Woźniak Digital Advisor &
Founder

Temat: Hurtownia Danych OLAP

Wojciech Gardziński:
Czy zbudowanie od podstaw(!) OLAP-owej hurtowni danych jest trudne?

Pewnie tak - trzeba pobrać dane z różnych źródeł danych, zebrać je w jednej bazie (ETL), następnie je przekształcić do formy przyjaznej do analizy, a potem zaprojektować i wykonać moduł analizy wielowymiarowej OLAP, który oferuje natychmiastowy dostęp do dowolnych wymiarów naszej analizy i umożliwia łatwą eksplorację danych tabelą przestawną.

Spróbujmy!
http://afin.net/webcasts/Demo_DataWarehouseInMOLAP.swf

Streszczenie filmiku:
1. Otwieramy odpowiedni szablon AFIN.NET i dostosowujemy go da naszego zadania (tu: usuwamy niepotrzebne wiersze)

2. Wykonujemy kolejno szereg kwerend, pobierając do arkusze dane z różnych źródeł danych, tu:
1.1. SQL Server (wersja Express, serwer lokalny, dane faktur - 'faktura')
1.2. Access (dane kontrahentów - 'odbiorca')
1.3. Excel (słownik regionów - 'region')
Kwerendy są proste, dla uproszczenia bez żadnych fitrów i uszlachetnień

3. Uruchamiamy program, budujący bazę danych, składającą się z 3 wymienionych wyżej tabel - tu: plik Accessa WorkBase.mdb
Użycie 'stop' zatrzymuje program przed wykonaniem linii, dotyczącej budowy kostki - kostka nie jest jeszcze zaprojektowana.

4. Budujemy kostkę OLAP
4.1. Budujemy kwerendę, składającą dane z trzech tabel do jednej szerokiej tabeli wynikowej (widoku)
4.2. Uruchamiamy Excelowego kreatora modułów danych OLAP (W standardzie Excela od wersji 2000)
4.3. Projektujemy kostkę, najpierw miara, potem wymiary, następnie podajemy, gdzie ma zostać zapisany moduł danych (kostka OLAP, plik CUB) oraz gdzie ma zostać zapisana jego definicja (plik OQY)
Kostka OLAP również jest celowo najprostsza, jak być może: jedna miara, trzy wymiary, prosta hierarchia.

5. Dokonujemy korekt ścieżek - wskazujemy adresy kostki i jej definicji

6. Uruchamiamy cały program

7. Na stworzonej kostce budujemy raport tabeli przestawnej - otwieramy plik CUB pod Excelem

8. W celu pokazania automatyzacji całego procesu, otwieramy na chwilę plik Excela ze źródłową tabelą 'region' i dokonujemy w niej zmian - tu: zmieniamy przyporządkowanie miasta 'Warszawa' do innego regionu - tu: tworzymy nową pozycję słownikową - 'Stolica'

9. Uruchamiamy ponownie program - odświeżamy kostkę oraz odświeżamy tabelę przestawną, gdzie natychmiast pojawia się nowy region.

10. Gotowe. Definicja kostki jest gotowa, kostkę można odświeżać dowolną ilość razy w dowolnym czasie, nawet, gdy raporty z niej są otwarte.

Wnioski:
Budowa procesu ETL - kilka minut, myszką
Projekt kostki OLAP - równie prosto i szybko
Odświeżanie naszej hurtowni - jedno kliknięcie myszą
Odświeżenie raportu - standardowo.

Wydajność:

Proces taki w następujących warunkach:
1. Dane dużej firmy dystrybucyjno-produkcyjnej urządzeń gospodarswa domowego - źródłowy plik tekstowy ok. 1.000.000 wierszy, tj. dane sprzedaży z dokładnością do pozycji faktury
2. Dołączone słowniki - 5 sztuk, hierarchiczne, kilkaset-kilka tysięcy pozycji, format: pliki Excela
3. Z pełnych trzech lat, z dokładnością do dnia
4. Z dokładnością drążenia (drill-down) w kostce do pozycji faktury, czyli bez uproszczeń, ale, oczywiście, ze wszyskimi sumami pośrednimi itp.
5. Tworzona kostka miała 32 MB i działała bardzo sprawnie już pod Excelem XP

... trwał 3 minuty.Wojciech Gardziński edytował(a) ten post dnia 28.08.09 o godzinie 19:57


Echh ... tak czytam sobie Pana wypowiedzi na temat "super" produktu jakim jest excel i normalnie niedługo będzie to "perpetum mobile" :)
Tak poważnie, to już kiedyś mówiłem, że "jak coś jest do wszystkiego, to jest do niczego" :) i nadal będę się tego trzymał ... do excela ma się to tak, że ma on swoje miejsce w historii informatyki, zarówno tej przeszłej, teraźniejsze i oczywiście przyszłej! Jednak, jeżeli piszę Pan, że tworzy Pan hurtownie danych to proszę napisać dokładniej co Pan tworzy, jaka to hurtownia (wg. jakiej koncepcji i jakiego modelu) i do czego będzie nam/odbiorcom służyć.

To zacznijmy od początku:
1. Róże źródła danych ... co to ETL, który pobiera dane jednego dostawcy (wszystko to microsoft), a co w przypadku gdy potrzeba pobrać dane z systemu finansowego (FIKS, SAP, Axapta itd itd), systemów logisycznych (często systemy dosowe), CRM (często Lotus), gdzie tu algorytmy mapujące, czyszczące, które "powodują pewną, określoną" spójność danych?

2. Budowa kostki danych ... echh chciałbym aby tak łatwo tworzyło się kostki :) ... tutaj zastosowane zostało proste podejście, wszystko zdenormalizujmy do jednego zbioru danych (w tym przypadku widoku), a co w przypadku bardziej skomplikowanych połączeń pomiędz wymiarami i faktami (wiele do wielu itd)?

3. Model ... pisze Pan, że jest 1 mln rekordów, ale jaka jest ziarnistość samej kostki? Jak liczne są wymiary? (np. wymiaru faktur, klientów, produktów itd.) Czy możliwa jest analiza do poziomu faktury, a nawet jej pozycji? Czy możliwe jest używanie kostki do raportów operacyjnych (np. wydruk klientów oraz ich faktur). Jaki rozmiar ma plik (kostka) CUBE, który Pan stworzył, jaki będzie przyrost danych dla tego pliku.

4. Utrzymanie rozwiązanie ... w jaki sposób utrzymywać politykę bezpieczeństwa na danych w takiej hurtowni/kostce OLAP?

5. Rozwój ... jak wyglądałoby dodanie nowych wymiarów, miar lub hierarchii w takiej hurtowni?

Podsumowując: Excel jest używany dość często jako narzędzie do analiz i jest w tym bardzo dobry, posiada również możliwość składowania danych do owych analiz. Jak by Pan napisał, że pokazuje Pan jak zbudować "data mart" do analiz to wtedy bym nic nie powiedział. Pan, jednak użył słów "OLAP-owa hurtownia danych", a to do czegoś zobowiązuje, bo to jednak jest hurtownia danych. Kostka OLAP, teoretycznie jest hurtownią danych, bo składuje dane w strukturze wielowymiarowej. Jednak w praktyce obejmuje jeden obszar tematyczny.
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Hurtownia Danych OLAP

Dziękuję!
Wreszcie ktoś zadaje Pytania, przez duże "P".

Organizacyjnie: Nie mogę odpowiadać "cytowaniem" bo się zakałapućkamy.

"Jednak, jeżeli piszę Pan, że tworzy Pan hurtownie danych to proszę napisać dokładniej co Pan tworzy, jaka to hurtownia (wg. jakiej koncepcji i jakiego modelu) i do czego będzie nam/odbiorcom służyć."
Proszę Pana, nie wiem, wg jakiej koncepcji i wg jakiego modelu :). Ale wiem do czego służą: DO ANALIZ W EXCELU

"1. Róże źródła danych ... co to ETL, który pobiera dane jednego dostawcy (wszystko to microsoft), a co w przypadku gdy potrzeba pobrać dane z systemu finansowego (FIKS, SAP, Axapta itd itd), systemów logisycznych (często systemy dosowe), CRM (często Lotus), gdzie tu algorytmy mapujące, czyszczące, które "powodują pewną, określoną" spójność danych?"
REWELACYJNE PYTANIE!
Pokazuję na tych bazach, które mam lokalnie, bo cóż to za pokazywanie teoryjek.
Jak Pan widział na filmikach, bazę definiuje się "Providerem", jak jest dostępny i już, działa. Gdzieś tam na którymś z filmików jest MySQL (taki dowód, że nie tylko MS)
Co do różnych systemów finansowych. KLUCZOWE pytanie!
Robimy to tak:
Jeżeli ten system (jakikolwiek) potrafi dać czytelną (przez te Providery) tabelkę lub tabelki - to z nich.
Jeżeli nie potrafi lub nie chce, to na pewno robi jakieś wydruki.
I tu zaś rozróżnienie:
jeżeli są to wydruki czytelne przez ODBC - to z nich
Jeżeli nie, np. teksty hierarchiczne, zawinięte, wydruki "jak na drukarkę" to mamy specjalne narzędzie do odczarowywania tego. nazywa się AFIN.NET.TextConverter (wbudowane w AFIN.NET)
Przyznam się Panu, że w jednej firmie (ale niech Pan tego nie publikuje, bo to obciach), bardzo dużej firmie, która się po prostu nie potrafiła dogadać ze swoim dostawcą systemu FK, robiliśmy to... (nie, to wstyd!) ... z plików HTML (bo tenże system był tak ultranowoczesny, że wszystkie raporty robił do HTMLa. Po prostu - czad. Ale miało wadę - działało 5 bitych LAT.
Wniosek: jak nie kijem, to pałką. Wszystkie systemy są dostępne.

"2. Budowa kostki danych ... echh chciałbym aby tak łatwo tworzyło się kostki :) ... tutaj zastosowane zostało proste podejście, wszystko zdenormalizujmy do jednego zbioru danych (w tym przypadku widoku), a co w przypadku bardziej skomplikowanych połączeń pomiędz wymiarami i faktami (wiele do wielu itd)?"
Kostki. Oczywiście ma Pan rację - kostki CUB mają duuużo ograniczeń. Ale w prototypie mogą być. resztę dopieszczamy W SQLS AS. Co do logiki kostki: Rozumiem, o co Panu chodzi i wiem, że tak jest. Stosuję uproszczenie, bo jakbym zaczął wydziwiać, to chyba by nikt nie zrozumiał, a o prezentacji danych rzeczywistych nie ma mowy z wiadomych przyczyn.

"3. Model ... pisze Pan, że jest 1 mln rekordów, ale jaka jest ziarnistość samej kostki? Jak liczne są wymiary? (np. wymiaru faktur, klientów, produktów itd.) Czy możliwa jest analiza do poziomu faktury, a nawet jej pozycji? Czy możliwe jest używanie kostki do raportów operacyjnych (np. wydruk klientów oraz ich faktur). Jaki rozmiar ma plik (kostka) CUBE, który Pan stworzył, jaki będzie przyrost danych dla tego pliku."
Przecież jest to napisane w akapicie "Wydajność"

"4. Utrzymanie rozwiązanie ... w jaki sposób utrzymywać politykę bezpieczeństwa na danych w takiej hurtowni/kostce OLAP?"
Polityki bezpieczeństwa nie ma dla prototypów, a ci, którzy to używają jako rozwiązanie produkcyjne, robią zabezpieczenia na poziomie systemu plików. Działa.

"5. Rozwój ... jak wyglądałoby dodanie nowych wymiarów, miar lub hierarchii w takiej hurtowni?"
No... prościej niż w SQLS AS. Dodaje się pole lub tabelę w SQLku, potem definiuje się kostkę od nowa, sprawdza się, czy dorba i implementuje w SQLS AS. Nie wiem, co tu dodać.

Myślę, że odpowiedziałem. Oczywiście, zbudowany pana pytaniem i dociekliwością, wyjaśnię wszystkie niejasności.
Robert Woźniak

Robert Woźniak Digital Advisor &
Founder

Temat: Hurtownia Danych OLAP

Dziękuję za odpowiedź ... hm czy wyczerpująca .. raczej tego tutaj nie wyczerpiemy, no chyba, że zechcemy ale to będzie gotowe studium przypadków użycia tego rozwiązania.
Co do Wydajności, to mój błąd, nie przesunąłem myszką na dól .. nie było pytania.
Kiedyś używałem takiego rozwiązania w postaci plików cube ale jako udostępniane (w wydzielonym zasobie dyskowym) raporty analityczne ... sprawdzało się do małych analiz (problemem rozmiar kostki i łącze). Duże pliki nie mają racji bytu na dysku klienckim. Jak Pan rozwiązuje problem udostępniania takich analiz?

Co do ETL'a, to z tego co rozumiem, wszystko trzeba pisać (developować). Jednak chyba z czystym sumieniem nie polecił by Pan tego rozwiązania jako narzędzia ETL z prawdziwego zdarzenia (dziwi mnie, że Pan nie podsyła gotowego SSIS'a, który jest przecież w pakiecie z bazą MS SQL Server'a). ETL to mój konik (OLAP i HD zresztą też) i jednak nie dam się przekonać aby to narzędzie miało być ETLem. Oczywiście "teoretycznie" pobiera dane, bo ma providery ale nie posiada przejrzystego interfejsu, możliwości działania równoległego procesów, czyszczenia danych, kontrolą przepływu danych itd itd.

Jeszcze odnośnie plików Cube, jest to sposób zapisu danych w trybie offline. Zawsze można inaczej, tworzymy HD i na tym bazę wielowymiarową, a pliki Cube tworzymy skryptem (MDX i VB) i udostępniamy userom końcowym. Nadal mamy excela i nadal technologię Microsoft.

Dla mnie to co Pan przedstawia jest fajne ale jako aplikacja do analiz w wybranych obszarach. Jako pewien sposób udostępnianych danych np. z korporacyjnej hurtowni danych. Można również używać w przypadku średnich i małych firm jako alternatywa przy wdrożeniu korporacyjnej hurtowni danych.

Kończąc, jeżeli Pan chce to możemy przejść takie studium przypadków i zastosowań tego narzędzia. :)
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Hurtownia Danych OLAP

Jak Pan rozwiązuje problem udostępniania takich analiz?
Hmm, coraz lepsze te Pana pytania. Boję się następnej rundy ;)

"Jak Pan rozwiązuje problem udostępniania takich analiz?"
Szczerze? Najprościej, jak można. Jeżeli jest to kilka osób, a sieć jest wydajna, to korzystają z 1 cuba. Jeżeli cokolwiek jest nie tak, to ostatnia komenda z tego "DTS"a po prostu żywcem kopiuje kostki na końcówki klienckie. Ponieważ jest to programowo, każdy ma zawsze to samo. To wbrew pozorom dość wygodne (choć, oczywiście, z teorią się kłóci), bo cub ma max. kilka MB

"Co do ETL'a, to z tego co rozumiem, wszystko trzeba pisać (developować)"
Albo nagrać Query i poprawić ręcznie (bardzo wygodne i szybkie)
Ale zaletą tego jest to, że komórki Excela można parametryzować, czyli umieszczać parametr w osobnej kolumnie, odpowiednio zbudować formułkę i .... ciągnąć w dół myszą (kopiować). W "prawdziwych" edytorach czynności powtarzalne trzeba powtarzalnie programować.

"Jednak chyba z czystym sumieniem nie polecił by Pan tego rozwiązania jako narzędzia ETL z prawdziwego zdarzenia (dziwi mnie, że Pan nie podsyła gotowego SSIS'a, który jest przecież w pakiecie z bazą MS SQL Server'a)."
No pewnie. Ale, przyzna Pan, do prototypu, jak znalazł.(?)

"Jeszcze odnośnie plików Cube, jest to sposób zapisu danych w trybie offline"
Tu taka drobna uwaga, chociaż nie o to Pan pyta. AFIN.NET tak samo sprawnie ciągnie dane z kostek na SQLS AS, nie musi koniecznie z cubów.

"Dla mnie to co Pan przedstawia jest fajne ale jako aplikacja do analiz w wybranych obszarach. Jako pewien sposób udostępnianych danych np. z korporacyjnej hurtowni danych. Można również używać w przypadku średnich i małych firm jako alternatywa przy wdrożeniu korporacyjnej hurtowni danych."
Wie Pan: 1 obszar + 2 obszar = 2 obszary, a jeszcze +1 = 3 obszary.
Trzy kostki "obszarowe" to max 100 MB. I sprawa załatwiona.
Ale Pana uwaga o alternatywie bardzo słuszna. Szczególnie jak się nie można dogadać np. w sprawie cen z dostawcą BI ;)

"Kończąc, jeżeli Pan chce to możemy przejść takie studium przypadków i zastosowań tego narzędzia. :) "
Wchodzę.

Edit: literówki.Wojciech Gardziński edytował(a) ten post dnia 31.08.09 o godzinie 18:51
Tomasz Sawczuk

Tomasz Sawczuk Senior Consultant,
SAP Polska

Temat: Hurtownia Danych OLAP

1 mln rekordów - to było może dużo w czasach denominacji złotego...

A ilu użytkowników może z tego rozwiązania równocześnie korzystać?

Gdzie mogę zapamiętać wynik raportu (w pliku xls?)

A co się stanie gdy ktoś usunie rekord w systemie źródłowym?

A co się stanie gdy ktoś zmieni rekord w systemie źródłowym?Tomasz Sawczuk edytował(a) ten post dnia 30.10.09 o godzinie 19:40

konto usunięte

Temat: Hurtownia Danych OLAP

Tomasz Sawczuk:
A ilu użytkowników może z tego rozwiązania równocześnie korzystać?

a tylu na ile pozwala baza danych - jeżeli ściągamy dane z systemów transakcyjnych
a jak bawimy si plikami cub to chyba każdy ma swój, ale patrz punkt wyżej podczas tworzenia takiego pliku
Gdzie mogę zapamiętać wynik raportu (w pliku xls?)

a do czego chcesz raportować? do pliku txt żeby go później importować do excel-a - zalatuje paranoją
A co się stanie gdy ktoś usunie rekord w systemie źródłowym?

robisz rebuild cub-a, inne systemy analityczne też chyba tak mają
jak raportujesz z bazy to się odsiweża dane
A co się stanie gdy ktoś zmieni rekord w systemie źródłowym?

patrz punkt wyżej

przy okazji nie znasz możliwości excel-a, bo wszystko co tu napisałem excel zrobi jak się go poprosi sam z siebie (fakt czasem trzeba napisać trochę VBA do tego celu), no chyba że masz AFIN-a to VBA odpada

Tomasz Sawczuk edytował(a) ten post dnia
30.10.09 o godzinie 19:40
Janusz Rafał Szpiglewski

Janusz Rafał Szpiglewski
http://www.youtube.c
om/watch?v=uuTpKX82i
-Q

Temat: Hurtownia Danych OLAP

Wojciech Gardziński:
Czy zbudowanie od podstaw(!) OLAP-owej hurtowni danych jest trudne?

Pewnie tak - trzeba pobrać dane z różnych źródeł danych, zebrać je w jednej bazie (ETL), następnie je przekształcić do formy przyjaznej do analizy, a potem zaprojektować i wykonać moduł analizy wielowymiarowej OLAP, który oferuje natychmiastowy dostęp do dowolnych wymiarów naszej analizy i umożliwia łatwą eksplorację danych tabelą przestawną.

Spróbujmy!
http://afin.net/webcasts/Demo_DataWarehouseInMOLAP.swf

Streszczenie filmiku:
1. Otwieramy odpowiedni szablon AFIN.NET i dostosowujemy go da naszego zadania (tu: usuwamy niepotrzebne wiersze)

2. Wykonujemy kolejno szereg kwerend, pobierając do arkusze dane z różnych źródeł danych, tu:
1.1. SQL Server (wersja Express, serwer lokalny, dane faktur - 'faktura')
1.2. Access (dane kontrahentów - 'odbiorca')
1.3. Excel (słownik regionów - 'region')
Kwerendy są proste, dla uproszczenia bez żadnych fitrów i uszlachetnień

3. Uruchamiamy program, budujący bazę danych, składającą się z 3 wymienionych wyżej tabel - tu: plik Accessa WorkBase.mdb
Użycie 'stop' zatrzymuje program przed wykonaniem linii, dotyczącej budowy kostki - kostka nie jest jeszcze zaprojektowana.

4. Budujemy kostkę OLAP
4.1. Budujemy kwerendę, składającą dane z trzech tabel do jednej szerokiej tabeli wynikowej (widoku)
4.2. Uruchamiamy Excelowego kreatora modułów danych OLAP (W standardzie Excela od wersji 2000)
4.3. Projektujemy kostkę, najpierw miara, potem wymiary, następnie podajemy, gdzie ma zostać zapisany moduł danych (kostka OLAP, plik CUB) oraz gdzie ma zostać zapisana jego definicja (plik OQY)
Kostka OLAP również jest celowo najprostsza, jak być może: jedna miara, trzy wymiary, prosta hierarchia.

5. Dokonujemy korekt ścieżek - wskazujemy adresy kostki i jej definicji

6. Uruchamiamy cały program

7. Na stworzonej kostce budujemy raport tabeli przestawnej - otwieramy plik CUB pod Excelem

8. W celu pokazania automatyzacji całego procesu, otwieramy na chwilę plik Excela ze źródłową tabelą 'region' i dokonujemy w niej zmian - tu: zmieniamy przyporządkowanie miasta 'Warszawa' do innego regionu - tu: tworzymy nową pozycję słownikową - 'Stolica'

9. Uruchamiamy ponownie program - odświeżamy kostkę oraz odświeżamy tabelę przestawną, gdzie natychmiast pojawia się nowy region.

10. Gotowe. Definicja kostki jest gotowa, kostkę można odświeżać dowolną ilość razy w dowolnym czasie, nawet, gdy raporty z niej są otwarte.

Wnioski:
Budowa procesu ETL - kilka minut, myszką
Projekt kostki OLAP - równie prosto i szybko
Odświeżanie naszej hurtowni - jedno kliknięcie myszą
Odświeżenie raportu - standardowo.

Wydajność:

Proces taki w następujących warunkach:
1. Dane dużej firmy dystrybucyjno-produkcyjnej urządzeń gospodarswa domowego - źródłowy plik tekstowy ok. 1.000.000 wierszy, tj. dane sprzedaży z dokładnością do pozycji faktury
2. Dołączone słowniki - 5 sztuk, hierarchiczne, kilkaset-kilka tysięcy pozycji, format: pliki Excela
3. Z pełnych trzech lat, z dokładnością do dnia
4. Z dokładnością drążenia (drill-down) w kostce do pozycji faktury, czyli bez uproszczeń, ale, oczywiście, ze wszyskimi sumami pośrednimi itp.
5. Tworzona kostka miała 32 MB i działała bardzo sprawnie już pod Excelem XP

... trwał 3 minuty.Wojciech Gardziński edytował(a) ten post dnia 28.08.09 o godzinie 19:57

Obejrzałem dopiero dziś zlikowanego SWFa.

Chętnie bym zobaczył jakiś konkretny przykład.

Co do powyższego przykładu:

Nie widziałem tam niczego co mógłbym nazwać ETL.

Zobaczyłem raptem 1 miarę i wymiar zdegenerowany (klkuatrybutowy ale zdegenerowany).
I wcale nie trwała tak szybko ta budowa.

Zauważyłem, że podczas budowy hierarchii 1 atrybut (przepraszam kolumnę) można było użyć tylko raz. Czy tak jest zawsze czy można to wyłączyć jakimś checkboxem?
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Hurtownia Danych OLAP

Janusz Rafał Szpiglewski:

Obejrzałem dopiero dziś zlikowanego SWFa.

Chętnie bym zobaczył jakiś konkretny przykład.
To... proszę zrobić. Demo jest pełnofunkcjonalne.
I proszę się pochwalić.
Co do powyższego przykładu:
Nie widziałem tam niczego co mógłbym nazwać ETL.

http://pl.wikipedia.org/wiki/ETL

ETL - narzędzia wspomagające proces pozyskania danych dla hurtowni danych (ang. Extract, transform, and load)

Zadaniem narzędzi jest:

* pozyskanie danych ze źródeł zewnętrznych
* przekształcenie danych
* załadowanie danych do hurtowni danych

Czego nie było?

Lepszy przykład dot. ETL
http://afin.net/webcasts/Demo_ETL1.swf

Zobaczyłem raptem 1 miarę i wymiar zdegenerowany (klkuatrybutowy ale zdegenerowany).
I wcale nie trwała tak szybko ta budowa.
10 minut tego w porównaniu do 3 miesięcy walk informatyków czegoś innego to rzeczywiście długo.
To przykład i prototyp. Oczywiście, że trzeba by tu było 'podopieszczać'. Macie, Panowie Specjaliści, bardzo duże wymagania co do pokazów. Sami robicie miesiącami, a jak ktoś zrobi krócej, to ma to same wady...

Zauważyłem, że podczas budowy hierarchii 1 atrybut (przepraszam kolumnę) można było użyć tylko raz. Czy tak jest zawsze czy można to wyłączyć jakimś checkboxem?
Dobre pytanie! Odpowiedź brzmi: w tym kreatorze tylko raz. Ale zduplikowanie kolumny w danych wejściowych to moment.Wojciech Gardziński edytował(a) ten post dnia 31.10.09 o godzinie 16:46
Janusz Rafał Szpiglewski

Janusz Rafał Szpiglewski
http://www.youtube.c
om/watch?v=uuTpKX82i
-Q

Temat: Hurtownia Danych OLAP

Wojciech Gardziński:
Janusz Rafał Szpiglewski:

Obejrzałem dopiero dziś zlikowanego SWFa.

Chętnie bym zobaczył jakiś konkretny przykład.
To... proszę zrobić. Demo jest pełnofunkcjonalne.
I proszę się pochwalić.

Ok sprubuje zrealizowac jakis projekt z zycia wziety. Nie che od razu negowac czegos czego nie znam. Tyle, że podany przykład mnie do niego niestety nie zachecił.
Co do powyższego przykładu:
Nie widziałem tam niczego co mógłbym nazwać ETL.

http://pl.wikipedia.org/wiki/ETL

ETL - narzędzia wspomagające proces pozyskania danych dla hurtowni danych (ang. Extract, transform, and load)

Zadaniem narzędzi jest:

* pozyskanie danych ze źródeł zewnętrznych
* przekształcenie danych
* załadowanie danych do hurtowni danych

Czego nie było?

Przykład pokazywał jedynie extraxt i load i to nie hurtowni tylko raczej warstwy staging :).

Co gdy brakuje danych słownikowaych, co z obsługą takich błędów?
Co z wersjonowaniem, slowly changing dimension itp?

Lepszy przykład dot. ETL
http://afin.net/webcasts/Demo_ETL1.swf

Zobaczyłem raptem 1 miarę i wymiar zdegenerowany (klkuatrybutowy ale zdegenerowany).
I wcale nie trwała tak szybko ta budowa.
10 minut tego w porównaniu do 3 miesięcy walk informatyków czegoś innego to rzeczywiście długo.
To przykład i prototyp. Oczywiście, że trzeba by tu było 'podopieszczać'. Macie, Panowie Specjaliści, bardzo duże wymagania co do pokazów. Sami robicie miesiącami, a jak ktoś zrobi krócej, to ma to same wady...

3 miesiące walk informatyków z tożsamym przykładem 1:1?
No cóż:
- albo wymaganie postawione informatykom nie było zgodne 1:1 z przykładem.
- albo gratuluje specjalistów:)

Zauważyłem, że podczas budowy hierarchii 1 atrybut (przepraszam kolumnę) można było użyć tylko raz. Czy tak jest zawsze czy można to wyłączyć jakimś checkboxem?
Dobre pytanie! Odpowiedź brzmi: w tym kreatorze tylko raz. Ale zduplikowanie kolumny w danych wejściowych to moment.

Tak ale to jest obejście. Zaraz sie okazuje, ze potrzebujemy tej kolumny cześciej i mamy przykładowo Region1, Region2,.....,RegionN.

Wojciech Gardziński edytował(a) ten post dnia
31.10.09 o godzinie 16:46
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Hurtownia Danych OLAP

Ok sprubuje zrealizowac jakis projekt z zycia wziety. Nie che od razu negowac czegos czego nie znam.
To miło. Inni specjaliści BI byli niestety od Pana lepsi. Wszyscy negowali od razu.
Tyle, że podany przykład mnie do niego niestety nie zachecił.
Wysokie wymagania. Ja tu pokazuję, że można zrobić. Trudno tu pokazać (żeby ktoś zrozumiał) jakąś 'produkcyjkę'
Przykład pokazywał jedynie extraxt i load i to nie hurtowni tylko raczej warstwy staging :).
Bez przesady. Warstwa pośrednia danych jest. Do produkcyjki jeszcze parę kroków, ale jest.

Co gdy brakuje danych słownikowaych, co z obsługą takich błędów?
Dobre pytanie. Normalnie - kolejny SQLek sprawdza czy słownik kompletny i albo robi jakiś alarm (wpisuje coś coświeci na czerwono w arkuszu 'błędy') albo po prostu wyrzuca liste błędów słownikowych gdzieś tam i użytkownik uzupełnia (Wszystko w Excelu, żeby było łatwo(!)
Co z wersjonowaniem, slowly changing dimension itp?
Wersjonowanie? Kostka20091001.cub, Kostka20091002.cub,...

3 miesiące walk informatyków z tożsamym przykładem 1:1?
No cóż:
- albo wymaganie postawione informatykom nie było zgodne 1:1 z przykładem.
- albo gratuluje specjalistów:)
Ja wiem i Pan wie, że nie z tym przykładem, bo ten jest dziecinny (ale analitycy i tak go nie rozumieją).
I to nie TYLKO jest kwestia jakości specjalistów. To kwestia papierologii, stawiania serwerów, szkolenia panów od strasznie ważnej administracji i zabezpieczeń, kupa ruchów, za które klient NIE CHCE PŁACIĆ, a które WMAWIA MU się, że są NIEZBĘDNE do funkcjonowania hurtowni i że muszą one trwać 3 miesiące.
Ale zduplikowanie kolumny w danych wejściowych to moment.
Tak ale to jest obejście. Zaraz sie okazuje, ze potrzebujemy tej kolumny cześciej i mamy przykładowo Region1, Region2,.....,RegionN.
Nie no, przesada. Zgadzam się że obejście - w następnym poście napisze Pan,że to KLUCZOWA funkcjonalność HD. Duplikację 50 pól robi się 5 sekund (I Pan to wie)

Panie Januszu, gratuluję dociekliwości. Pzdr.
Janusz Rafał Szpiglewski

Janusz Rafał Szpiglewski
http://www.youtube.c
om/watch?v=uuTpKX82i
-Q

Temat: Hurtownia Danych OLAP

Wojciech Gardziński:

To miło. Inni specjaliści BI byli niestety od Pana lepsi. Wszyscy negowali od razu.

I bardzo mozliwe, że mieli racje. Ja mimo iz nie zanegowałem jestem na 99% zanegowania. Jednak tak jak mowie rozwiazania nie znam, moze posiada jakąś ukrytą zaletę zostawiam dlatego 1%.

Wysokie wymagania. Ja tu pokazuję, że można zrobić. Trudno tu pokazać (żeby ktoś zrozumiał) jakąś 'produkcyjkę'
Przykład pokazywał jedynie extraxt i load i to nie hurtowni tylko raczej warstwy staging :).
Bez przesady. Warstwa pośrednia danych jest. Do produkcyjki jeszcze parę kroków, ale jest.

Mowimy o ETL a nie prawie jak ETL.

Co gdy brakuje danych słownikowaych, co z obsługą takich błędów?
Dobre pytanie. Normalnie - kolejny SQLek sprawdza czy słownik kompletny i albo robi jakiś alarm (wpisuje coś coświeci na czerwono w arkuszu 'błędy') albo po prostu wyrzuca liste błędów słownikowych gdzieś tam i użytkownik uzupełnia (Wszystko w Excelu, żeby było łatwo(!)

Właśnie i nalezy dodac sql i nalezy dodac to i tamto i nagle powstaje nam nieczytalna architekrura rozwiazania. (a mialo byc latwo jak w tytule). Rownie dobrze możemy napisać cały skrypt w VBA. Nie o to chodzi.
Co z wersjonowaniem, slowly changing dimension itp?
Wersjonowanie? Kostka20091001.cub, Kostka20091002.cub,...

3 miesiące walk informatyków z tożsamym przykładem 1:1?
No cóż:
- albo wymaganie postawione informatykom nie było zgodne 1:1 z przykładem.
- albo gratuluje specjalistów:)
Ja wiem i Pan wie, że nie z tym przykładem, bo ten jest dziecinny (ale analitycy i tak go nie rozumieją).
I to nie TYLKO jest kwestia jakości specjalistów. To kwestia papierologii, stawiania serwerów, szkolenia panów od strasznie ważnej administracji i zabezpieczeń, kupa ruchów, za które klient NIE CHCE PŁACIĆ, a które WMAWIA MU się, że są NIEZBĘDNE do funkcjonowania hurtowni i że muszą one trwać 3 miesiące.
Ale zduplikowanie kolumny w danych wejściowych to moment.
Tak ale to jest obejście. Zaraz sie okazuje, ze potrzebujemy tej kolumny cześciej i mamy przykładowo Region1, Region2,.....,RegionN.
Nie no, przesada. Zgadzam się że obejście - w następnym poście napisze Pan,że to KLUCZOWA funkcjonalność HD. Duplikację 50 pól robi się 5 sekund (I Pan to wie)

Panie Januszu, gratuluję dociekliwości. Pzdr.

Panie Wojciechu.
Podsumowując.

Czy mówimy o narzędziu, którego funkcjonalność ma komuś słuzyć?

Czy mowimy o narzędziu, którego funkcjonalność musimy obchodzić by dopiero wtedy komus to narzedzie służyło?

Pozdrawiam.
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Hurtownia Danych OLAP

Janusz Rafał Szpiglewski:
I bardzo mozliwe, że mieli racje. Ja mimo iz nie zanegowałem jestem na 99% zanegowania. Jednak tak jak mowie rozwiazania nie znam, moze posiada jakąś ukrytą zaletę zostawiam dlatego 1%.
No, wreszcie mówi Pan jak klasyczny Specjalista BI ;)
(To żart, widzę różnicę.)
Bez przesady. Warstwa pośrednia danych jest. Do produkcyjki jeszcze parę kroków, ale jest.

Mowimy o ETL a nie prawie jak ETL.
Ależ tu tez może być 100, 200, 1000 linii programu, mogą robić najróżniejsze rzeczy: uruchamiać się o, kopiować tu i tam, kasować, przerabiać uszlachetniać dane, kontrolować słowniki, co tam się chce. A to, że sa ZAPISANE w tym czy w tamtym naprawdę nie 'robi różnicy'. Mówimy o ETL, tylko, ze w skali 'do...' albo jako prototyp docelowego rozwiązania.
Właśnie i nalezy dodac sql i nalezy dodac to i tamto i nagle powstaje nam nieczytalna architekrura rozwiazania. (a mialo byc latwo jak w tytule). Rownie dobrze możemy napisać cały skrypt w VBA. Nie o to chodzi.
No nie - tu Pan przesadza celowo. Dodać kontrolę słownika to jeden SQL, wyklikany w Query dokładnie tą samą metodą. Jaka nieczytelna? Czy SQLki pisane w SQLS są czytelne? Że są 'w blokach'? Tu też można (zwykłą interlinią) porobić bloki, jakie się chce: 'blok wyciągania danych', blok kontroli słowników, 'blok...'

Panie Wojciechu.
Podsumowując.

Czy mówimy o narzędziu, którego funkcjonalność ma komuś słuzyć?
Czy mowimy o narzędziu, którego funkcjonalność musimy obchodzić by dopiero wtedy komus to narzedzie służyło?
Mówimy o narzędziu, które nie 'ma komuś służyć' (ale do tego odniosę się za chwilę) tylko które 'komuś służy' w kilkudziesięciu firmach' (w tym paru giełdowych, jeśli to jakaś referencja)

A dla kogo to jest?
Dla wszystkich - do pewnej skali. A, gdy ta skala zostanie przekroczona (czyli bez 'poważnej' bazy już się nie da, to mamy gotowe procedury, schematy, użytkownicy po prostu już mają, co chcą - jest projekt.
Dla dużych też - JAKO PROTOTYP rozwiązania. Tym narzędziem można zrobić prototyp hurtowni w tydzień - nie po to, żeby tak było docelowo - po to, żeby zebrać 90% uwag zwrotnych użytkowników już w okresie projektowania docelowego rozwiązania.
To:
1. skraca czas (i koszty) wdrożenia,
2. ogranicza ilość konsultantów u klienta (alergia na nich),
3. powoduje kilka razy lepsze dostosowanie do rzeczywistych (a nie tych z SIWZ) potrzeb użytkownika,
4. powoduje, że REKLAMACJI jest tez kilka razy mniej, bo na każdym etapie projekt jest przetestowany użytkownikiem.
5. (chyba najważniejsze) Użytkownik UTOŻSAMIA SIĘ z projektem i go LUBI. Bo pracuje w swoim ukochanym Excelku cały czas.
(Tu akurat nie mówię o tych naszych ETLkach, tylko o funkcjach AFIN.NET, prezentacjach itp.) - W AFIN.NET użytkownik raporty robi SAM (!!!)

Pozdrawiam.
Również.
Janusz Rafał Szpiglewski

Janusz Rafał Szpiglewski
http://www.youtube.c
om/watch?v=uuTpKX82i
-Q

Temat: Hurtownia Danych OLAP

W takim razie, jeżeli nazywa Pan to jedynie prototypem czy tez rozwiązaniem tymczasowym w stylu namacalnej prezentacji (co miedzy innymi może olap) a nie produkcyjnym systemem to w tym przypadku się zgodzę. Narzędzie jest OK.

Jezeli jednak to narzedzie miałoby działac produkcyjnie, to jestem zdecydowanie przeciw.
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Hurtownia Danych OLAP

Janusz Rafał Szpiglewski:
W takim razie, jeżeli nazywa Pan to jedynie prototypem czy tez rozwiązaniem tymczasowym w stylu namacalnej prezentacji (co miedzy innymi może olap) a nie produkcyjnym systemem to w tym przypadku się zgodzę. Narzędzie jest OK.

Jezeli jednak to narzedzie miałoby działac produkcyjnie, to jestem zdecydowanie przeciw.
Ale to wszystko zależy OD SKALI!
Spokojnie się sprawdza w firmach do bardzo dużej wielkości (np. elektrownie), wbrew pozorom. A już temat raportowania księgowego, który nie jest liniowo związany z wielkością firmy, właściwie do każdej wielkości
Przyrost ilości kont nie jest liniowy - nawet wielkie firmy osiągają 10-20.000 kont analitycznych i już.
Gdy księgowość jest wielooddziałowa lub wielowymiarowa - TYM LEPIEJ! Bo wymiary 'oddzial' i 'inne', np. 'MPK' są zwykle niezalezne, a do tego OLAP jak znalazł.Wojciech Gardziński edytował(a) ten post dnia 03.11.09 o godzinie 16:05
Janusz Rafał Szpiglewski

Janusz Rafał Szpiglewski
http://www.youtube.c
om/watch?v=uuTpKX82i
-Q

Temat: Hurtownia Danych OLAP

Wojciech Gardziński:
Janusz Rafał Szpiglewski:
W takim razie, jeżeli nazywa Pan to jedynie prototypem czy tez rozwiązaniem tymczasowym w stylu namacalnej prezentacji (co miedzy innymi może olap) a nie produkcyjnym systemem to w tym przypadku się zgodzę. Narzędzie jest OK.

Jezeli jednak to narzedzie miałoby działac produkcyjnie, to jestem zdecydowanie przeciw.
Ale to wszystko zależy OD SKALI!
Spokojnie się sprawdza w firmach do bardzo dużej wielkości (np. elektrownie), wbrew pozorom. A już temat raportowania księgowego, który nie jest liniowo związany z wielkością firmy, właściwie do każdej wielkości
Przyrost ilości kont nie jest liniowy - nawet wielkie firmy osiągają 10-20.000 kont analitycznych i już.
Gdy księgowość jest wielooddziałowa lub wielowymiarowa - TYM LEPIEJ! Bo wymiary 'oddzial' i 'inne', np. 'MPK' są zwykle niezalezne, a do tego OLAP jak znalazł.Wojciech Gardziński edytował(a) ten post dnia 03.11.09 o godzinie 16:05


OLAP zgadza się, jak znalazł. Ale nie ten silnik proponuje (zostając przy MS) SSAS i jeżeli klient kocha Excela niech uzywa go nadal jako klienta kostki SSAS.
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Hurtownia Danych OLAP

Janusz Rafał Szpiglewski:
OLAP zgadza się, jak znalazł. Ale nie ten silnik proponuje (zostając przy MS) SSAS i jeżeli klient kocha Excela niech uzywa go nadal jako klienta kostki SSAS.

Oczywiście! A czy ja mówię, że nie?

1. Najpierw prototyp w .cub - źle! - najpierw przed-prototyp w tabeli Excela i tabela przestawna na tym (taki mały OLAP). Tu, użytkowniku przestawiaj, ile się da i powiedz, na czym ci najbardziej zależy. Ten etap - z konieczności - na jakimś fragmencie danych.
2. Prototyp(y) w .cub - kolejne zbliżenia do wersji produkcyjnej
3. Potem, wersja quasi-produkcyjna, dalej w .cub-ach, tylko już 'automatycznych', dostosowanych, zorganizowanych - na tym etapie ostatnie poprawki użytkowników
4. Dalej - równoległe, powoli, przeniesienie na SQL AS (żeby tylko informatyk nie za dużo myślał ;) )
5. Przełączenie wszystkich analiz z .cub na kostki SQL AS (=zmiana 'Provider-a' w funkcjach i tabelach przestawnych)

Zgoda?Wojciech Gardziński edytował(a) ten post dnia 04.11.09 o godzinie 10:16
Janusz Rafał Szpiglewski

Janusz Rafał Szpiglewski
http://www.youtube.c
om/watch?v=uuTpKX82i
-Q

Temat: Hurtownia Danych OLAP

No juz lepiej :).
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: Hurtownia Danych OLAP

Janusz Rafał Szpiglewski:

Ok sprubuje zrealizowac jakis projekt z zycia wziety. Nie che od razu negowac czegos czego nie znam. Tyle, że podany przykład mnie do niego niestety nie zachecił.

Jak tam próby? Niech się Pan pochwali...
Janusz Rafał Szpiglewski

Janusz Rafał Szpiglewski
http://www.youtube.c
om/watch?v=uuTpKX82i
-Q

Temat: Hurtownia Danych OLAP

Wojciech Gardziński:
Janusz Rafał Szpiglewski:

Ok sprubuje zrealizowac jakis projekt z zycia wziety. Nie che od razu negowac czegos czego nie znam. Tyle, że podany przykład mnie do niego niestety nie zachecił.

Jak tam próby? Niech się Pan pochwali...

Prób jeszcze nie było. Jak będą pochwale sie lub ponarzekam

Następna dyskusja:

Hurtownia Danych OLAP - BEZ...




Wyślij zaproszenie do