Jeśli tu jesteś, to prawdopodobnie przygotowujesz się właśnie do rozmowy rekrutacyjnej lub po prostu jesteś ciekaw, co może cię na niej czekać. Gdybym teraz był w takiej sytuacji to również chciałbym jak najlepiej przygotować się do takiej rozmowy i sprawdzić co już umiem. A ponieważ kilka rozmów mam już za sobą, pomyślałem, że podzielę się swoim doświadczeniem i przedstawię 15 pytań, które mogą pojawić się na rozmowie o pracę na stanowisko Business Intelligence Consultant. Pytania dotyczą zarówno obszarów teoretycznych, jak i praktycznych. Zachęcam do sprawdzenia swojej wiedzy!
1. Co to jest system zarządzania bazą danych?
Mówiąc najprościej – jest to właśnie system, który umożliwia zarządzanie bazą danych 🙂 Przykładem jest tu SQL Server, DB2 czy MySQL. Wymienione przykłady to oczywiście serwery baz danych. Ważne aby wiedzieć, że SQL Server to SZBD, a nie sama baza danych, choć oczywiście potocznie powyższe systemy nazywamy właśnie bazami danych.
2. Czym jest baza znormalizowana?
Jest to taka struktura bazy danych, w której nie występuje redundancja. Oznacza to mniej więcej tyle, że konkretna kolumna powinna występować tylko w jednej tabeli. Taki zabieg stosuje się po to, aby właśnie nie przechowywać tych samych danych w bazie, dzięki czemu oszczędzamy miejsce na dysku i zwiększamy szybkość zapisu. Stosowane jest to często w systemach operacyjnych.
3. Czym jest proces ETL?
Sam skrót rozwija się jako Extract, Transform, Load. Proces ten składa się z 3 kroków.
1. Pobranie danych ze źródła (lub źródeł).
2. Transformacja danych, czyli dostosowanie do struktury hurtowni, a także jakieś proste oczyszczenie i pozbycie się niepotrzebnych danych.
3. Załadowanie danych do bazy docelowej, najczęściej jest to hurtownia danych bądź jakiś datamart.
Warto pamiętać, że sama budowa takiego procesu zajmuje relatywnie dużo czasu w kontekście budowania rozwiązania BI.
4. Co to jest Hurtownia Danych?
Jest to baza danych zoptymalizowana pod kątem konkretnego wycinka rzeczywistości, na przykład sprzedaży bądź danych księgowych. Cechą charakterystyczną jest redundancja danych, która co prawda zwiększa rozmiar takiej bazy, ale za to zapewnia szybki odczyt i redukuje liczbę potencjalnych złączeń między tabelami. Często struktura takiej bazy ma formę płatka śniegu lub gwiazdy. Warto także wspomnieć, że hurtownia często zasilana jest tylko raz bądź kilka razy dziennie.
5. Co to jest Miara/Wymiar/Fakt?
Są to pojęcia związane z hurtownią danych, a także bazami analitycznymi.
Miara – jest to wartość, która opisuje rzeczywistość wartością liczbową, na przykład liczba sprzedanych sztuk towaru może być przykładem miary. Takie wartości możemy agregować, dzięki czemu można dowiedzieć się jak kształtowała się sprzedaż na poziomie miesiąca, roku, województwa, czy kraju.
Wymiar – czyli perspektywa, przez którą analizujemy jakiś obszar rzeczywistości, na przykład wymiarem może być sklep bądź pracownik. Przecinając miary z wymiarami otrzymujemy przykładowo liczę sprzedanych sztuk przez konkretnego pracownika lub konkretny sklep.
Fakt – czyli zdarzenie, które analizujemy. Dobrym przykładem jest po raz kolejny sprzedaż. Mówiąc prosto – sprzedaliśmy 10 sztuk produktu w sklepie X w dniu Y.
Warto wspomnieć, że rekordy przechowujemy w tabelach faktu i wymiaru, a pojęcia faktu i wymiaru są tylko konceptualne.
6. Co to jest Wymiar Wolnozmienny?
Z angielskiego jest to Slowly Changing Dimension i oznacza wymiar, którego atrybuty mogą zmieniać wartość w czasie. Po raz kolejny posłużę się przykładem. Zakładając, że mamy pracowników, każdy z nich może zmienić stanowisko, a my chcemy taką informację przechowywać po to, aby po prostu śledzić ścieżkę kariery pracownika lub też obserwować jak wyglądała jego wydajność na poszczególnych stanowiskach. Do tego celu musimy takie dane przechowywać na przykład w postaci oddzielnego rekordu dla każdego stanowiska. Mamy kilka typów wymiarów wolno zmiennych. Pisałem o tym niedawno na moim blogu.
7. Czym jest Master Data Management?
Jest to pojęcie tłumaczone na polski, jako zarządzanie danymi podstawowymi. Każda organizacja posiada dane, które powinny być jednolite w każdym jej obszarze. Co to oznacza? Za przykład weźmy produkty w sklepie. Załóżmy, że nasz sklep ma swoje placówki zarówno w Polsce, jak i za granicą. Produkt w Polsce sprzedawany jest pod nazwą „jabłko”, natomiast w Wielkiej Brytanii ten sam produkt będzie się nazywał „apple”. Weźmy pod uwagę, że nasz analityk będzie chciał sprawdzić sprzedaż jabłka i nie obchodzi go czy sprzedało się 10 sztuk jabłek i 20 apples. Jabłko to jabłko i taką informacje należy przechowywać. Teraz pomyślmy, że takich towarów mamy tysiące w różnych krajach. Dlatego niezbędne jest jedno miejsce, w którym będzie przechowywana informacja o konkretnym produkcie. Dzięki temu centralnie możemy ustalić na przykład jego nazwę w różnych krajach, a także inne atrybuty. Mater Data Management może być realizowany za pomocą komponentu Master Data Services z SQL Servera.
8. Jakie znasz schematy hurtowni danych?
Zwykle stosowane są dwa schematy hurtowni danych – gwiazdy i płatka śniegu. Ten pierwszy jest bardzo optymalny i wygląda właśnie jak gwiazda. Tabela faktu znajduje się w środku, a na zewnątrz są tabele wymiarów. Jeśli chodzi o płatek śniegu – tak, jest to gwiazda, w której występuje połączenie między wymiarami. Różnica jest przede wszystkim w wydajności. Gwiazda zwykle daje nam większe możliwości jeśli chodzi o odczyt, ze względu na mniejszą liczbę złączeń. Niestety nie zawsze zastosowanie gwiazdy jest możliwe, dlatego rolą architekta jest takie zaprojektowanie schematu, aby był on optymalny i nie miał jak najmniej połączeń miedzy wymiarami.
9. Czym jest DataMart?
Jest to wyspecjalizowana baza, taka mała hurtownia, która na przykład przechowuje tylko dane z jakiegoś konkretnego kraju bądź brandu. Naturalnie rodzi się pytanie, po co robić takie małe bazy? Główną ich zaletą jest właśnie mniejsza liczba rekordów. Czasami do analizy wystarczy tylko jeden kraj i nie ma sensu odpytywać ogromnej hurtowni z setkami milionów rekordów, kiedy możemy się ograniczyć zaledwie do miliona.
10. Jaka jest różnica między Azure SQL Database a Azure SQL Datawarehouse?
Mówiąc krótko – SQL Database to zwykła baza operacyjna, z kolei ADW jest oparta o architekturę Massively Parallel Processing, która w uproszczeniu bazuje na dużej liczbie instancji SQL Database (więcej info tutaj). Warto pamiętać, że ADW powinna być wykorzystana do naprawdę dużych hurtowni danych. Jeśli mamy małe zbiory danych to lepiej zainteresować się SQL Database, która może okazać się lepszym wyborem.
11. Jaka jest różnica między Analysis Services w wersji tabelarycznej a wielowymiarowej?
Oczywiście podstawowa różnica jest taka, że w Tabularze nie ma ulubionych kostek OLAP 🙂 Choć oczywiście w potocznej mowie używa się takiego określenia. Tabular i Multidimesional to tryby działania Analysis Services. W Tabularze nie występują takie obiekty jak wymiary i fakty, są tam po prostu tabele. Co więcej, natywnym językiem dla Tabulara jest DAX, a dla Multidimesionala jest to MDX (choć oczywiście uruchomimy zapytanie MDX także na Tabularze). Różnic jest jeszcze bardzo dużo, należy jednak pamiętać, że póki co nie mamy kostek OLAP w chmurze, tu działa jedynie Tabular.
12. Czym jest partycjonowanie i jakie jest jego zastosowanie?
Jest to logiczne dzielenie zbioru danych na mniejsze obiekty, czyli partycje. Taki zabieg wykorzystuje się zarówno w bazach operacyjnych, hurtowniach, jak i bazach analitycznych. Dzięki niemu w trakcie trwania zapytania nie są przeglądane wszystkie dane, a jedynie te, które znajdują się na konkretnych partycjach, na przykład za konkretny dzień.
13. Czym Jest Self Service Business Intelligence?
Jest to pojęcie, które służy do określenia takiego oprogramowania, które zapewnia przeglądanie danych, analizę i tworzenie raportów. Co ważne, powinno być dostosowane do ludzi, którzy nie koniecznie znają język SQL czy DAX. W prosty sposób średnio zaawansowany użytkownik powinien być w stanie „wyklikać” prosty raport metodą przeciągnij i upuść. Przykładem rozwiązania klasy Self Service BI jest Power BI czy Tableau.
14. Twój raport Power BI działa wolno, jak go zoptymalizujesz?
Jak w każdym przypadku optymalizację należy zacząć od znalezienia przyczyny problemu. Przede wszystkim identyfikujemy czy problemem jest raport czy model danych. W tym celu można posłużyć się wbudowanym w Power BI analizatorem wydajności, który pokaże czy problemem są na przykład wizualki lub miary. W przypadku wizualizacji można zastosowywać jakąś alternatywę. Najczęściej jednak przyczyną są niewydajne miarki, które należy zoptymalizować. W tym celu trzeba taką miarkę podzielić na mniejsze części i znaleźć wąskie gardło, które należy wyeliminować. Oczywiście, czasami konieczna także będzie zmiana struktury modelu.
15. Twoje zapytanie SQL działa wolno, jak je zoptymalizujesz?
Podobnie jak wyżej, na samym początku szukamy przyczyn problemu, natomiast rzeczą, która zawsze pomoże jest usunięcie zbędnych tabel i kolumn z zapytania. Tu nie ma przypadków, zawsze pobieramy tylko to, czego potrzebujemy. Identyfikacja problemu to zwykle analiza zapytania i wizualizacja jego planu, dzięki któremu zwykle znajdujemy wąskie gardło. Ogólnie problemem może być zbyt duża liczba złączeń, zbyt dużo funkcji agregujących lub źle umieszczone warunki klauzuli where. Jeśli nie udaje się osiągnąć celu poprzez modyfikację zapytania, konieczna może być zmiana struktur bazy.
To już wszystkie pytania, z którymi najczęściej spotykałem się podczas rozmów o pracę. Oczywiście temat nie jest wyczerpany, ale mam nadzieję, że znajomość powyższych doda choć odrobinę pewności siebie. Z doświadczenia wiem, że warto skupić się na zadaniach z optymalizacji, ponieważ pokazują one nasze doświadczenie i prezentują pełen zakres naszych umiejętności. Trzymam kciuki i życzę powiedzenia!