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
dataclassesdo reprezentowania strukturyzowanych, modyfikowalnych rekordów - Wydajne grupowanie danych
defaultdict - Analiza częstotliwościowa z użyciem kontenera
Counter
- Wykorzystanie
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 lekcyjnychWycena 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ę