Columnstore index–nowość SQL Server 2012, czyli trochę o VertiPaq
Blog o PowerPivot, a post o Columnstore… Tak dokładnie. Takie miałem zamierzenie. PowerPivot był nowością wprowadzającą w rozwiązaniu SQL Server jako pierwsze mechanizm VertiPaq. Przy nowej edycji SQL Server 2012 – o nazwie kodowej Denali powstaje cała ścieżka rozwiązań BI bazująca lub wykorzystująca mechanizm VertiPaq:
-
Model BISM (Business Intelligence Semantic Model) w którym możemy projektować rozwiązania BI
-
PowerPivot w wersji 2 (w tym Analysis Services Integreted dla SharePoint 2010 czyli PowerPivot dla SharePoint))
-
PowerView (znany pod nazwą kodową Projekt Crescent) – nowoczesne narzędzie do wizualizacji danych (w tym danych z PowerPivot i BISM)
-
SQL Server Analysis Services Tabular Mode
-
Nowe indeksy w SQL Server 2012 – Columnstore Index (projekt Apollo)
Za całą pewnością właśnie te tematy będą gościć na tym blogu. Na pierwszy ogień na moim blogu biorę właśnie nowe indeksy w SQL Server 2012. Jestem pod wrażeniem tego mechanizmu i chciałem się tym podzielić z moimi czytelnikami.
Wprowadzenie do indeksów Columnstore
Dotychczasowo wszystkie dane SQL Server przechowywał na stronach wierszami, ostatnich wersjach SQL Server 2008/2008R2 umożliwiał już kompresję danych, co dawało bardzo często dobre efekty. W rozwiązaniu VertiPaq wymyślono, iż dane będą przechowywane nie wierszami, ale kolumnami Co to daje? Otóż jeżeli posiadamy miliony rekordów dotyczących np.: ceny sprzedaży, albo ilości sprzedaży można sobie wyobrazić jak często się te wartości powtarzają, ponadto należą do tego samego typu przez co można wykonać o wiele bardziej efektywną kompresję tych danych. Kolejną zaletą jest fakt, iż w danych analitycznych rzadziej pobieramy pojedyncze wiersze, a częściej wykonujemy różnego rodzaju agregaty właśnie na poszczególnych kolumnach.
Wszystkie dane silnik SQL Server umieszcza na stronach wierszami ![]()
w przypadku COLUMNSTORE (czyli wykorzystując mechanizm VertiPaq) dane umieszczone są kolumnami: ![]()
Co jeszcze daje nam taka zmiana? Po pierwsze zmniejsza nam ilość operacji I/O zarówno ze względu na wielkość danych, po drugie pobiera jedynie te kolumny, które akurat potrzebuję do danego zapytania, ale także ze względu na fakt, iż SQL Server odczytuje dane pewnym obszarami (w przypadku COLUMNSTORE mówi się segmentami) i ze względu na sposób położenia informacji SQL Server ma lepszą ilość trafień w zaczytanych danych z pewnym wyprzedzeniem, niż ma to miejsce przy odczycie zwykłych stron bazy danych.
Odczyt niezbędnych kolumn, a nie całych wierszy ![]()
Jednak to nie wszystkie zalety wykorzystywania indeksów typu COLUMNSTORE. Otóż w przypadku bardzo dużych zbiorów danych , dane przechowywane w indeks COLUMNSTORE mogą być przetwarzane w sposób wsadowy (BATCH MODE), daje to pełne wykorzystanie możliwości zrównoleglenie, gdyż każdy wsad jest niezależny od pozostałych operacji.
Ograniczenia
Struktura indeksów COLUMNSTORE ma pewne ograniczenia lub restrykcje, głównie wynikające z architektury tych indeksów:
-
Dane w indeksie COLUMNSTORE nie mogą być modyfikowane!!!
-
Nie może być w tym indeksie więcej niż 1024 kolumn
-
Indeks ten jest jedynie nie klustrowanym indeksem
-
Nie może być unikalnym
-
Nie może być zakładany na widokach ani na widokach indeksowanych
-
Nie można używać kolumn typu SPARSE
-
Nie można zmieniać definicji indeksu pryz użyciu składni ALTER INDEX (można tym poleceniem jedynie przebudować i wyłączyć indeks)
-
Nie ma takich opcji jak INCLUDE, ASC, DESC
-
Nie wspiera mechanizmu SEEK (inne zastosowanie jest tego indeksu)
-
Nie mechanizmów (kompresji – posiada własną; replikacji, CHANGE DATA CAPTURE, CHANGE TRACKING – jest tylko do odczytu; FILESTREAM)
Jak widać stosując taki indeks do hurtowni danych ograniczenia te nie są straszne. Część z nich jest wręcz oczywista ze względu na omówioną wcześniej architekturę.
Podsumowanie
Jak widać mechanizm ten jest bardzo ciekawy i daje naprawdę niesamowite rezultaty. Wykonałem już pierwsze testy na różnej ilości danych. W kolejnych postach już niebawem na tym blogu przedstawię jak tworzyć COLUMNSTORE index, oraz omówię i przedstawię rezultaty testów jakie wykonałem.
PowerPivot Denali CTP3 – w jakim kierunku zmierza Microsoft ze swoim Business Intelligence
PowerPivot jedno z najmłodszych dzieci produktów powiązanych z SQL Server po nie całych 2 latach od publicznej premiery pierwszego CTP w wersji SQL Server 2008R2, później premiery w 2010 roku wówczas w wersji darmowej dla programu Excel jak i wersji integrującej się z środowiskiem SharePoint 2010. W tym roku doczekało się kolejnych zmian. Program rozrasta się w niesamowitym tempie jeszcze bardziej spotykając się z produktem pierwotnym czyli z SQL Server a dokładnie z częścią dotyczącą Business Intelligence (Analysis Servcies, Reporting Services) i ich konsolidacji w SharePoint. Już teraz namacalnie wraz z wersją SQL Server DENALI CTP3 (którego premiera i dostępność publiczna była 12 lipca o czym trochę więcej można przeczytać na moim drugim blogu SQL Research) wiemy jak wielkie zmiany w Business Intelligence poczynił Microsoft od ostatniej pełnej wersji SQL Server. Zmiany zaszły nie tylko w rozwiązaniu, ale także w architekturze i koncepcji. Bez obaw to co było dobre i znane nam pozostało, ale powstał przed laty właśnie PowerPivot jako przedsmak nowego co powstaje. Właśnie PowerPivot pierwszy wykorzystywał VertiPaq nowy mechanizm o zmienionej filozofii przetwarzania danych w pamięci. O czym na pewno więcej napiszę na blogu. Po drugie to mechanizmy wykorzystane w PowerPivot dla SharePoint (integreted mode – vertipaq mode) są podstawą najnowszej wersji SQL Server Analysis Services DENALI (obecnie CTP3). Otóż instalując SSAS DENALI mamy do wyboru 2 tryby pracy, jeden dobrze nam znany gdzie projektujemy klasyczne już kostki wielowymiarowe, a drugi nazwany TABULAR bazujący właśnie na mechanizmach znanych bardzo dobrze wszystkim użytkownikom PowerPivot. Właśnie projekty realizowane w ten sposób są bazą do nowej wizualizacji danych zrealizowanych w projekcie Crescent (o którym już troszkę pisałem i z całą pewnością wiele jeszcze powiem i pokaże). To niw wszystko mechanizm wykorzystywany jako VertiPaq posłużył jako bazę nowej filozofii zbudowania indeksów w SQL Sevrer mających znacznie przyspieszyć zapytania realizowane w dużych hurtowniach danych. Projekt ten się nazywa Apollo, właśnie dzięki niemu powstała nowa metoda budowania indeksów nazywana columnstore. Temat bardzo ciekawy o którym opowiem w oddzielnych postach na którymś z moich blogów. Team SQL i BI nie zapomniał o PowerPivot w tej wersji. Produkt się bardzo rozwinął. Zapraszam do zapoznania się ze skrótem zmian, które są już dostępne w wersji SQL Server DENALI CTP3.
Wspominając o blogach chciałem jedną rzecz uporządkować. Przez jeszcze większą integracje PowerPivot, SSAS, SSRS, Crescent.. postanowiłem o wszystkich tematach związanych z Business Intelligence pisać na tym blogu, natomiast reszta tematów dotycząca SQL Server na SQL Research. Gorzej z tematami dotyczącymi SharePoint i konferencji. Te tematy pewnie będą się przewijać przez oba blogi. Myślę że taki podział będzie dobry.
Instalacja
Instalacja nowej wersji PowerPivot dla Excel jest bardzo prosta. Jeżeli mamy zainstalowaną którąś wcześniejszą wersje zalecałbym odinstalować (Ci co pierwszy raz instalują to ciekawe narzędzie odsyłam do postów na blogu dotyczących instalacji i przypominam iż jest niezbędny Excel w wersji 2010
), następnie pobieramy odpowiednią wersje z tego miejsca PowerPivot dla Excela w wersji SQl Server DENALI CTP3 (podaje odpowiednią , gdyż w zależności od środowiska musimy zainstalować wersje 32 lub 64 bitową) i możemy rozpocząć poznawanie PowerPivot ![]()
Nowosci w PowerPivot DENALI CTP3 (11.0.1440.19)
Jest cały szereg nowych rzeczy część z nich była już dostępna w poprzednich CTP, pozostałe dopiero od wersji CTP3 oto większość z nich w dużym skórcie:
- KPI Key Performance Indicator – kluczowe wskaźniki – będące specjalnymi formułami automatycznie wyliczanymi, które w różny ciekawy sposób można wizualizować na różnego rodzaju daschboardach, kokpitach, raportach. Dobrze znane wszystkim użytkownikom SSAS
- Perspektywy – czyli specjalne metadane pozwalające tworzyć zbiory danych najczęściej podyktowane potrzebami biznesowym czyli wycinki, obszary danych ułatwiające ich dalszą analizę
- Hierarchie – element bardzo dobrze znany wszystkim użytkownikom danych wielowymiarowych. Potężne narzędzie analityczne w każdej kostce.
- Diagramy (widok diagramów) – diagram wizualizujący dane w PowerPivot
- Zarządzanie relacjami w graficznym widoku do diagramów
- Multiple Relationship – element którego brakowało przy imporcie projektów baz danych relacyjnych
- Dodatkowa zakładka Advanced (na razie są tam głównie perspektywy
i właściwości raportowania) - Reporting properties niezbędne ustawienia przydatne klientom raportowania w tej chwili np Crescent z tego korzysta
- Grid dla miar czyli oddzielne okno w którym widzimy wszystkie miary utworzone w projekcie
- Wsparcie dla danych BLOB – w tej chwili PowerPivot pozwala przechowywać w kolumnie dane binarne przechowujące np. bitmapy przydatne później w procesie wizualizacji np przy użyciu Crescent. Należy tutaj dodać iż PowerPivot sam potrafi rozpoznać że to są tego typu dane przechowywane.
- Możliwość sortowania danej kolumny według danych w innej kolumnie
- Możliwość predefiniowania formatu danych w poszczególnych kolumnach co potem może mieć odzwierciedlenie w raporcie
- Możliwość dodawania opisowych danych do kolumn ułatwiające później pracę przy tworzeniu raportów poprzez podpowiedzi
- Rozszerzenia języka DAX:
- Funkcja SWITCH()
- Funkcje filtrujące: ALLSELECTED, Context-Examination, HASONEVALUE,
- Informacyjne: LOOKUPVALUE, zespół funkcji działających na hierarchii na zasadzie Parent-Child
- Statystyczne: DISTINCTCOUNT, CROSSJOIN, GENERATE, GENERATEALL, RANK.EQ, RANKX, STDEV.S, STDEV.P, STDEVX.S, STDEVX.P, SUMMARIZE, ROW, ADDCOLUMNS, TOPN, VAR.S, VAR.P, VARX.S, VARX.P
- CURRENCY
- USERRELATIONSHIP
- Nowe formatowanie danych
- Możliwość dodawania danych do wierszy i kolumn
- Drobne zmiany we wstążce i układzie niektórych funkcji
Widać iż tego jest trochę. Pewnie całą jesień mamy co robić by w pełni poznać nowe możliwości PowerPivot, Crescent, Apollo, Juneau, oraz samego SQL Server DENALI CTP3. Ja postaram się wszystkim zainteresowanym to troszkę ułatwić na moich blogach. Zapraszam do lektury i SQL Research’u ![]()
PowerPivot–BI w Excel–pierwszy cykl szkoleń w Polsce
W lutym w Poznaniu w bardzo nowoczesnym Centrum konferencyjnym POLSKA 13 firmy Constans Grupa, wyposażonym w najnowocześniejszy sprzęt informatyczny rusza cykl szkoleń – warsztatów organizowanych przez firmę TIDK dotyczący tworzenia rozwiązań Business Intelligence w środowisku Excel przy użyciu PowerPivot. Bedą to pierwsze tego typu szkolenia – warsztaty w Polsce.
Szkolenie to kompleksowo przygotowuje uczestników do towrzenia raportów, dashboradów, ich wizualizacji przy użyciu PivotChart i PivotTable na podstawie danych pobieranych z różnych źródeł (Excel, Access, SQL Server, Sharepoint, pliki tekstowe itd..). W ramach kursu uczestnicy poznają mozliwości PowerPivot, nauczą się tworzyć raporty generujące się w czasie zaledwie kilku sekund z milionowych zbiorów danych, poznają język DAX zaprojektowany specjalnie do wykonywania analizy danych.
Teraz BI może być dla każdego, a pracujemy z lubianym i znanym narzedziem jakim jest Excel. Możemy analizować miliony wierszy danych w czasie zalediwe kilku sekund. W trakcie szkolenia będzie mozna poznać zarówno darmową wersję PowerPivot for Excel, jak i korporacyjną wersje PowerPivot for SharePoint.
Szczegóły dotyczące szkolenia dostępne w broszurze informacyjnej
Ask the Expert – SQL – MTS 2010
W dniach 5-6 październik odbędzie się konferencja Microsoft Technology Summit – MTS2010, organizowana przez firmę Microsoft, będzie to już 5 edycja największej imprezy informatycznej w naszym kraju. Będzie można stworzyć swoją własną ścieżkę mając do dyspozycji około 100 sesji w 12 obszarach tematycznych. Poza ciekawymi sesjami prowadzonymi przez wybitnych prelegentów, będzie wspaniała okazja by spotkać ludzi ze środowiska informatycznego, społeczności IT, a także odwiedzić specjalnie przygotowane stoiska Ask the Expert, gdzie eksperci z różnych dziedzin i technologii będą chętni pomóc rozwiązywać problemy.
W tym roku na stanowisku Ask the Expert dotyczącym technologii SQL Server i Business Intelligence będę miał przyjemność pełnić dyżur, gdzie oczywiście serdecznie zapraszam.
Pierwsze kroki z PowerPivot for Excel – PivotTable
W poprzednim wpisie dotyczącym pierwszych kroków z PowerPivot for Excel pokazałem w jaki sposób należy przygotować sobie źródło danych w programie PowerPivot. W tym poście planuje pokazać jak z tych danych można skorzystać tworząc PivotTable – specjalną tabelę przestawną, będącą praktycznym i elastycznym sposobem analizowania danych.
Mając przygotowane źródło danych kolejnym krokiem jest ich przeanalizowanie, mamy do dyspozycji w PowerPivot kilka modeli wizualizacji i analizy tych danych.
Wybierając przycisk “PivotTable” znajdujący się na wstążce programu PowerPivot w zakładce Home widzimy przyciski:
-
Single PivotTable – pojedynczy PivotTable (tabela przestawna)
-
Single PivotChart – pojedynczy PivotChart (wykres przestawny)
-
Chart and Table (Horizontal) – wykres i tabela sąsiadująco
-
Chart and Table (Verticla) – wykres i tabela jedno pod drugim
-
Two Charts (Horizontal) – dwa wykresy obok siebie
-
Two Charts (Vertical) – dwa wykresy jedno pod drugim
-
Four Charts – cztery wykresy
-
Flattened Pivot Table
W tym prostym przykładzie przedstawianym w tym poście wybierzemy Single PivotTable czyli pojedynczą tabelę przestawną. Po wybraniu tego przycisku program PowerPivot przełącza się na program Excel i wyświetla okienko z pytaniem:
Pyta nam się gdzie chcemy umieścić PivotTable (tabelę przestawną) – w nowym skoroszycie, czy w już istniejącym. Jak wybierzemy w istniejącym możemy wówczas podać dokładną lokalizację. Następnie potwierdzamy przyciskiem OK.
Jak widać na powyższym rysunku w wybranej lokalizacji na skoroszycie pojawia się okienko wizualizacji tabeli przestawnej (PivotTable), oraz z prawej strony panel zarządzania tą tabelą przestawną. Jak widać w opisie panelu w wersji CTP November występuje jeszcze nazwa Gemini Task Pane, gdyż właśnie projekt ten miał nazwę – GEMINI.
Wraz w wstawieniem PivotTable (tabeli przestawnej) pojawiają się na wstążce dwie nowe zakładki – PivotTable Tools – Options i Design.
Na tej zakładce są wszystkie opcje dostępne dotyczące funkcjonowania tabeli przestawnej (szczegółowo z całą pewnością opisze również na tym blogu w swoim czasie
). Na zakładce DESIGN mamy za to wszystkie ustawienia dotyczące wyglądu tabeli przestawnej.
Gemini Task Pane – panel zarządzania tabelą przestawną składa się z sekcji w której widzimy wszystkie dostępne pola
czyli sześć okien odpowiednio: slicer (pionowy i poziomy), filtr dla danych, etykiety poziome i pionowe, suma wartości.
Wybieramy w pierwszej kolejności pola – wartości które chcemy wstawić do tabeli przestawnej.
- wstawienie takiej wartości do sumy automatycznie wstawia wartość w tabeli przestawnej.
Następnie ustawiamy kolejne wartości np.: etykiety, czy też wartości “slicera”. Jeżeli wybierzemy wartości które nie są bezpośrednio ze sobą powiązane PivotTable automatycznie zaproponuje utworzenie powiązania (relacji)
wybierając CREATE PivotTable zbada brakujące relacje
gdy zostaną utworzone otrzymujemy raport
można zobaczyć zarówno szczegóły dotyczące wyszukania relacji, jak i składni tworzącej brakującą relacje
Po dodaniu odpowiednich pól do slicera poziomego i pionowego otrzymujemy poniższą tabele przestawną:
Slicera działają w ten sposób, iż “wykrawają” odpowiednie dane z tabeli przestawnej. Wybierając odpowiedni przycisk z umieszczonych “slicerów” natychmiast w tabeli widzimy uzyskany wynik.
Był to oczywiście bardzo prosty przykład, osoby śledzące wpisy umieszczane na tym blogu będą mogły niebawem poczytać o bardziej zaawansowanych przykładach. Jednak wszyscy początkujący powinni spróbować zrobić coś takiego prostego, by przekonać się jak działa taka tabela przestawna.
UWAGA!
W powyższym poście korzystam z wersji CTP, już wiadomo, iż wersja finalna, która niebawem ma być opublikowana nieznacznie różni się od tej wersji. Można to było zobaczyć między innymi na konferencji MCT VIRTUALSUMMIT 2010.
Po wyjściu wersji RC lub RTM przedstawię na blogu zmiany w paskach narzędzi.
