Модераторы: korob2001, JackYF, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсинг большого XML, 2 Гб 
:(
    Опции темы
Error202
  Дата 16.2.2012, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 5.11.2004
Где: Moscow

Репутация: нет
Всего: нет



Есть 4 файла XML по 2Гб каждый...
На сервере 1Гб памяти...
Чем и как можно обработать файл такого размера?
PM MAIL WWW   Вверх
infarch (Online)
Дата 16.2.2012, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 524
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Читать и парсить на лету, не сохраняя в памяти весь документ. Или перестать быть извращенцем и пользоваться базами данных.
PM MAIL   Вверх
Error202
Дата 16.2.2012, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 5.11.2004
Где: Moscow

Репутация: нет
Всего: нет



Да яб легко... с филиального сервера такие идут и сделать ничего нельзя...
PM MAIL WWW   Вверх
bvn13
Дата 16.2.2012, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Цитата(Error202 @ 16.2.2012,  14:44)
Да яб легко... с филиального сервера такие идут и сделать ничего нельзя...

ну... я бы тогда порекомендовал 1с...
PM MAIL   Вверх
arto
Дата 16.2.2012, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1490
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



а как обработать?

хинт: rm -f * тоже обработка
PM MAIL ICQ   Вверх
Error202
Дата 16.2.2012, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 5.11.2004
Где: Moscow

Репутация: нет
Всего: нет



Пропарсить...

Вроде как наладил через XML::Twig, но проблема... где-то косяк синтаксиса... :(
Половина проходит и стопор... 

Можно как-то пропускать ошибки при парсинге?

PM MAIL WWW   Вверх
Turos
Дата 22.2.2012, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.2.2012
Где: Стамбул, Турция

Репутация: нет
Всего: -1



Считывать по кусочкам без хранения в памяти, составляя хеш "позиция узла" =>  "позиция байта в файле", и потом подчитывать данные по позиции

---------------------
германий металл

Это сообщение отредактировал(а) Turos - 5.1.2020, 17:36
PM MAIL WWW   Вверх
Pilat66
Дата 23.2.2012, 03:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 27.1.2009

Репутация: 1
Всего: 1



есть же два подхода к разбору XML - прочитать как огромную сруктуру в память, и читать постепенно, получая обратные вызовы на каждый элемент. Второй способ хоть терабайтные файлы пропарсит.
PM MAIL   Вверх
yazu
Дата 23.2.2012, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 14.9.2011

Репутация: нет
Всего: нет



Зависит для чего парсить? Любая нетривиальная обработка 2ГБ файла (не важно XML, нет) на 1Гб машине может легко привести к практически нерешаемой задаче - поиск дубликатов, к примеру.

А тривиальная - выборка чего-либо и суммирование, к примеру, вполне может быть выполнена регулярными выражениями.

Очень хорошее введение об обработке нтмл (принципы одинаковы) есть в свободной книжке Perl & LWP.

ЗЫ Книга была в свободном доступе с гаденьким замечанием, что мол, все равно на вшивых русских хакерских серверах висит, поэтому мол читайте у меня - конкретно сейчас сервер недоступен, так что надо искать на этих самых серверах smile

PM MAIL   Вверх
Google
  Дата 27.1.2020, 18:04 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2796 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.