piątek, 29 stycznia 2010

Z innej parafii... (OpenOffice.org)

Niespodzianka!
http://www.afin.net/webcasts/Other_OpenOffice.swf

P.S.
A dodam jeszcze, że tak samo tworzy się widoki w poważnych    
bazach, np. w DB2
Czy ktoś (nie etatowy użytkownik - administrator DB2) potrafi    
stworzyć widok w bazie DB2 (bez wchodzenia do DB2, tak, jak na    
filmie nie wchodziłem do Accessa)?
Nadmieniam, że ani Excel, ani Access (z tego, co wiem) tego nie    
potrafią...

czwartek, 28 stycznia 2010

Funkcja DANE() - SQLS & Oracle & MySQL

Film:
http://www.afin.net/webcasts/Demo_GetDataFunction_SQLS_Oracle_MySQL.swf

Wnioski:
- Czy baza danych może być PARAMETREM (!) prostej funkcji    
excelowej?
- Ależ tak, czemu nie, także jej należy się. Cztery razy po dwa    
razy...

Baza danych, w rozumieniu ADO/ODBC, to pewien ciąg literek, owszem    
dość, czasami, skomplikowany.
Ale my, na szczęście, nie musimy się tym martwić, mamy Query,    
które nam te literki daje na tacy, AFIN.NET to ładnie odczytuje i    
pozwala zrobić własną funkcję z dowolnymi, własnymi,    
argumentami.

Robimy więc 3 takie same funkcje do takiej samej tabeli, ale...
w 3 różnych, konkurencyjnych zresztą, systemach bazodanowych, MS    
SQL Server, Oracle, MySQL.
W trakcie tego definiowania, napotykamy na szereg problemów.    
Najmniej ma ich SQLS - wszystko bez bólu. W Oracle'u trzeba    
ręcznie poprawić SQLa, bo Query źle go składa, tzn. Oracle go    
nie rozumie. W Oracle'u i MySQL'u nie ma logowania 'Trusted    
connection', więc hasła trzeba dopisać ręcznie.

Ale wszystko ślicznie działa.

* Nie wyszedłem z Excela (ew. + Query) podczas całej tej zabawy.
* Wszystko standardowo, wszystko szybko - cały fim ma niecałe 10    
minut.
* Wszystko parametryzowalne komórkami Excela, czyli niczego nikogo    
nie trzeba uczyć.

I, że się powtórzę, wszystko ślicznie działa.

środa, 27 stycznia 2010

Dane z SQL Server do Excela - prostą funkcją.

Film:
http://www.afin.net/webcasts/HowTo_GetDataFunction_FromSQLS.swf

Ech, jakie to proste...

Wyjaśnienie:
Mamy dane, jakiekolwiek, załóżmy że w MS SQL Server.
(Albo w Excelu, Accessie, TXT, DBF, MySQL, Oracle, PostgreSQL, DB2,    
HTM, ...)

