Klasyczny pobór danych z poważnej bazy danych (tu Oracle w.
Express Edition) a pobór danych przez Excela (Query) i
automatyzacja w AFIN.NET
Film:
http://afin.net/webcasts/Demo_ProfiDatabaseUI_vs_AFIN.NET.swf
Na filmie pomyłkowo popełniłem próbę definicji i pobrania
danych przez uniwersalny sterownik ODBC - jak widać, się nie
udało - zadziałał dopiero natywny sterownik ODBC Oracle'a.
Porównanie funkcjonalności:
Oracle - nienajlepszy edytor zapytań - wszystko trzeba
ręcznie. Co prawda jest 'Query Builder', ale interfejs jest tam
już 'prawdziwie informatyczny'. Całą tabelę można pobrać
dość łatwo, ale zapytanie z filtrem to już pół doktoratu -
lepiej więc (kto zna) pisać SQL-ki.
Pobranie do Excela to już jednak koszmar. Eksport tylko jako csv,
który, otwierany Excelem, każdorazowo trzeba od nowa ustawiać,
przerabiać, itp.
Excel & Query
Działa. Przyjazny interfejs, nie trzeba znać SQLa, dane można
przerabiać, jak się chce...
Nie można, co prawda, przesyłać skoroszytów z Query (i kilka
innych wad), ale dane są bezpośrednio i szybko w arkuszu Excela.
AFIN.NET
Pobieramy z kwerendy definicję ciągu połączeniowego i SQLek -
możemy go zresztą też wpisać ręcznie, albo skądś skopiować
(tu, dla przykładu, 2-gie zapytanie SQL wykopiowałem z ...
Oracle'a.)
I pyk - sto tabel odświeżone.
wtorek, 22 grudnia 2009
poniedziałek, 14 grudnia 2009
Wydajność ADO&AFIN.NET vs. Excel2010&PowerPivot
Temat:
"In Memory Analytics" - najnowszy trend w Business Intelligence..
Czy to jest efektywne?
Mamy bazę (tabelę) - 3 MILIONY REKORDÓW w formacie DBF oraz
słownik excelowy 19 rekordów - standardowa sytuacja. Wszystkie
dostępy zdefiniowane, bo nie będziemy tracić czasu na klikanie...
Chcemy tylko ODŚWIEŻYĆ DANE.
(Uwaga: Film jest długi i niewiele się dzieje - większość czasu
to oczekiwanie na zasilenie danych - można przewijać...)
Film:
http://afin.net/webcasts/Demo_RefreshData_ADO&AfinNet_vs_Excel2010&PowerPivot.swf
Rezultaty:
ADO & AFIN.NET - 32 sekundy
Excel 2010 & PowerPivot - 110 sekund
"In Memory Analytics" - najnowszy trend w Business Intelligence..
Czy to jest efektywne?
Mamy bazę (tabelę) - 3 MILIONY REKORDÓW w formacie DBF oraz
słownik excelowy 19 rekordów - standardowa sytuacja. Wszystkie
dostępy zdefiniowane, bo nie będziemy tracić czasu na klikanie...
Chcemy tylko ODŚWIEŻYĆ DANE.
(Uwaga: Film jest długi i niewiele się dzieje - większość czasu
to oczekiwanie na zasilenie danych - można przewijać...)
Film:
http://afin.net/webcasts/Demo_RefreshData_ADO&AfinNet_vs_Excel2010&PowerPivot.swf
Rezultaty:
ADO & AFIN.NET - 32 sekundy
Excel 2010 & PowerPivot - 110 sekund
piątek, 11 grudnia 2009
Funkcje OLAP w AFIN.NET i w Excelu 2010 - porównanie
Film:
http://afin.net/webcasts/Demo_OlapFunctions_AfinNetVsExcel2010.swf
Dla porównania formułki pokazywanych funkcji:
Czysty Excel 2010:
=CUBEVALUE("stany";$B$4;$B5;C$4)
Prosty zapis, ale wymaga istnienia w arkuszu TRZECH(!) innych
funkcji:
=CUBEMEMBER("stany";{"[DateYYYY].[Wszystkie].[2007]"\"[DateMM].[Wszystkie].[01]"})
=CUBEMEMBER("stany";"[a01].[Wszystkie].[1]")
=CUBEMEMBER("stany";"[Measures].[S_MW]")
Można dać je, oczywiście, do jednej formuły, ale wtedy ta
formuła będzie bardzo długa i skomplikowana.
AFIN.NET (prosty import ustawień z tabeli przestawnej):
=GETDATAOLAP("C:\Program
Files\AFIN.NET\Samples\Data\OLAP\FK3olap\stany.cub";"OCWCube";"OCWCube";"[Measures].[S_MW]";"[a01].[1],[DateYYYY].[2007],[DateMM].[01]";)
Czytaj: Wszystkie ważne parametry są w jednej, czytelnej, łatwo
pobieralnej funkcji, w której można również sparametryzować...
źródło OLAP, czyli np. wersję kostki (W funkcji Excelowej nie
można).
AFIN.NET (Zdefiniowana księgowa miara biznesowa - to samo
źródło danych):
=GETDATA("Financials.3.Cub";"mw/1";"2007";"01")
Czytaj: prostota do bólu.
To samo, ale z baaardzo rozbudowanym zapytaniem księgowym w AFQL:
=GETDATA("Financials.3.Cub";"mw/1+mw/2-sw/3+mw/4-sm/401+ow/4*";"2007";"01")
Czytaj: elastyczność zapytania księgowego - rownież do bólu.
Wnioski:
Cóż...jakby to powiedzieć... :)
http://afin.net/webcasts/Demo_OlapFunctions_AfinNetVsExcel2010.swf
Dla porównania formułki pokazywanych funkcji:
Czysty Excel 2010:
=CUBEVALUE("stany";$B$4;$B5;C$4)
Prosty zapis, ale wymaga istnienia w arkuszu TRZECH(!) innych
funkcji:
=CUBEMEMBER("stany";{"[DateYYYY].[Wszystkie].[2007]"\"[DateMM].[Wszystkie].[01]"})
=CUBEMEMBER("stany";"[a01].[Wszystkie].[1]")
=CUBEMEMBER("stany";"[Measures].[S_MW]")
Można dać je, oczywiście, do jednej formuły, ale wtedy ta
formuła będzie bardzo długa i skomplikowana.
AFIN.NET (prosty import ustawień z tabeli przestawnej):
=GETDATAOLAP("C:\Program
Files\AFIN.NET\Samples\Data\OLAP\FK3olap\stany.cub";"OCWCube";"OCWCube";"[Measures].[S_MW]";"[a01].[1],[DateYYYY].[2007],[DateMM].[01]";)
Czytaj: Wszystkie ważne parametry są w jednej, czytelnej, łatwo
pobieralnej funkcji, w której można również sparametryzować...
źródło OLAP, czyli np. wersję kostki (W funkcji Excelowej nie
można).
AFIN.NET (Zdefiniowana księgowa miara biznesowa - to samo
źródło danych):
=GETDATA("Financials.3.Cub";"mw/1";"2007";"01")
Czytaj: prostota do bólu.
To samo, ale z baaardzo rozbudowanym zapytaniem księgowym w AFQL:
=GETDATA("Financials.3.Cub";"mw/1+mw/2-sw/3+mw/4-sm/401+ow/4*";"2007";"01")
Czytaj: elastyczność zapytania księgowego - rownież do bólu.
Wnioski:
Cóż...jakby to powiedzieć... :)
środa, 9 grudnia 2009
Excel 2010
Łi kajndli inform ju, det EjfinDotNet łorks on Excel 2010 Beta.
Film potem.
Pierwsze uwagi nt. Excela 2010 - kaszanka :(
Nie ma guzika Office, a taki ładny był, fajnie współgrał z
guzikiem Visty - nie wiadomo było, który jest który i po co oba.
Poprawili Query! (Ikonki się pokazują od razu, bo w E2007 nie).
I... tyle.
Nic w temacie funkcji bazodanowych, nic w temacie ułatwień
dostępu...
Tylko trochę ładniejszy, bardziej 'kwadratowy'.
Czyli: WYSZUKAJ.PIONOWO() ładniej opakowane.
Ale to dopiero początek rozpracowywania.
Film potem.
Pierwsze uwagi nt. Excela 2010 - kaszanka :(
Nie ma guzika Office, a taki ładny był, fajnie współgrał z
guzikiem Visty - nie wiadomo było, który jest który i po co oba.
Poprawili Query! (Ikonki się pokazują od razu, bo w E2007 nie).
I... tyle.
Nic w temacie funkcji bazodanowych, nic w temacie ułatwień
dostępu...
Tylko trochę ładniejszy, bardziej 'kwadratowy'.
Czyli: WYSZUKAJ.PIONOWO() ładniej opakowane.
Ale to dopiero początek rozpracowywania.
środa, 2 grudnia 2009
Wielostopniowe przetwarzanie danych
Zadanie, dane i natchnienie:
(C) 2009 - Mariusz Jankowski (Dzięki!)
http://www.goldenline.pl/forum/excel-vba/1326580
Problem:
Do tej pory skupialiśmy się na pobieraniu danych z różnych
źródeł i wklejaniu ich w arkusz w formie małoprzetworzonej, poza
prostymi łączeniami tabel. Niekiedy jednak zachodzi konieczność
znacznego przetworzenia danych, nawet, gdy wynikiem ma być mała,
prosta tabela.
Zwykle robi się to poprzez napisanie skomplikowanego zapytania w
języku SQL, tzw. zagnieżdżonego SQL, czyli zapytania, które
najpierw buduje jakiś widok danych, a dopiero potem łączy go z
inną tabelą lub innym widokiem.
Działa, ale:
1. Trzeba mieć narzędzie, żeby to napisać. Zwykłe edytory SQL
nie oferują edycji zapytań zagnieżdżonych.
2. Trzeba umieć to napisać, a taki SQL może być bardzo
skomplikowany.
Wyjściem jest (wielo-)stopniowe przetwarzanie danych, ale to z
kolei oferują już tylko profesjonalne narzędzia DTS-owe (Data
Transforming Systems). Trzeba je mieć, umieć włączyć (nie takie
to czasami proste, serio), rozumieć, co te narzędzia do nas
mówią... ech, skomplikowane :(
Albo (filmik):
http://afin.net/webcasts/Demo_ProcessingDataMultistep.swf
Opis:
1. Dane są w dwóch arkuszach jednego pliku Excela. Pobieramy je
kwerendą, tworząc relację i, od razu, ranking (1.) zespołów
według średnich wzrostów zawodników.
Tworzy się tabela w bazie Accessowej 'MyTable'
2. Tworzymy kwerendę z tej tabeli tworząc inną tabelę - kolejny
ranking, tym razem ranking (2.) dywizji według maksymalnych
średnich zespołów.
Tworzy się kolejna tabela 'MyTable2'
3. Tworzymy kolejną kwerendę, łączącą dane rankingu 2. z
informacjami o zespołach, osiągających te średnie, czyli
łączymy ranking 2. z rankingiem 1.
Powstałą tabelę pobieramy do arkusza.
Raport tworzy się natychmiast jednym kliknięciem myszy.
Nie napisałem ręcznie nic.
(C) 2009 - Mariusz Jankowski (Dzięki!)
http://www.goldenline.pl/forum/excel-vba/1326580
Problem:
Do tej pory skupialiśmy się na pobieraniu danych z różnych
źródeł i wklejaniu ich w arkusz w formie małoprzetworzonej, poza
prostymi łączeniami tabel. Niekiedy jednak zachodzi konieczność
znacznego przetworzenia danych, nawet, gdy wynikiem ma być mała,
prosta tabela.
Zwykle robi się to poprzez napisanie skomplikowanego zapytania w
języku SQL, tzw. zagnieżdżonego SQL, czyli zapytania, które
najpierw buduje jakiś widok danych, a dopiero potem łączy go z
inną tabelą lub innym widokiem.
Działa, ale:
1. Trzeba mieć narzędzie, żeby to napisać. Zwykłe edytory SQL
nie oferują edycji zapytań zagnieżdżonych.
2. Trzeba umieć to napisać, a taki SQL może być bardzo
skomplikowany.
Wyjściem jest (wielo-)stopniowe przetwarzanie danych, ale to z
kolei oferują już tylko profesjonalne narzędzia DTS-owe (Data
Transforming Systems). Trzeba je mieć, umieć włączyć (nie takie
to czasami proste, serio), rozumieć, co te narzędzia do nas
mówią... ech, skomplikowane :(
Albo (filmik):
http://afin.net/webcasts/Demo_ProcessingDataMultistep.swf
Opis:
1. Dane są w dwóch arkuszach jednego pliku Excela. Pobieramy je
kwerendą, tworząc relację i, od razu, ranking (1.) zespołów
według średnich wzrostów zawodników.
Tworzy się tabela w bazie Accessowej 'MyTable'
2. Tworzymy kwerendę z tej tabeli tworząc inną tabelę - kolejny
ranking, tym razem ranking (2.) dywizji według maksymalnych
średnich zespołów.
Tworzy się kolejna tabela 'MyTable2'
3. Tworzymy kolejną kwerendę, łączącą dane rankingu 2. z
informacjami o zespołach, osiągających te średnie, czyli
łączymy ranking 2. z rankingiem 1.
Powstałą tabelę pobieramy do arkusza.
Raport tworzy się natychmiast jednym kliknięciem myszy.
Nie napisałem ręcznie nic.
Subskrybuj:
Posty (Atom)