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

Hurtownie danych wszystko co chciałbyś wiedzieć (na początku)

Jeszcze w czasach liceum lubiłem wrócić po szkole i wcielić się w managera klubu piłkarskiego. To był niesamowity fun zarządzania, wygrywania meczy, kupowania zawodników. Budowania potęgi klubu. 

Albo zagrać w ulubioną strategię i odkrywać nowe kontynenty, budować i rozwijać miasta. Podbijać inne cywilizacje albo z nimi współpracować. Doprowadzić moją cywilizację od epoki kamienia łupanego do XXI wieku.

Wyobraź sobie, że Ty zostajesz takim managerem. Niestety tylko dla potrzeb tego artykułu. 

Skupmy się na firmie technologicznej. Pewnie masz ulubioną, której produkty posiadasz albo sam taką tworzysz.

Taka spółka to wiele produktów, procesów i ludzi. Dużo firm, z którymi współpracujesz. I jeszcze więcej systemów informatycznych, które przechowują dane.

Na przykład jeden system ma dane o fakturach, drugi zamówieniach, trzeci o pracownikach, czwarty monitoruje co się dzieje na świecie i co robi konkurencja, piąty o procesie produkcji, szósty przechowuje stany magazynowe, siódmy dane o klientach.

Jeden system nie daje wystarczających informacji niezbędnych do podjęcia decyzji.

Co w takim razie można zrobić?

Read More