Poważna sprawa. Możemy się do nich dostać kwerendą - fakt. Ale    
wtedy dostajemy duża tabelę w Excelu i tu musimy zastosować    
funkcje, żeby dane poumieszczać w naszym raporcie. Tabela    
przestawna tu odpada, bo raport ma taki format, jaki ma, a nie taki,    
jaki oferuje tabela (przykład: raportowanie finansowe)
Oczywiście, zawsze też możemy napisać makro. Ale, po pierwsze,    
trzeba umieć, a my jesteśmy księgowymi (, albo sprzedawcami, albo    
pracujemy na produkcji), a po drugie trzeba to zrobić i rozesłać    
po 10 kolegach, trzeba ich nauczyć, trzeba... ech, same problemy :(
Można też zrobić sto kwerend, do tego parametrycznych. Hm... nie    
umiemy, o co chodzi?.

No to, co umiemy? - umiemy zrobić prostą kwerendę! Super.
Umiemy też używać funkcji Excela, szczególnie tak prostych:
=DANE("SQLSE2008.Sales";[argument: nazwa_klienta])
czyli np.
=DANE("SQLSE2008.Sales";"AREX")
a, gdy w komórce A5 umieścimy parametr "AREX", a funkcję    
zmodyfikujemy do postaci:
=DANE("SQLSE2008.Sales";$A5) ,
to możemy ją łatwo kopiować w dół i wpisywać sobie klientów,    
jakich chcemy.

wtorek, 26 stycznia 2010

Excel & SQL Server Express (bez AFINA)

Film:
http://www.afin.net/webcasts/Demo_ExcelAndSQLSE2008_Tutorial.swf


Ojej, to takie rzeczy są ZUPEŁNIE ZA DARMO, no nie może    
być...

Męczyć Przemka R., o artykuł, FAQi, jasne tłumaczenie wszystkich    
kroków, itp. Wymyślił, niech się martwi!

Pozdrawiam onego i wszystkich, którzy to zrobią.

Wojciech G.

Wnioski:
(powiedzmy - dość luźne)

Analityk chce gdzieś przechowywać dane - ma do wyboru:

* Excelka - wszyscy mu mówią, że to niemożliwe, że się wywala,    
itp. On już od 5-ciu lat z tym tak walczy i fakt, czasami mu się    
wywala, ale nad tym PANUJE (i to poczucie kontroli sprawia, że nie    
dał sobie tego odebrać). Ale fakt, wygląda to jakoś cienko,    
nieprofesjonalnie i, rzeczywiście, czasami się psuje... Excel -    
be!

* Accessa - dla analityka to kosmos. Więc poszedł na kurs, gdzie    
jakiś nawiedzony accessowiec tłumaczył mu, jak zrobić ewidencję    
kaset wideo na jego półce. Dalej uważa Accessa za program    
strasznie skomplikowany i dla informatyków. Żeby było jeszcze    
ciekawiej, to jego informatyk mu mówi, że Access jest za słaby    
(analityk drapie się w głowę, bo dla niego to wprost przeciwnie),    
że się wywala, że nie można zabezpieczyć, ani bazy, ani    
danych... Access - be!

* SQL Server. Dla analityka to już nie kosmos, tylko "Szansa na    
sukces" - nikt nie wie, o co chodzi, nawet astronomowie. Microsoft    
wciska wszelkimi sposoby, informatycy się podobno na tym znają,    
ale coś od nich wydębić, czy wyprosić... Poza tym mówią    
jakimś niezrozumiałym językiem...
Przykład: http://www.goldenline.pl/forum/sql-server/1075840

Tymczasem - jak wyżej. Za darmo i moment.
Ale, niech sobie analityk nie myśli, że złapał Boga za nogi, o    
nie! - teraz dopiero zobaczy, jakie problemy się pojawią - tzw.    
polityczne.
Co z tego, że technika pozwala...

I to samo z:
* Oracle eXpress Edition, czyli 'Oracle XE' (za darmo)
* MySQL (za darmo z założenia)
* PostgreSQL (za darmo z założenia)
* DB2 (podobnie jak Oracle, też jest darmoszka)

wtorek, 19 stycznia 2010

Weź dane, skąd chcesz!

Film:
http://afin.net/webcasts/Demo_GetDataFromEverywhere.swf

Nie znacie może jeszcze jakieś darmowej bazy danych? ;)
A AFIN.NET w tym jak rybka, plum-plum...

Tłumaczenie "na polski"
Fajnego mam kompa, no nie? ;) Oracle, SQLS, PostgreSQL, DB2 (IBM    
żyje!), dostępy do różnych tam bazek internetowych (MySQL),    
pliki tekstowe, poprzekręcane w najbardziej wymyślny sposób, DBFy    
(Czy mnie jeszcze pamiętasz?), HTMLki i, w ogóle, cyrk.
O Accessie i Excelkach wszelkich typów nawet nie wspominam.

Wszystko po to, żeby pokazać, że nie ma, NIE MA, NIE MA!,    
NIE MA!!!!!!!! danych niedostępnych dla użytkownika    
Excela.

A AFIN.NET ładnie to automatyzuje.
Spróbujcie to zrobić innym narzędziem!

Oczywiście, zwykłe Query też pobierze dane, ale nie da rady już    
nic z tym zrobić dalej (np. wysłać szefowi pocztą). A w AFIN.NET    
nie tylko można pobrać i wysłać, ale można też zapisać DO    
DOWOLNEGO FORMATU DANYCH (czytaj: zrobić sobie hurtownię danych).
Wiem, wiem, hurtownia danych i Business Intelligence to poważna    
sprawa... dla niektórych (... nawet zbyt poważna).

poniedziałek, 18 stycznia 2010

Oracle & SQLS

Godzimy Larry'ego i Bill'a.

Z punktu widzenia analityka, wszystkie dane powinny być łatwo    
dostępne.
Stety lub niestety, ale raczej stety, na poziomie programów    
bazodanowych istnieje bardzo silna konkurencja i raczej nie do    
pomyślenia jest, żeby w firmie współistniały systemy bazodanowe    
czołowych konkurentów. Raczej zawsze jest "albo-albo". Ogólnie    
się to opłaca, bo gdyby nie SQLS, Oracle kosztowałby majątek do    
kwadratu (tak - tylko majątek), a gdyby nie Oracle, SQLS byłby    
tylko Accessem.
Ale analitycy cierpią, bo dane trzeba jednak mieć, żeby coś z    
nimi zrobić.

Film:
http://afin.net/webcasts/Demo_Oracle&SQLS.swf

Wnioski:
1. A tymczasem, jak do sprawy podejdzie się z punktu widzenia    
nie-bazodanowego, wszystko staje się proste i standardowe.
W AFIN.NET - bez problemu.
2. Gdziekolwiek są dane, łatwo je wydobyć, a nawet ze sobą    
połączyć, pozostając niezależnym od obu środowisk bazodanowych    
(i ich administratorów ;) )

