Dzisiejszy post będzie trochę mniej techniczny, z uwagi na odbywającą się kilka dni temu konferencję SQL Day, na której i ja byłem 🙂 Już tradycyjnie, we Wrocławiu, spotkali się pasjonaci platformy danych Microsoft, aby wymienić się doświadczeniami i posłuchać sesji najlepszych prelegentów z całego świata. Mimo że wybór sesji był ogromy, kilka z nich zwróciło moją szczególną uwagę i chciałbym podzielić się tym, czego się dowiedziałem.
1. Multidimensional wiecznie żywy, Grzegorz Stolecki
Bardzo dobra sesja na temat Analysis Services, a konkretnie – kiedy należy wybrać rozwiązanie wielowymiarowe, a kiedy tablicowe. Mimo iż wydawać by się mogło, że, ze względu na jego intensywny rozwój, to właśnie tryb tablicowy jest właściwym wyborem, to stary, poczciwy tryb wielowymiarowy ciągle jest w grze. Ba, ma wiele funkcjonalności, których tabular po prostu nie posiada. Rozpoczynając nowy projekt analitycznej bazy danych powinniśmy przemyśleć, który tryb będzie odpowiedni dla nas. Przy rozważaniach powinniśmy uwzględnić kilka czynników, które mogą zaważyć na wyborze modelu.
Pierwszym z nich są specjaliści. Jeśli mamy bardzo dobry zespół, który zna rozwiązania wielowymiarowe i świetnie radzi sobie z MDXem, to być może jest to powód dla którego lepiej będzie budować rozwiązanie oparte o silnik wielowymiarowy, niż na nowo szkolić kadrę. Warto także podkreślić, że projekty w modelu tablicowym wcale nie są łatwiejsze, a przede wszystkim, nie są kończone szybciej. Owszem – w tabularze wcześniej dostaniemy pierwsze rezultaty, ale czas wykonania bazy będzie taki sam w obu przypadkach.
Dokonując wyboru należy także pamiętać, że w tabularze nie mamy akcji, writebacków, relacji typu parent-child i nie dopiszemy sobie procedury składowanej, aby rozszerzyć funkcjonalność. Oczywiście, do większości „braków” istnieją jakieś obejścia, ale w niektórych przypadkach rozwiązanie wielowymiarowe będzie znacznie lepsze.
Natomiast jeżeli już zdecydujemy się na model wielowymiarowy, to nie będziemy mogli go wdrożyć do chmury jako usługi PaaS. Nie skorzystamy także z relacji dwukierunkowych ani tabel kalkulowanych. Jak widać wybór nie jest łatwy i należy go dobrze przemyśleć przed rozpoczęciem projektu.
2. Azure SQL Data Warehouse – raport z pola walki, Paweł Potasiński i Michał Gołoś
Jak sama nazwa wskazuje, prelegenci podzielili się swoimi doświadczeniami po wdrożeniu usługi Azure SQL Data Warehouse. Na samym początku zostaliśmy wprowadzeni do tego, czym jest Azure SQL Data Warehouse – o tym pisałem nawet na moim blogu. Następnie przedstawili wnioski, jakie nasunęły się po pracy z usługą. Otóż przede wszystkim należy pamiętać, że to rozwiązanie nie jest specjalną wersją SQL Servera. Jest to zupełnie co innego, a mało tego, nie wspiera wszystkich konstrukcji języka T-SQL. Dlatego wybór Azure SQL Data Warehouse powinien być naprawdę przemyślany, bo, być może, do naszej hurtowni możemy wykorzystać zwykłą bazę Azure SQL Database.
Poruszony został też wątek optymalnego procesu ELT. W skrócie – łatwiej jest usunąć nawet sporą porcję danych i załadować ją na nowo, niż próbować zmieniać wartości w rekordach. Co do samego ładowania, to warto korzystać z mechanizmu Polybase i plików CSV Gzip. Warto także wspomnieć o monitorowaniu logu transakcyjnego, który może niespodziewanie rozrosnąć się do naprawdę dużych rozmiarów, zwiększając tym samym nasze koszty.
3. Complex Azure Orchestration with Dynamic Data Factory Pipelines, Paul Andrew
Sesja związana z Azure Data Factory, przedstawiała możliwości dynamicznych potoków (ang. pipeline) dzięki którym możliwe utworzenie konfiguracji procesu ETL. Mówiąc inaczej – możemy w bazie umieścić nazwy tabel, które chcemy migrować, a Azure Data Factory na podstawie takich metadanych wykona proces migracji. Jest to bardzo użyteczna funkcjonalność, w momencie kiedy nie chcemy budować kilka potoków równocześnie, a zrobić jeden, który na podstawie konfiguracji zrobi analogiczne operacje dla kilku tabel. Oprócz tego zostały przedstawione także inne ciekawe wzorce projektowe, które można wykorzystać w procesach ETL.
4. Małe dane duży kłopot, duże dane…., Bartek Graczyk i Paweł Potasiński
Podczas tej sesji omówione zostały usługi Azure związane z danymi. Co jest bardzo istotne, przedstawiono tutaj różnice między, wydawać by się mogło, podobnymi usługami. Jako pierwsze porównane zostały bazy SQL Database i Data Warehouse. Po raz kolejny podkreślono, że nie są to takie same rozwiązania – służą one do zupełnie czego innego. Co więcej, w niektórych przypadkach do budowania hurtowni lepiej wykorzystać SQL Database niż SQL Data Warehouse. Porównane zostały również usługi Blob Storage i Data Lake Gen 2, a na koniec poruszony został wzorzec nowoczesnej hurtowni danych, w której korzystamy z plików płaskich, umieszczonych w usłudze typu Blob Storage bądź Data Lake.
5. Performance Tuning dla Specialistów Business Intelligence, Adrian Chodkowski
Na sesji zostało przedstawionych kilka dobrych praktyk, które należy stosować, aby nasz system BI działał sprawnie i wydajnie. Jedną z nich jest logowanie na poziomie Simple. W środowiskach BI, log transakcyjny nie jest aż tak istotny jak w przypadku baz operacyjnych, dlatego dla zwiększenia wydajności powinniśmy używać minimalnego logowania. Kolejną istotną sprawą są indeksy kolumnowe. W tym przypadku warto pamiętać, żeby wypełniać segmenty odpowiednią liczbą rekordów, żeby wykorzystać w pełni potencjał tej funkcjonalności.
Na końcu warto też wspomnieć o parametrze Cost Threshold for Parallelism, który określa od jakiej wartości SQL Server powinien uwzględnić w planie zapytania działanie równoległe. Otóż okazuje się, że taka opcja może zarówno przyspieszyć, jak i zwolnić zapytania, jeżeli użyjemy jej niewłaściwe. W tym przypadku, wartości trzeba testować i wybrać najlepszą opcję.
Podsumowanie
To by było na tyle 🙂 Oczywiście to nie wszystkie sesje, na których byłem, ale uznałem, że te dały mi najwięcej. Na zakończenie serdecznie polecam udział w konferencji za rok! Oprócz ciekawych sesji możemy porozmawiać z innymi specjalistami i wymienić się doświadczeniami. Oczywiście sama część merytoryczna to nie wszystko. W cenie biletu dostajemy bardzo dobre śniadania, obiady, a także wieczorną imprezę 🙂 Poza tym – Wrocław jest bardzo ładnym miastem i warto trochę pozwiedzać w przerwach!