• XSS.stack #1 – первый литературный журнал от юзеров форума

TXT Манипуляии с большим объемом данных в txt файле

Perhapsik

CD-диск
Пользователь
Регистрация
21.04.2023
Сообщения
12
Реакции
3
Приветствую,коллеги.

Ситуация следующая:
Имею txt файл в кодировке utf-8, обьемом около 60 гигов, 500кк строк, 6 столбцов, разделители в наличии (радует,что не в ассортименте). Намеревался почистить и удалить часть столбцов через PowerQuery, а затем экспортировать в csv для дальнейшего импорта в Cronos или PostgreSQL , накидал запрос и загрузил. В итоге, при каждой попытке загрузить файлы в ексель практически в самом конце (за 20кк до конца файла) данные переставали загружаться. Текстовыми редакторами не открывается под предлогом нехвати ОЗУ (на борту,к слову, 64 гб ОЗУ частотой 3 МГц и i9-10900). Написал на питоне скрипт для многопоточной обработки без записи в ОЗУ - не помогло (что странно,как по мне). Так же пробовал менять размеры чанков, использовать очередь - бестолку (стоить отметить что в програмировании я script kiddie), скрипты работали и каждый раз крашились в конце

И собственно вопрос: знает ли кто решение, что бы эту базу можно было как минимум использовать по назначению, а в идеале еще и можно было почистить, довольствуясь моими вычеслительными мощностями. В приорите кронос и PostgreSQL, но рассматриваю все варианты.

Итоговая цель это создание телеграм бота или локального веб-приложения для поиска в этой базе.
 
Последнее редактирование:
Сделай сортировку по алфавиту, разбей файл на сотню мелких, залей в базу. 3 скрипта на питон. Можно наверное и без сортировки. База тоже нужна, которая в оперативе не держит все данные, а читает по необходимости. PostgreSQL вроде все в ОЗУ держит. Но это не точно.
 
пришло время изучать утилиты GNU - grep, sed, awk.
есть сборки под венду, гугли gnuwin32
 
чтобы не заморачиваться с изучением питона, грепа и подобного, загрузи себе emeditor под винду и либо редактируй целостный файл в нем (если позволяет память компа), либо разбей средствами емедитора на куски и редактируй файлы поменьше. там есть режим для работы с файлами с разделителями - весьма удобно.
нормально работает с файлами такого объема, как ты указал
 
VS Code открывает такие файлы.
Если не хочет, то можно написать простейший код ,который будет считывать поток, а не весь файл сразу и делить их по определенному кол-ву строк.
Если не ошибаюсь клиент DBeaver умеет считывать такие файлы. Погугли, мб так и есть
 
EmEditor нормально открывает файлы такого размера и имеет довольно таки большой функционал для работы с текстовыми файлами. Так же он позволяет произвести перекодировку текста.
 
EmEditor нормально открывает файлы такого размера и имеет довольно таки большой функционал для работы с текстовыми файлами. Так же он позволяет произвести перекодировку текста.
i second this emeditor opened for me NPD data which are 100Gb txt files with no problem.
 
  • Файл можно обработать в TextPipe. Если правильно подобрать регулярки, вытащит только то, что хочешь сохранить.
  • Сначала лучше порезать на части, по 2-4 Gb. В этом случае для обработки можешь использовать и свой многопоточный скрипт, если распараллелишь задачу. При работе с одним большим файлом от многопотока пользы нет.
  • Excel может переварить чуть больше миллиона строк
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх