Nigdy nie musiałem tego robić wcześniej, więc prawdopodobnie jest to coś naprawdę podstawowego, ale myślałem, że o to zapytam.Jak odczytać bardzo duże (> 1GB) pliki tar.gz w pliku Node.js?
Jaki jest właściwy sposób na odczytanie bardzo dużego pliku w Node.js? Powiedzmy, że plik jest zbyt duży, aby przeczytać wszystkie naraz. Powiedzmy, że plik może być w formacie .zip
lub .tar.gz
.
Pierwsze pytanie, czy najlepiej jest najpierw rozpakować plik i zapisać go na dysku (używam teraz programu Stuffit na komputerze Mac), a następnie pracować z tym plikiem? Czy możesz odczytać strumień IO prosto ze skompresowanej wersji .zip
lub .tar.gz
? Myślę, że trzeba wiedzieć, format zawartości w pliku skompresowanym, więc prawdopodobnie masz do dekompresji (tylko dowiedziałem się ten plik .tar.gz
jest rzeczywiście plik .dat
) ...
Wtedy głównym problemem jest to, jak mogę przeczytać ten duży plik w Node.js? Powiedzmy, że jest to plik XML o pojemności 1 GB, gdzie powinienem zacząć go analizować? (Nie, jak parsować XML, ale jeśli czytasz duży plik wiersz po wierszu, jak parsujesz coś takiego jak XML, który musi znać kontekst poprzednich linii).
Widziałem fs.createReadStream
, ale obawiam się, że z nim pomówię ... nie chcę eksplodować mojego komputera. Po prostu szukam wskazówek w dobrym kierunku.
Co chcesz z tym zrobić? –
Załóżmy, że jest to bardzo duży plik CSV i po prostu chcę utworzyć rekord bazy danych dla każdej linii. –
Masz dwie problemy: 1. Czy jest dostępny czytnik plików zip dla Węzła i 2. Czy jest czytnik strumienia XML (który może użyć pierwszego strumienia jako danych wejściowych). Nie wiesz, jakie opcje są dostępne, ale które mogą ci pomóc w wyszukiwaniu ... – Joe