
Pracuję nad projektem, w którym muszę przetworzyć bardzo duże pliki CSV (rozmiar od 2 do 10 GB), analizując dane, agregując je i zapisując wyniki do nowego pliku lub bazy danych. Moje dotychczasowe podejście w Pythonie wygląda tak:
używam pandas.read_csv z parametrem chunksize,
agreguję dane w pętli,
zapisuję wyniki partiami (batch) do pliku CSV lub do bazy SQLite.
Jednak napotykam na problemy:
Zużycie pamięci RAM nadal rośnie przy większych chunkach — nie mogę ustawić ich zbyt dużych.
Czas przetwarzania jest znaczny – wczytywanie + agregacja + zapis zabiera dziesiątki minut.
Przy zapisie wyników zauważyłem, że plik wynikowy robi się bardzo duży albo zapis do bazy jest wolny.
Chciałbym zapytać społeczność:
Czy macie doświadczenie z bardziej wydajnym przetwarzaniem plików CSV w Pythonie (lub innym języku)?
Jakie biblioteki lub podejścia stosujecie do agregacji niektórych wartości (sumy, średnie, filtrowanie) na tak dużych danych?
Czy polecacie użycie dask, vaex, polars lub innych narzędzi? Jak sprawdzają się w praktyce?
Jakie strategie zapisu wyników są najbardziej efektywne – plik dzielony, baza lokalna, baza SQL z opcją batch insert?
Chciałbym zoptymalizować zarówno zużycie pamięci, jak i czas, bez utraty czytelności kodu. Każda rada lub fragment kodu będzie bardzo pomocny — dzięki z góry za wszelką pomoc!
Pozdrawiam,
Steal Brainrot Game