Python, SQL & Git for Modern Data Workflows

Cele szkolenia

Po ukończeniu szkolenia uczestnicy:

  • zrozumieją, jak myśli architekt danych - jak dane przepływają, zmieniają się i wspierają decyzje biznesowe
  • będą swobodnie pracować w Pythonie, tworząc praktyczne skrypty do czyszczenia, transformacji i przygotowania danych
  • opanują SQL w realnych zastosowaniach - od prostych zapytań po złożone JOIN‑y, agregacje i projektowanie schematów
  • zbudują małe, realistyczne pipeline’y danych, łącząc Python, SQL i Git w spójny, powtarzalny proces
  • nauczą się efektywnie korzystać z Git, aby wersjonować projekty, współpracować i utrzymywać czysty, przejrzysty kod
  • zrealizują kompletny projekt danych - od surowych plików po zweryfikowane tabele i zapytania analityczne
  • poznają dobre praktyki jakości danych, logiki i projektowania przepływów, tworząc rozwiązania niezawodne i łatwe w utrzymaniu

Plan szkolenia

Podstawy danych i logiki

  • Typy danych: ustrukturyzowane, częściowo ustruktyryzowane i nieustruktyzowane
  • Logika boolowska, tabele prawdy, predykaty
  • Logika sterowania (rozgałęzienia, warunki, niezmienniki)
  • Ćwiczenia praktyczne
    • Budowanie tabel prawdy dla prostych i złożonych warunków
    • Tłumaczenie reguł języka naturalnego na wyrażenia boolowskie
    • Pisanie małych zagadek logicznych w pseudokodzie

Wprowadzenie do Pythona

  • Narzędzia programistyczne
    • VS Code
    • Jupyter Notebook
    • Manager pakietów (pip)
  • Podstawy składni Pythona
    • Wbudowane typy danych
    • Wyrażenia i zmienne
    • Instrukcje sterujące (instrukcje warunkowe, pętle)
  • Ćwiczenia praktyczne
    • Ćwiczenie rozumowania warunkowego na prostych fragmentach Pythona
    • Pisanie prostych algorytmów w Pythonie

Programowanie w Pythonie

  • Funkcje
  • Obsługa wyjątków
  • Kolekcje
  • Operacje na ciągach znaków
  • Wyrażenia listowe i słownikowe
  • Ćwiczenia praktyczne
    • Filtrowanie tekstu na podstawie reguł/warunków
    • Filtrowanie i przekształcanie danych przy użyciu wyrażeń listowych

Programowanie obiektowe

  • Klasy i obiekty
  • Właściwości
  • Metody statyczne
  • Composition (nie Inheritance)
  • Ćwiczenia praktyczne
    • Projektowanie workflow ETL z wykorzystaniem programowania obiektowego

Przetwarzanie plików w Pythonie

  • Co to jest "plik": bajty, kodowanie, znaki nowej linii
  • Pliki tekstowe a pliki binarne
  • Ścieżki bezwględne a ścieżki względne
  • Menadżery kontekstu
  • Praca ze ścieżkami i katalogami
    • Listowanie i filtrowanie plików
    • Zarządzanie folderami
    • pathlib - wbudowany moduł do zarządzania plikami i katalogami
  • Przetwarzanie strukturyzowanych plików
    • CSV
    • JSON
  • Transformacja danych
    • Filtrowanie wierszy
    • Mapowanie wartości
    • Normalizacja pól (strip, lower, replace)
    • Konwersja typów (prasowanie int, float, date)
  • Zapis do plików wyjściowych
  • Ćwiczenia praktyczne
    • Przygotowanie pliku CSV: przycinanie spacji, poprawianie wielkości liter, usuwanie niepoprawnych rekordów
    • Konwersja rekordów JSON na listę słowników
    • Przetwarzanie paczki plików CSV

Wydajne struktury danych

  • Struktury bezpieczne pod względem typów (typing, TypedDict, NamedTuple)
  • Klasy danych (dataclasses)
  • Wydajne kontenery (Counter, defaultdict, deque)
  • Opcjonalnie: Pydantic do walidacji danych strukturyzowanych
  • Ćwiczenia praktyczne
    • Wykorzystanie dataclasses do reprezentowania strukturyzowanych, modyfikowalnych rekordów
    • Wydajne grupowanie danych defaultdict
    • Analiza częstotliwościowa z użyciem kontenera Counter

Tworzenie wykresów - matplotlib

  • Podstawowe typy wykresów
  • Style i formaty
  • Siatka podwykresów
  • Zapisywanie wykresów jako PNG, SVG lub PDF
  • Ćwiczenia praktyczne
    • Tworzenie wykresu z pliku CSV
    • Tworzenie histogramów

