Natchnienie:
http://www.goldenline.pl/forum/bazy-danych/1410156/s/1#27319562
Film:
http://afin.net/webcasts/Demo_CollectingDataIntoSQLServerDatabase.swf
Opis:
A tak sobie zbieram dane, po pięć tabel z pięciu różnych typów
danych. Razem 25 tabel danych. A potem wyklejam nimi arkusze Excela.
Wszystkie dane do SQL Servera (tu: lokalnie), bo, załóżmy, że
nie lubię już Accessa ;) (Taki żart.)
Wnioski:
* Czas: MNIEJ NIŻ 20 SEKUND (łącznie ze stworzeniem 25 nowych
arkuszy i wyklejeniem ich danymi).
* Parametryzacja w Excelu.
Czegóż chcieć więcej?
P.S. Dzięki, Przemek. Wiesz, za co.
czwartek, 14 stycznia 2010
środa, 13 stycznia 2010
Hurtownia Danych OLAP - BEZ AFINA!
http://afin.net/webcasts/HurtowniaDanych_Excel&Access&OLAP&HTML.swf
Streszczenie filmiku:
Będziemy wykorzystywać tylko STANDARDOWE aplikacje Microsoft
Office(!)
1. Tworzymy nowy plik Accessa i w nim łączymy (jako tabele
dołączone!) tabele 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')
Tabele pobrane są, dla uproszczenia, bez żadnych filtrów i
uszlachetnień
2. Tworzymy relację pomiędzy tabelami
3. Budujemy 'kwerendę składającą' o nazwie 'SzerokaTabela'
4. Uruchamiamy Excela, tworzymy w nim kwerendę DO ACCESSOWEJ
KWERENDY 'SzerokaTabela', pobieramy wszystkie pola i 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. Otwieramy kostkę OLAP w Excelu, tworzymy tabelę przestawną i
wykres przestawny
6. Publikujemy wykres przestawny jako stronę internetową,
używając opcji 'Dodaj interakcję', czyli używamy OWC (Office Web
Components)
7. 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ą -
'Warszawka', a potem, w tym samym celu, zmieniamy w ogóle
regionalizację na 'MójRegion1' i 'MójRegion2'
9. Gotowe. Tworzymy analizy, jakie tylko chcemy.
Wnioski:
Do budowy aplikacji "Business Intelligence", posiadającej WSZYSTKIE
JEJ STANDARDOWE CECHY, tj.:
1. Program ETL (tu: pobranie 'dynamiczne' danych z różnych baz
danych)
2. Przetwarzanie danych na poziomie hurtowni (tu: relacja,
złączenie tabel, stworzenie dodatkowej kwerendy)
3. Przetwarzanie na poziomie narzędzia analizy wielowymiarowej OLAP
(tzw. DTS) - tu: kostka OLAP
4. Publikacja - tu: opublikowanie i używanie w interfejsie WEB-owym
5. Analiza - przestawianie, drążenie, zmiana słowników, itp.,
itd.
6. Wszystko odświeżalne (w tym kostka, której już ani nie
otwieramy, ani nie edytujemy) z poziomu interfejsu WEB-owego, jednym
kliknięciem myszy.
... nie potrzeba nic więcej, tylko ... trochę wiedzy.
WSZYSTKO JEST MOŻLIWE. ZA DARMO.
Streszczenie filmiku:
Będziemy wykorzystywać tylko STANDARDOWE aplikacje Microsoft
Office(!)
1. Tworzymy nowy plik Accessa i w nim łączymy (jako tabele
dołączone!) tabele 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')
Tabele pobrane są, dla uproszczenia, bez żadnych filtrów i
uszlachetnień
2. Tworzymy relację pomiędzy tabelami
3. Budujemy 'kwerendę składającą' o nazwie 'SzerokaTabela'
4. Uruchamiamy Excela, tworzymy w nim kwerendę DO ACCESSOWEJ
KWERENDY 'SzerokaTabela', pobieramy wszystkie pola i 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. Otwieramy kostkę OLAP w Excelu, tworzymy tabelę przestawną i
wykres przestawny
6. Publikujemy wykres przestawny jako stronę internetową,
używając opcji 'Dodaj interakcję', czyli używamy OWC (Office Web
Components)
7. 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ą -
'Warszawka', a potem, w tym samym celu, zmieniamy w ogóle
regionalizację na 'MójRegion1' i 'MójRegion2'
9. Gotowe. Tworzymy analizy, jakie tylko chcemy.
Wnioski:
Do budowy aplikacji "Business Intelligence", posiadającej WSZYSTKIE
JEJ STANDARDOWE CECHY, tj.:
1. Program ETL (tu: pobranie 'dynamiczne' danych z różnych baz
danych)
2. Przetwarzanie danych na poziomie hurtowni (tu: relacja,
złączenie tabel, stworzenie dodatkowej kwerendy)
3. Przetwarzanie na poziomie narzędzia analizy wielowymiarowej OLAP
(tzw. DTS) - tu: kostka OLAP
4. Publikacja - tu: opublikowanie i używanie w interfejsie WEB-owym
5. Analiza - przestawianie, drążenie, zmiana słowników, itp.,
itd.
6. Wszystko odświeżalne (w tym kostka, której już ani nie
otwieramy, ani nie edytujemy) z poziomu interfejsu WEB-owego, jednym
kliknięciem myszy.
... nie potrzeba nic więcej, tylko ... trochę wiedzy.
WSZYSTKO JEST MOŻLIWE. ZA DARMO.
Kreator Kostek OLAP - Poważna kostka na poważnej bazie
Poważna kostka (5 wymiarów, 3 miary)
na poważnej bazie (MySQL na serwerze internetowym)
Film:
http://afin.net/webcasts/Demo_AfinNetCubeBuilder_SalesCubeMySqlOnInternetServer.swf
Opis:
Właściwie wszystko wiadomo. Tylko skala inna: dużo wymiarów, w
tym ad-hoc zdefiniowane, dużo miar, poważna baza, dostęp jeszcze
poważniejszy, bo przez Internet.
Wnioski:
Działa i to jak!
* Czas stworzenia - 15 minut (sic!). I można poprawiać,
modyfikować, ulepszać...
* W Excelu 2007, nie wychodząc z arkusza Excela (czytaj:
Wszyscy to potrafią.)
* Koszt: FREE lub prawie 'free' ;) - Klienta kosztuje
właściwie TYLKO usługa.
Zaproszenie:
Zapraszam do stworzenia poważnej oferty usługowej na bazie
AFIN.NET.
na poważnej bazie (MySQL na serwerze internetowym)
Film:
http://afin.net/webcasts/Demo_AfinNetCubeBuilder_SalesCubeMySqlOnInternetServer.swf
Opis:
Właściwie wszystko wiadomo. Tylko skala inna: dużo wymiarów, w
tym ad-hoc zdefiniowane, dużo miar, poważna baza, dostęp jeszcze
poważniejszy, bo przez Internet.
Wnioski:
Działa i to jak!
* Czas stworzenia - 15 minut (sic!). I można poprawiać,
modyfikować, ulepszać...
* W Excelu 2007, nie wychodząc z arkusza Excela (czytaj:
Wszyscy to potrafią.)
* Koszt: FREE lub prawie 'free' ;) - Klienta kosztuje
właściwie TYLKO usługa.
Zaproszenie:
Zapraszam do stworzenia poważnej oferty usługowej na bazie
AFIN.NET.
SQL - ciekawostki
Kolejna ciekawostka:
Funkcja DIFFERENCE() w SQLS
Do porównywania tekstów, im teksty bardziej do siebie pasują
względem jakiegoś tam ("fonetycznego"?) algorytmu, tym wartość
większa - zwraca wartość 0-4.
ZASTOSOWANIE:
Szukamy czegoś w bazie, np. jakiejś nazwy kontrahenta. Nie
pamiętamy jej literka po literce. Kojarzymy, że że coś z 'micro'
i coś z 'soft' ma w nazwie...
(a z jakiś powodów nie chcemy lub nie możemy użyć '%','_')
To piszemy SQLka:
SELECT nazwa FROM faktura ORDER BY DIFFERENCE(nazwa,'micro soft')
DESC
albo
SELECT nazwa FROM faktura WHERE DIFFERENCE(nazwa,'micro soft')>=3
Serio, działa (nawet ten algorytm niezgorszy).
Linki:
http://support.microsoft.com/kb/100365
http://oreilly.com/catalog/sqlnut/chapter/ch04.html
difference(character_expression, character_expression)
Compares how two arguments sound and returns a number from 0 to 4.
Higher result indicates better phonetic match.
Funkcja DIFFERENCE() w SQLS
Do porównywania tekstów, im teksty bardziej do siebie pasują
względem jakiegoś tam ("fonetycznego"?) algorytmu, tym wartość
większa - zwraca wartość 0-4.
ZASTOSOWANIE:
Szukamy czegoś w bazie, np. jakiejś nazwy kontrahenta. Nie
pamiętamy jej literka po literce. Kojarzymy, że że coś z 'micro'
i coś z 'soft' ma w nazwie...
(a z jakiś powodów nie chcemy lub nie możemy użyć '%','_')
To piszemy SQLka:
SELECT nazwa FROM faktura ORDER BY DIFFERENCE(nazwa,'micro soft')
DESC
albo
SELECT nazwa FROM faktura WHERE DIFFERENCE(nazwa,'micro soft')>=3
Serio, działa (nawet ten algorytm niezgorszy).
Linki:
http://support.microsoft.com/kb/100365
http://oreilly.com/catalog/sqlnut/chapter/ch04.html
difference(character_expression, character_expression)
Compares how two arguments sound and returns a number from 0 to 4.
Higher result indicates better phonetic match.
wtorek, 12 stycznia 2010
SQL - ciekawostki
Znalazłem (i uruchomiłem nawet) fajną ciekawostkę ad SQLka:
(Działa tylko w SQL Server, nie działa w Accessie, Excelu, itp.)
Ale AFIN może to uruchamiać - uruchomiłem to właśnie w AFINIE.
Funkcja UNPIVOT (stąd przykład):
http://technet.microsoft.com/en-us/library/ms177410.aspx
ZASTOSOWANIE:
Konsolidacja budżetów
Tłumaczenie na polski:
Mamy duuużo budżetów, oczywiście w arkuszach Excela. Stawiamy
komputer z SQL Serverem Expressem (żeby było taniej, żeby baza
była 'porządna', tzn. żeby informatyk nie marudził, że jakiś
Access, albo Excel).
I... (jedno kliknięcie w AFIN.NET.IS)... pyk... i mamy dane do
dowolnych budżetowych tabel przestawnych
Przygotowanie (przykładowych) danych
DROP TABLE pvt
CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int, Emp3 int, Emp4
int, Emp5 int)
INSERT INTO pvt VALUES (1,4,3,5,4,4);
INSERT INTO pvt VALUES (2,4,1,5,5,5);
INSERT INTO pvt VALUES (3,4,3,5,4,4);
INSERT INTO pvt VALUES (4,4,2,5,5,4);
INSERT INTO pvt VALUES (5,5,1,5,5,5);
Normalizacja:
SELECT VendorID, Employee, Orders FROM (SELECT VendorID, Emp1, Emp2,
Emp3, Emp4, Emp5 FROM pvt) p UNPIVOT (Orders FOR Employee IN (Emp1,
Emp2, Emp3, Emp4, Emp5)) AS unpvt
Widok danych:
VendorID Emp1 Emp2 Emp3 Emp4 Emp5
1 4 3 5 4 4
2 4 1 5 5 5
3 4 3 5 4 4
4 4 2 5 5 4
5 5 1 5 5 5
Widok efektu końcowego (to działa!):
VendorID Employee Orders
1 Emp1 4
1 Emp2 3
1 Emp3 5
1 Emp4 4
1 Emp5 4
2 Emp1 4
2 Emp2 1
2 Emp3 5
2 Emp4 5
2 Emp5 5
3 Emp1 4
3 Emp2 3
3 Emp3 5
3 Emp4 4
3 Emp5 4
4 Emp1 4
4 Emp2 2
4 Emp3 5
4 Emp4 5
4 Emp5 4
5 Emp1 5
5 Emp2 1
5 Emp3 5
5 Emp4 5
5 Emp5 5
Pytania?
(Działa tylko w SQL Server, nie działa w Accessie, Excelu, itp.)
Ale AFIN może to uruchamiać - uruchomiłem to właśnie w AFINIE.
Funkcja UNPIVOT (stąd przykład):
http://technet.microsoft.com/en-us/library/ms177410.aspx
ZASTOSOWANIE:
Konsolidacja budżetów
Tłumaczenie na polski:
Mamy duuużo budżetów, oczywiście w arkuszach Excela. Stawiamy
komputer z SQL Serverem Expressem (żeby było taniej, żeby baza
była 'porządna', tzn. żeby informatyk nie marudził, że jakiś
Access, albo Excel).
I... (jedno kliknięcie w AFIN.NET.IS)... pyk... i mamy dane do
dowolnych budżetowych tabel przestawnych
Przygotowanie (przykładowych) danych
DROP TABLE pvt
CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int, Emp3 int, Emp4
int, Emp5 int)
INSERT INTO pvt VALUES (1,4,3,5,4,4);
INSERT INTO pvt VALUES (2,4,1,5,5,5);
INSERT INTO pvt VALUES (3,4,3,5,4,4);
INSERT INTO pvt VALUES (4,4,2,5,5,4);
INSERT INTO pvt VALUES (5,5,1,5,5,5);
Normalizacja:
SELECT VendorID, Employee, Orders FROM (SELECT VendorID, Emp1, Emp2,
Emp3, Emp4, Emp5 FROM pvt) p UNPIVOT (Orders FOR Employee IN (Emp1,
Emp2, Emp3, Emp4, Emp5)) AS unpvt
Widok danych:
VendorID Emp1 Emp2 Emp3 Emp4 Emp5
1 4 3 5 4 4
2 4 1 5 5 5
3 4 3 5 4 4
4 4 2 5 5 4
5 5 1 5 5 5
Widok efektu końcowego (to działa!):
VendorID Employee Orders
1 Emp1 4
1 Emp2 3
1 Emp3 5
1 Emp4 4
1 Emp5 4
2 Emp1 4
2 Emp2 1
2 Emp3 5
2 Emp4 5
2 Emp5 5
3 Emp1 4
3 Emp2 3
3 Emp3 5
3 Emp4 4
3 Emp5 4
4 Emp1 4
4 Emp2 2
4 Emp3 5
4 Emp4 5
4 Emp5 4
5 Emp1 5
5 Emp2 1
5 Emp3 5
5 Emp4 5
5 Emp5 5
Pytania?
piątek, 8 stycznia 2010
Kreator kostek OLAP
Microsoft wyciął - AFIN.NET ma i to lepszy ;).
Film:
http://afin.net/webcasts/Demo_AfinNetCubeBuilder.swf
Kluczowe funkcjonalności:
1. Działa w E2003, E2007, E2010, E2013...
(w standardowym było: tylko do E2003)
2. Kostki można POPRAWIAĆ w nieskończoność
(w standardowym było: zawsze wszystko od nowa)
3. A jaki miodzio ;) edytorek, znaczy się, interfejs...
Czyż efektywność nie zależy od prostoty?
(Dlaczego do budowania kostki nie używać narzędzia, które jest
wykorzystywane do jej... przeglądania? CZYLI ZWYKŁEJ TABELI PRZESTAWNEJ.)
4. Jest zupełnie ZA DARMO - Działa bez żadnych ograniczeń
w wersji testowej AFIN.NET
5. Można dodawać jedno pole do wielu wymiarów, nawet pod tą
samą nazwą
(W standardowym było to utrudnione - trzeba było zduplikować pole
przed uruchomieniem kreatora - utrudnieniem było to, że potrzeba
powstawała dopiero w kreatorze i trzeba było najpierw z niego
wyjść, dodawać pola, potem ponownie uruchamiać kreatora i
definiować wszystko od nowa). Ale już nie trzeba.
6. Przy okazji przeglądnąłem trochę Internet w poszukiwaniu
takich kreatorów. Znalazłem parę, ale wszystkie one to
'aplikacje' - robią, owszem, kostki i... już, tzn. robią plik
'.cub', ale nie robią pliku '.oqy'. Niby drobnostka, ale to
POWODUJE UZALEŻNIENIE od tejże aplikacji. Czyli, żeby
odświeżyć (tylko odświeżyć) kostkę, trzeba tej aplikacji za
każdym razem użyć, a sam Excel nie potrafi jej odświeżyć.
W przypadku kreatora AFIN.NET budowany jest STANDARDOWY plik .OQY,
'rozumiany' i odświeżany przez samego Excela (na filmie kilka
ostatnich kliknięć odświeżało kostkę w 'czystym' Excelu).
Ma to jeszcze dodatkową zaletę - może być programowo i
automatycznie odświeżane przez AFIN.NET.InformationServices, czyli
jeden klik administratora może odświeżyć wiele tak zbudowanych
kostek, a analitycy mają centralnie zarządzaną hurtownię danych.
Wnioski:
1. Cuby żyją!
Efektywny sposób zarządzania danymi, czyli tani (znaczy: darmowy)
OLAP, szybko odświeżalny, szybko kopiowalny (małe pliczki) po
sieci, o funkcjonalności dużo większej niż zapowiadał sam MS
(twierdził, że kostki są efektywne do 32 MB, ja robiłem kostki
po 100 MB - po prostu komputery są lepsze i RAMu dużo...), łatwo
i dokładnie odczytywalny przez AFINA (Funkcje, kostki księgowe,
itp) - to żyje!!!
W każdym razie jest lepsze, niż PowerPivot Excela 2010.
Tak nawiasem - odświeżenie kostki dla 10.000.000 rekordów trwa
dokładnie tyle samo (6 minut), ile zaciągnięcie danych przez
PowerPivota (nowość: 'calculation in memory'), ale robi się plik
mały, oferuje dostęp po sieci, itp.
2. Teraz już AFIN nie ma ograniczeń, co do typu bazy:
Prototypy OLAPowe można robić od razu (!) w cubach (przedtem
zalecaliśmy najpierw tabele przestawne na danych płaskich), bo to
trwa dokładnie tyle, ile ustawienie tabel przestawnych, można je
przebudowywać do skutku - robi się przy okazji gotowy MDX do
przeniesienia na SQLS AS, jak ktoś lubi.
3. NIE TRZEBA DZWONIĆ DO WOJCIECHA G., żeby zrobić kostkę
(kostki)
Nie wiem, czy to ważne, bo ja lubię, jak klienci (szczególnie
klientki) dzwonią, ale już nie trzeba, bo, żeby zrobić i 100
kostek, nie trzeba rozumieć OLAPa - WYSTARCZY ROZUMIEĆ TABELĘ
PRZESTAWNĄ.
To istotna nowość - podstawowym powodem nieużywania analiz
wielowymiarowych było powszechne niezrozumienie OLAPa.
P.S.
Dla tych, co nie wiedzą, co to OLAP:
http://www.databaseanswers.org/designing_olap_cubes.htm
Film:
http://afin.net/webcasts/Demo_AfinNetCubeBuilder.swf
Kluczowe funkcjonalności:
1. Działa w E2003, E2007, E2010, E2013...
(w standardowym było: tylko do E2003)
2. Kostki można POPRAWIAĆ w nieskończoność
(w standardowym było: zawsze wszystko od nowa)
3. A jaki miodzio ;) edytorek, znaczy się, interfejs...
Czyż efektywność nie zależy od prostoty?
(Dlaczego do budowania kostki nie używać narzędzia, które jest
wykorzystywane do jej... przeglądania? CZYLI ZWYKŁEJ TABELI PRZESTAWNEJ.)
4. Jest zupełnie ZA DARMO - Działa bez żadnych ograniczeń
w wersji testowej AFIN.NET
5. Można dodawać jedno pole do wielu wymiarów, nawet pod tą
samą nazwą
(W standardowym było to utrudnione - trzeba było zduplikować pole
przed uruchomieniem kreatora - utrudnieniem było to, że potrzeba
powstawała dopiero w kreatorze i trzeba było najpierw z niego
wyjść, dodawać pola, potem ponownie uruchamiać kreatora i
definiować wszystko od nowa). Ale już nie trzeba.
6. Przy okazji przeglądnąłem trochę Internet w poszukiwaniu
takich kreatorów. Znalazłem parę, ale wszystkie one to
'aplikacje' - robią, owszem, kostki i... już, tzn. robią plik
'.cub', ale nie robią pliku '.oqy'. Niby drobnostka, ale to
POWODUJE UZALEŻNIENIE od tejże aplikacji. Czyli, żeby
odświeżyć (tylko odświeżyć) kostkę, trzeba tej aplikacji za
każdym razem użyć, a sam Excel nie potrafi jej odświeżyć.
W przypadku kreatora AFIN.NET budowany jest STANDARDOWY plik .OQY,
'rozumiany' i odświeżany przez samego Excela (na filmie kilka
ostatnich kliknięć odświeżało kostkę w 'czystym' Excelu).
Ma to jeszcze dodatkową zaletę - może być programowo i
automatycznie odświeżane przez AFIN.NET.InformationServices, czyli
jeden klik administratora może odświeżyć wiele tak zbudowanych
kostek, a analitycy mają centralnie zarządzaną hurtownię danych.
Wnioski:
1. Cuby żyją!
Efektywny sposób zarządzania danymi, czyli tani (znaczy: darmowy)
OLAP, szybko odświeżalny, szybko kopiowalny (małe pliczki) po
sieci, o funkcjonalności dużo większej niż zapowiadał sam MS
(twierdził, że kostki są efektywne do 32 MB, ja robiłem kostki
po 100 MB - po prostu komputery są lepsze i RAMu dużo...), łatwo
i dokładnie odczytywalny przez AFINA (Funkcje, kostki księgowe,
itp) - to żyje!!!
W każdym razie jest lepsze, niż PowerPivot Excela 2010.
Tak nawiasem - odświeżenie kostki dla 10.000.000 rekordów trwa
dokładnie tyle samo (6 minut), ile zaciągnięcie danych przez
PowerPivota (nowość: 'calculation in memory'), ale robi się plik
mały, oferuje dostęp po sieci, itp.
2. Teraz już AFIN nie ma ograniczeń, co do typu bazy:
Prototypy OLAPowe można robić od razu (!) w cubach (przedtem
zalecaliśmy najpierw tabele przestawne na danych płaskich), bo to
trwa dokładnie tyle, ile ustawienie tabel przestawnych, można je
przebudowywać do skutku - robi się przy okazji gotowy MDX do
przeniesienia na SQLS AS, jak ktoś lubi.
3. NIE TRZEBA DZWONIĆ DO WOJCIECHA G., żeby zrobić kostkę
(kostki)
Nie wiem, czy to ważne, bo ja lubię, jak klienci (szczególnie
klientki) dzwonią, ale już nie trzeba, bo, żeby zrobić i 100
kostek, nie trzeba rozumieć OLAPa - WYSTARCZY ROZUMIEĆ TABELĘ
PRZESTAWNĄ.
To istotna nowość - podstawowym powodem nieużywania analiz
wielowymiarowych było powszechne niezrozumienie OLAPa.
P.S.
Dla tych, co nie wiedzą, co to OLAP:
http://www.databaseanswers.org/designing_olap_cubes.htm
poniedziałek, 4 stycznia 2010
10 MILIONÓW REKORDÓW
Uczcijmy Nowy Rok 2010 czymś specjalnym...
Film:
http://afin.net/webcasts/Demo_10mlnsRecordsDatabase.swf
(Czyli - 10 milionów na 2010!)
Opis środowiska:
Standardowy plik przykładu AFIN.NET pn. 'faktura' (19-to wierszowy
rejestr faktur) zaimportowałem do Oracle Database 10g Express
Edition (Tak nawiasem, Oracle jest strasznie tajemny.) do tabeli
'faktura'. Następnie stworzyłem bliźniaczą tabelę 'faktura2',
składając tabelę 'faktura' ponad 500.000 razy. Powstała tabela o
prawie 10 milionach rekordów.
Na filmie pokazano:
1. Przegląd środowiska, czyli tabel w webowym interfejsie Oracle
(kiepski, nie można np. tabel przewijać)
2. Program, tworzący mini-hurtownię danych
a) ranking klientów wg sprzedaży (grupowanie, sumowanie,
sortowanie)
b) ranking miast wg sprzedaży (jak wyżej + złączenie tabel ze
słownikiem 'odbiorca')
c) jak w pkcie a) z dodatkową miarą - zliczanie rekordów
Program uruchomiono najpierw na tabeli 19-to rekordowej, a
następnie na tabeli o 10 milionach rekordów. Czasy: dla tabeli
'19' - kilka sekund, dla tabeli '10.000.000' - mniej niż 50 sekund,
łącznie z odtworzeniem bazy, wyklejaniem danymi, eksportem, itp.
3. Przegląd mini-hurtowni, czyli pliku Accessa z danymi oraz pliku
eksportowego (xls)
Wnioski:
1. Słyszeliście te jęki BIajków, że w Excelu nie da się nic
zrobić, z czymś, co ma więcej, niż 1.000.000 wierszy? A to, że
tylko ich aplikacje są efektywne? A to, że jakiś tam Pan na kilka
zapytań na 4 milionach rekordów dawał mi 10 minut?
Śmieszne, no nie?
2. Odświeżenie ogromnej hurtowni danych z bardzo poważnej bazy
danych trwa stosunkowo krótko - minutę lub kilka.
3. Wszystko niskokosztowymi narzędziami. Wszystko dostępne
sieciowo.
4. Wszystko sterowane Excelem (+ AFIN.NET). Jawne, przejrzyste,
poprawialne, czytelne.
Pomyślcie teraz, ile kosztują narzędzia i usługi BIajków.
A efekt taki sam lub... gorszy (bo sztywny)
Film:
http://afin.net/webcasts/Demo_10mlnsRecordsDatabase.swf
(Czyli - 10 milionów na 2010!)
Opis środowiska:
Standardowy plik przykładu AFIN.NET pn. 'faktura' (19-to wierszowy
rejestr faktur) zaimportowałem do Oracle Database 10g Express
Edition (Tak nawiasem, Oracle jest strasznie tajemny.) do tabeli
'faktura'. Następnie stworzyłem bliźniaczą tabelę 'faktura2',
składając tabelę 'faktura' ponad 500.000 razy. Powstała tabela o
prawie 10 milionach rekordów.
Na filmie pokazano:
1. Przegląd środowiska, czyli tabel w webowym interfejsie Oracle
(kiepski, nie można np. tabel przewijać)
2. Program, tworzący mini-hurtownię danych
a) ranking klientów wg sprzedaży (grupowanie, sumowanie,
sortowanie)
b) ranking miast wg sprzedaży (jak wyżej + złączenie tabel ze
słownikiem 'odbiorca')
c) jak w pkcie a) z dodatkową miarą - zliczanie rekordów
Program uruchomiono najpierw na tabeli 19-to rekordowej, a
następnie na tabeli o 10 milionach rekordów. Czasy: dla tabeli
'19' - kilka sekund, dla tabeli '10.000.000' - mniej niż 50 sekund,
łącznie z odtworzeniem bazy, wyklejaniem danymi, eksportem, itp.
3. Przegląd mini-hurtowni, czyli pliku Accessa z danymi oraz pliku
eksportowego (xls)
Wnioski:
1. Słyszeliście te jęki BIajków, że w Excelu nie da się nic
zrobić, z czymś, co ma więcej, niż 1.000.000 wierszy? A to, że
tylko ich aplikacje są efektywne? A to, że jakiś tam Pan na kilka
zapytań na 4 milionach rekordów dawał mi 10 minut?
Śmieszne, no nie?
2. Odświeżenie ogromnej hurtowni danych z bardzo poważnej bazy
danych trwa stosunkowo krótko - minutę lub kilka.
3. Wszystko niskokosztowymi narzędziami. Wszystko dostępne
sieciowo.
4. Wszystko sterowane Excelem (+ AFIN.NET). Jawne, przejrzyste,
poprawialne, czytelne.
Pomyślcie teraz, ile kosztują narzędzia i usługi BIajków.
A efekt taki sam lub... gorszy (bo sztywny)
Subskrybuj:
Posty (Atom)