SQL - ciekawostki

I... kolejna:

operator CUBE w SQLS:

Takie coś:
SELECT nazwa AS [Customer] , YEAR(data) AS [Year] , MONTH(data) AS    
[Month], SUM(wart_net) AS [Sales] ,GROUPING_ID(nazwa, YEAR(data),    
MONTH(data)) AS [GroupLevel] FROM TestDatabase.dbo.FAKTURA FAKTURA    
GROUP BY CUBE (nazwa, YEAR(data), MONTH(data)) ORDER BY    
GROUPING_ID(nazwa, YEAR(data), MONTH(data)) DESC,nazwa, YEAR(data),    
MONTH(data)

Daje takie coś:
CustomerYear    Month   Sales   GroupLevel
                           662,8       7
                       1   145,2       6
                       2    66,5       6
                       3   123,9       6
                       4   164,3       6
                       5    42,6       6
                       6    19,8       6
                       7    21,2       6
                       8    44,4       6
                       9    13,6       6
                      10     5,8       6
                      11     4,5       6
                      12      11       6
            2004           554,7       5
            2005           108,1       5
            2004       1     140       4
            2004       2      41       4
            2004       3   118,4       4
            2004       4   153,9       4
            2004       5    42,6       4
            2004       6      15       4
            2004       7       5       4
            2004       8     3,9       4
            2004       9    13,6       4
            2004      10     5,8       4
            2004      11     4,5       4
            2004      12      11       4
            2005       1     5,2       4
            2005       2    25,5       4
            2005       3     5,5       4
            2005       4    10,4       4
            2005       6     4,8       4
            2005       7    16,2       4
            2005       8    40,5       4
ANEX                         5,5       3
AREX                         140       3
BRONEX                      83,6       3
CELIMP                      19,4       3
DAREX                        3,9       3
EDEX                        30,7       3
EXIMP                         15       3
FRANEX                        11       3
GRZESIEX                     4,5       3
HANIMPEX                       5       3
IMPEX                       40,5       3
JARIMPEX                   118,4       3
JUREX                      153,9       3
KOWALSKI                     4,8       3
NOWAK                       16,2       3
SIANEX                      10,4       3
ANEX                   3     5,5       2
AREX                   1     140       2
BRONEX                 2      41       2
BRONEX                 5    42,6       2
CELIMP                 9    13,6       2
CELIMP                10     5,8       2
DAREX                  8     3,9       2
EDEX                   1     5,2       2
EDEX                   2    25,5       2
EXIMP                  6      15       2
FRANEX                12      11       2
GRZESIEX              11     4,5       2
HANIMPEX               7       5       2
IMPEX                  8    40,5       2
JARIMPEX               3   118,4       2
JUREX                  4   153,9       2
KOWALSKI               6     4,8       2
NOWAK                  7    16,2       2
SIANEX                 4    10,4       2
ANEX        2005             5,5       1
AREX        2004             140       1
BRONEX      2004            83,6       1
CELIMP      2004            19,4       1
DAREX       2004             3,9       1
EDEX        2005            30,7       1
EXIMP       2004              15       1
FRANEX      2004              11       1
GRZESIEX    2004             4,5       1
HANIMPEX    2004               5       1
IMPEX       2005            40,5       1
JARIMPEX    2004           118,4       1
JUREX       2004           153,9       1
KOWALSKI    2005             4,8       1
NOWAK       2005            16,2       1
SIANEX      2005            10,4       1
ANEX        2005       3     5,5       0
AREX        2004       1     140       0
BRONEX      2004       2      41       0
BRONEX      2004       5    42,6       0
CELIMP      2004       9    13,6       0
CELIMP      2004      10     5,8       0
DAREX       2004       8     3,9       0
EDEX        2005       1     5,2       0
EDEX        2005       2    25,5       0
EXIMP       2004       6      15       0
FRANEX      2004      12      11       0
GRZESIEX    2004      11     4,5       0
HANIMPEX    2004       7       5       0
IMPEX       2005       8    40,5       0
JARIMPEX    2004       3   118,4       0
JUREX       2004       4   153,9       0
KOWALSKI    2005       6     4,8       0
NOWAK       2005       7    16,2       0
SIANEX      2005       4    10,4       0

Wszystkie podsumowania częściowe naraz.
Ostatnia kolumna to "poziom podsumowania". Bajer, ale zastosowania    
nie znam. Tabela przestawna załatwia to lepiej, ale dobrze    
wiedzieć, że można to już załatwiać na niższym    
poziomie.

czwartek, 14 stycznia 2010

SQL Server (Express) jako baza danych analityka

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.

ś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.

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.

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.

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?

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

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)