Wprowadzenie do SQL

  • Relacyjny model danych
  • Tworzenie i modyfikowanie tabel
  • Klucze główne i klucze obce
  • Pobieranie danych z tabeli: SELECT
  • Sortowanie danych
  • Filtrowanie danych za pomocą klauzuli WHERE
  • Funkcje agregujące: COUNT(), SUM(), AVG(), MIN(), MAX()
  • Klauzula GROUP BY
  • Filtorowanie zagregowanych danych: HAVING
  • Ćwiczenia praktyczne
    • Zapytania do przykładowej bazy danych (PostgreSQL lub SQLite)
    • Generowanie raportów agregujących dane (liczba elementów, suma, średnia)

Zapytania do bazy danych

  • Łączenie danych z wielu tabel: JOIN
  • Podzapytania
  • Common table expressions (CTE)
  • Funkcje wbudowane
  • Ćwiczenia praktyczne
    • Pisanie zapytań łączących tabele (JOIN) dla rzeczywistych scenariuszy biznesowych
    • Tworzenie transformacji danych z wykorzystaniem wyrażeń CTE

Python w pracy z bazami SQL

  • Dlaczego warto używać SQL i Pythona razem?
  • Łączenie się z bazą danych
    • Podstawy standardu DB‑API
    • Connection strings
    • Kursory
  • Uruchamianie zapytań i pobieranie danych
  • Zapisywanie danych: INSERT, UPDATE, DELETE
    • Wykonywanie operacji zapisu
    • Transakcje
    • Masowe wstawianie danych
  • Zapytania parametryzowane a bezpieczeństwo
    • Zapobieganie atakom typu SQL injection
  • Ćwiczenia praktyczne
    • End‑to‑end ETL pipeline z wykorzystaniem SQL i Python

Git i kontrola wersji

  • Dlaczego kontrola wersji jest kluczowa w architekturze danych?
  • Podstawy systemu Git: init, clone, add, commit, push, pull
  • Strategie zarządzania gałęziami (feature branches, main/dev)
  • Rozwiązywanie konfliktów podczas scalania
  • Zastosowanie platform GitHub/GitLab w pracy zespołowej
  • Przechowywanie kodu SQL i Pythona w repozytoriach
  • Higiena commitów a powtarzalność
  • Ćwiczenia praktyczne
    • Utworzenie repozytorium i push ćwiczeń z Pythona i SQL
    • Tworzenie gałęzi (branching) i ich scalanie (merging)
    • Rozwiązywanie celowo wywołanych konfliktów scalania
    • Recenzowanie kodu innych uczestników (code review) poprzez pull requesty
    • Tagowanie wersji projektu potoku danych (data pipeline)

Integracja Pythona, SQL i Gita w procesach przetwarzania danych

  • Jak skrypty Python wchodzą w interakcję z bazami danych?
  • Wykorzystanie bibliotek sqlite3 lub psycopg2 do uruchamiania kodu SQL z poziomu Pythona
  • Projektowanie niewielkich potoków danych (data pipelines)
  • Struktura folderów i powtarzalny układ projektu
  • Logowanie zdarzeń, konfiguracja oraz separacja środowisk
  • Ćwiczenia praktyczne
    • Napisanie skryptu Python, który pobiera dane → wstawia je do bazy SQL → odpytuje o wyniki
    • Stworzenie małego potoku danych ETL i zapisanie go w systemie Git
    • Recenzowanie i refaktoryzacja kodu innych uczestników
    • Dodawanie dokumentacji oraz instrukcji w pliku README

Projekt końcowy

  • Zaprojektowanie prostego schematu bazy danych
  • Wczytanie surowych danych (CSV/JSON) za pomocą Pythona
  • Transformacja i walidacja danych
  • Wstawienie danych do tabel SQL
  • Przygotowanie zapytań analitycznych
  • Umieszczenie i wersjonowanie projektu w repozytorium Git

Wymagania

Szkolenie jest idealne dla osób, które chcą zrozumieć, jak działa nowoczesna architektura danych i zdobyć solidne podstawy do dalszej pracy jako inżynier danych, analityk lub architekt danych.

Czas trwania

12 dni po 8 godzin lekcyjnych
Wycena szkolenia zamkniętego

Szkolenie zamknięte w siedzibie Klienta.

Klient zapewnia salę szkoleniową i sprzęt.

Zapytaj o termin i cenę
Wycena szkolenia zdalnego

Szkolenie zamknięte w siedzibie Klienta.

Szkolenie live online. Warsztaty z trenerem.

Zapytaj o termin i cenę
Terminy szkoleń otwartych

Brak terminu?

Zgłoś zainteresowanie szkoleniem