Data Craze Weekly #3

Tę wiadomość możesz otrzymać bezpośrednio na swoją skrzynkę dzięki zapisowi na newsletter – Data Craze Weekly.

Data Craze Weekly

Cotygodniowa porcja wartościowych informacji ze świata danych!
Inżynieria danych, analityka, how-to prosto do Twojej skrzynki.

    Zero spamu, 100% wartości.


    Administratorem danych osobowych niezbędnych w procesie przetwarzania, w tym podanych powyżej, jest Data Craze - Krzysztof Bury, ul. Piaski 50, 30-199 Rząska, NIP: 7922121365. Zapisując się na newsletter wyrażasz zgodę na przetwarzanie swoich danych osobowych (imię, e-mail) w ramach działań DataCraze.


    Formularz jest chroniony przez reCAPTCHA od Google Polityka Prywatności i Regulamin usługi.

    Przegląd Tygodnia

    Dzisiaj przygotowałem dla Ciebie jedną ciekawostkę i garść informacji ze świata danych.

    Lateral JOIN

    Będę z Tobą szczery, jak to się stało, że nie znałem tego złączenia nie wiem. Wiem jednak, że mam teraz do nagrania nowe wideo do kursu i aktualizacje w PDF-ach nt. join-ów.

    Człowiek się całe, życie uczy i tak ostatnio wpadłem na składnie join lateral.

    Okazuje się, że jest to a jakże element składni ISO dostępny m.in w Oracle, PostgreSQL, MySQL czy SQL Server (z użyciem APPLY).

    Co takiego w nim wspaniałego? Ano pozwala nam na de facto zrobienie pętli w pętli. Jeżeli założym, że robią FROM (jakaś tabelka) wykonujemy pętle po wierszach w danej tabeli to lateral pozwala nam na zrobienie kolejnej pętli odwołując sie do elementów z nadrzędnego obiektu (to może być tabela, funkcja czy widok).

    Czerpiąc wprost z dokumentacji:

    LATERAL is primarily useful when the cross-referenced column is necessary for computing the row(s) to be joined.

    Dokładne wyjaśnienie z przykładem w linku.

    Link: https://www.cybertec-postgresql.com/en/understanding-lateral-joins-in-postgresql/

    Projekty vs Produkty związane z danymi

    Bardzo ciekawy tematy, jak zmienia się podejście do tematów związanych z danymi. Z podejścia projektowego (tickecik i jedziemy) do produktowego (co możemy zrobić mając dane żeby użytkownikom żyło się lepiej).

    TL;DR - Projects have a clear definition of what needs to be delivered while products do not. This fundamentally changes how teams are incentivized and what it means to “do work”.

    Link: https://medium.com/@claykarges/data-projects-vs-data-products-why-mindset-matters-c2a02fb7c165

    O kontraktach w świecie danych

    Czasy w których jedna osoba robiło wszystko – od projektu, po integracje ze źródłem danych po proces przetwarzania danych na warstwie wizualizacyjnej kończąc. Stety lub niestety przechodzą do historii.

    A jak nowe czasy to i nowe pojęcia – data contract.

    Czyli nic innego jak pewna umowa pomiędzy przynajmniej dwiema stronami (zwykle backendem i frontendem) nt. tego jak będzie wyglądał schemat danych – jakie atrybuty jakie typy danych, jeżeli zagnieżdżenia (jak JSON) to jakie itd.

    Rzecz uważam bardzo dobra, tylko wykorzystywana mądrze (jak wszystko). Pamiętaj proszę, że takie rzeczy mają nam pomagać a nie wprowadzać dodatkową papierologię, dlatego stosujmy tam gdzie potrzeba, przy obopólnej zgodzie a wszystkim będzie żyło się lepiej.

    Link: https://towardsdatascience.com/data-contracts-from-zero-to-hero-343717ac4d5e

    Narzędzia

    popsql – cytuję ze strony „Collaborative SQL editor for your team” hmm. Wyobraź sobie to, piszesz cudowny fragment kodu, a tutaj nagle komunikat, że Twój kolega lub koleżanka zamienia przecinki z końca na początek i cały nastrój do piachu 😁

    A tak serio, to takie narzędzie ma swoje plusy. Możesz spokojnie je wykorzystać w rozmowie z analitykiem biznesowym (lub osobą z biznesu ogarniającą SQL-a) dać swoje pomysły, zerknąć na poprawki z drugiej strony. Dodatkowo pokaże Ci ładnie historię zmian, są plusy nie wątpliwie.

    Natomiast gdy ktoś przez lata buduje swój styl pracy w jakimś IDE lub terminalu, może być ciężko przeskoczyć na takie narzędzie.

    Link: https://popsql.com/

    Sprawdź Wiedzę

    #SQL Wyżej pisałem o LATERAL JOIN, to tutaj bez użycia tej konstrukcji.

    Dla danych z tabeli WISHLIST znajdź 3 produkty (tabela PRODUCTS) spełniające warunek cenowy z wishlisty.

    http://sqlfiddle.com/#!17/6f615/2: https://sqlfiddle.com/#!17/6f615/2

    Więcej pytań z SQL znajdziesz tutaj: SQL - Q&A

    Praca

    Szukane umiejętności: Python, SQL, AWS Glue, Spark, Serverless._