🎯 Definicja
Potok Danych (Pipeline) to zautomatyzowana linia produkcyjna dla danych. To seria kroków, które pobierają dane z punktu A, przetwarzają je i dostarczają do punktu B w formie gotowej do użycia.
🔑 Kluczowe punkty
- Automation: Działa samo (bez klikania człowieka), zazwyczaj wg harmonogramu lub zdarzenia.
- Reliability: Ma mechanizmy ponawiania (Retry) i powiadamiania o błędach.
- Stages: Ingestion (Pobranie) → Processing (Przetworzenie) → Storage (Zapis) → Consumption (Użycie).
📚 Szczegółowe wyjaśnienie
Potoki mogą być:
- Batch: Przetwarzają dużą paczkę danych raz na dobę (np. raporty dzienne). Tanie i proste.
- Streaming: Przetwarzają każdy rekord natychmiast po jego pojawieniu się (np. detekcja fraudów w transakcjach). Drogie i skomplikowane. Narzędzia: Airflow, Dagster, Prefect, Informatica, Talend.
💡 Przykład zastosowania
Pipeline “Rekomendacje Netflixa”:
- Ingest: Pobierz historię oglądania użytkownika (Kafka).
- Process: Przelicz macierz podobieństw w modelu Spark ML.
- Store: Zapisz rekomendowane filmy w bazie Cassandra.
- Serve: Wyświetl na ekranie telewizora “Polecane dla Ciebie”.
📌 Źródła
- “Designing Data-Intensive Applications” (Martin Kleppmann).
👽 Brudnopis
- Dobry pipeline jest idempotentny. Jeśli uruchomisz go dwa razy na tych samych danych, wynik powinien być ten sam (nie duplikuje danych).