Co to jest ELT?

co to jest ETL

Co to jest ETL? To przeniesienie danych z jednego miejsca do drugiego i nadanie im oczekiwanej struktury. O ETL’u mówimy w kontekście przetwarzania zbiorów danych i budowaniu hurtowni danych lub data lake.

ETL służy do integracji i transformacji danych.

Wysoko poziomowo:
Na wejściu masz dane.
Przekształcasz je.
Zapisujesz.

Wynikiem ETL’a są przekształcone dane.

Po co jest ETL? Na przykład, żeby pobrać dane z systemu transakcyjnego i zapisać w hurtowni danych i potem stworzyć na podstawie tych danych raport. Pobierasz dane o zamówienia i klientach. Tworzysz zestawienie sprzedaży klienta. Dane do raportu aktualizujesz codziennie

Dodając więcej kontekstu:
Wynikiem ETL są uporządkowane dane. Mogą tworzyć wymiar lub tabelę faktów. Połączenie wymiarów i faktów tworzy większą strukturę: hurtownia danych.

Read More

Zalety chmury w rozwiązaniach data

Zalety chmury w rozwiązaniach data

Pracowałeś już z chmurą przy projekcie hurtowni danych albo data lake?

Masz już zapewne wyrobione zdanie: Co Ci się podoba, a co jest chwytem marketingowym, co wymaga dopracowania, gdzie czekasz na kolejną wersję, gdzie przydałoby się lepsze API zamiast interfejsu graficznego albo odwrotnie, bardziej wolałbyś interfejs graficzny zamiast pisania kodu.

Zrozumienie chmury to nie jest proces do ogarnięcia w czasie przerwy na kawę.

Ale jeżeli masz tylko tyle czasu, wtedy należy mieć nadzieję, że masz bogatego klienta.

Dla bogatego klienta, przesuwasz suwak maksymalnie w prawo i już nigdy nie martwisz się o wydajność. Tacy klienci, to niestety miejska legenda.

Większość klientów patrzy uważnie, ile chmura kosztuje i czy to się opłaca.

Jeżeli szukasz argumentów, jak rozmawiać o chmurze, zapraszam.

Dzisiaj o tej jasnej stronie chmury, na przykładzie Azure.

Read More

Power BI: pytania na rozmowę kwalifikacyjną

power bi rozmowa kwalifikacyjna

Power BI pytania na rozmowę kwalifikacyjną.

DAX:
1. Co to jest 'Tabular Object Model’ (TOM)?
2. Jaka jest różnica między Power Query (m) i DAX?
3. Czym różni się SUM od SUMX?
4. Jak policzyć sumę tylko dla wybranych wartości? (używając filtra)
5. Czym się różni ROWCONTEXT od FILTERCONTEXT w DAX?
6. Jak sprawdzić czy kolumna jest filtrowana po konkretnej wartości w raporcie?

Read More

Dobre praktyki SQL: złączenia INNER JOIN czy w klauzuli WHERE?

Problem: Jak połączyć dwie tabele w SQL’u? Ma to być złączenie równościowe (INNER JOIN). Tylko rekordy, które spełniają warunek złączenia mają być wybrane. Nic więcej, nic mniej.

Jak zapisać złączenie między nimi? Jaka jest dobra praktyka? Jak stworzyć kod, który będzie łatwy w utrzymaniu, rozbudowie i czytelny dla innych członków zespołu?

Możliwości:
1. Użyj klauzuli: INNER JOIN

FROM dbo.Users usr
INNER JOIN dbo.Posts post ON (post.OwnerUserId = usr.Id)

2. Wymień tabele, które chcesz złączyć w zaraz za FROM i później wykonaj złączenia w WHERE

FROM dbo.Users usr, dbo.Posts post
WHERE post.OwnerUserId = usr.Id

Rozwiązanie: Użyj INNER JOIN – składnia jest bardziej czytelna a kod będzie łatwiejszy w utrzymaniu i debugowaniu. Argumenty znajdziesz poniżej.

Read More

Co to jest CTE?

Problem: Jak napisać zapytanie SQL w przejrzysty sposób. Będzie ono czytelne dla innych. Dodatkowo, gdy wrócisz do niego po kilku miesiącach też będzie dla Ciebie zrozumiałe.
W przypadku zmiany wymagań da się łatwo dostosować do nowych potrzeb. Będzie łatwe w utrzymaniu i rozbudowie.

Rozwiązanie: użyj Common Table Expressions (CTE), żeby napisać czytelny kod.

Read More

Jak usunąć dane z tabeli bez DELETE?

Problem

Usuń dane z tabeli bez używania polecenia DELETE. Użytkownik nie chce widzieć danych starszych niż 30 dni.

Tło biznesowe

Do tabeli faktów masz już załadowane 2 lata danych. Biznes dochodzi do wniosku, że z nie sięga tak daleko w historię. Nie są im te dane potrzebne. Albo na potrzeby zgodności z audytem (audit complience) powinny zostać usunięte.

Tło techniczne

Użycie polecenia DELETE nie wchodzi w grę, ponieważ:
– Nie jest efektywne
– Niektóre silniki bigdata nie wspierają operacji DELETE. Do data laka możesz dołączać dane. Usuwanie trzeba zaimplementować w inny sposób.

To jak zaimplementować usuwanie bez użycia DELETE?

Read More

Ale po są warstwy w hurtowniach danych?!

warstwy w hurtowniach danych

Hurtownia danych zawiera warstwy. W zależności od modelu jaki wybierzesz możesz mieć na przykład dwie warstwy: Staging i Data Mart. Albo więcej: Staging, Data Valult, operational data store (ODS), data mart, warstwa raportowa.

Koszt takich warstw, to podatność na błędy programistyczne, zwiększony czas ładowania danych i więcej danych do obsługi. To tak jakbyś jeden wiersz ze źródła przechowywał w pięciu kopiach.

Ale po co są te wszystkie warstwy w hurtowniach danych? Dlaczego dane nie są pobierane bezpośrednio ze źródła (czy to pliku lub z innej bazy danych) do raportu.

Po co tak komplikować?

Read More

Jak automatycznie odświeżać widoki w Netezza?

Problem
Masz istniejący schemat bazy danych, biznes prosi, żeby dodać jeszcze jedną kolumnę w tabeli.

Pomyślisz bułka z masłem.

Jest tylko jedna kwestia, o której warto pamiętać, gdy pracujesz z Netezza.

Gdy zmienisz strukturę tabeli wtedy Netezza unieważnia (?) (invalidates) wszystkie widoki, które mają choćby złączenia do tej tabeli. Oznacza to, że nie możesz czytać z tego widoku.

Czyli wszystkie zasilania, które czerpały z tego widoku albo raporty, które się do niego odwoływały przestają działać.

Co można zrobić, żeby przeciwdziałać tej katastrofie? Jak odświeżać widoki w Netezza? Najlepiej automatycznie.

Read More