LINUX.ORG.RU

PostgreSQL + Python(PHP?) + XML (очень много!)


0

0

Вообщем задача такая:

1. Есть куча XML файлов (порядка 30-40 Gb и это не предел)

2. нужно организовать по ним сквозной поиск (по определенным параметрам) с выдергиванием соответствующего узла и формированием нового документа, который содержит данный узел

Планирую решать задачу примерно так:

1. При помощи XSLT формируются CSV файлы по основным параметрам поиска (имя файла;...;...;...)

2. Данные загружаются в БД

3. Пишется веб-мордочка для осуществления задач описанных выше

Вопрос:

1. Планирую использовать в качестве СУБД PostgreSQL - как у нее с большими объемами данных?

2. В качестве веб-сервера Apache - слышал что сильно требователен к ресурсам при большом количестве подключений

3. Python - как с библиотеками для работы с XML (XPath, XSLT, XQuery), либо PHP т.к. с ним все же больше опыта

4. Количество одновременно работающих пользователей от 5 до 100 человек

5. И самое грустное что все это должно крутиться на обычном PC

P.S. может плюнуть и написать обычный толстый клиент?


> 1. Планирую использовать в качестве СУБД PostgreSQL - как у нее с большими объемами данных?

А как у вас с чтением книжек с большим числом страниц? Небось в зависимости от того, является ли книжка полным собранием марининой или курсом матфизики... Также и у СУБД... примерный вид запросов давайте, тогда можно о чем-то говорить будет.

> 2. В качестве веб-сервера Apache - слышал что сильно требователен к ресурсам при большом количестве подключений

Вопрос в том, нужно ли иметь такое большое количество подключений.. если у вас нету клиентов на диалапе или недругов которые вас ддосят, можно обойтись и без большого числа подключений... (и большое - это сколька? 100? 1000?)

> 3. Python - как с библиотеками для работы с XML (XPath, XSLT, XQuery), либо PHP т.к. с ним все же больше опыта

Размер одного XML-файла какой будет?

> 4. Количество одновременно работающих пользователей от 5 до 100 человек

думаю в пределы масштабируемости собственно апача вы не уткнетесь (в пределы масштабируемости вашего кода - запросто)

> 5. И самое грустное что все это должно крутиться на обычном PC

интересно, а какая у вас "конфигурация мечты" для такого проекта?

> P.S. может плюнуть и написать обычный толстый клиент?

А чем это поможет?

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

>Небось в зависимости от того, является ли книжка полным собранием марининой 
От Марининой меня тошнит ) 

>Также и у СУБД... примерный вид запросов давайте, 
тогда можно о чем-то говорить будет. 

Примерный вид запросов:

select 
 file_name, date_upload, 
 doc_type, xpath 
from tbl 
where 
  code = '123456' 
  and code_2 = '1234567'

>Размер одного XML-файла какой будет? 
Средний размер одного файла от 500 кб до 10 Мб

>А чем это поможет? 

Нарезку XML можно переложить на клиента

NixU
() автор топика
Ответ на: комментарий от NixU

>>Также и у СУБД... примерный вид запросов давайте, тогда можно о чем-то говорить будет.

> Примерный вид запросов:

> select > file_name, date_upload, > doc_type, xpath > from tbl > where > code = '123456' > and code_2 = '1234567'

Ок, запрос простой. Такое почти любая СУБД осилит... индекс по (сode,сode_2) или (code),(code2) и вперед... *Может быть* MySQL будет побыстрее, но скорее всего разница между скоростью PostgreSQL-я и самым лучшим возможным результатом будет не такой большой чтобы стоило перебирать СУБД и искать наилучшую. Короче если привыкли к PG, берите PG.

>>Размер одного XML-файла какой будет?

> Средний размер одного файла от 500 кб до 10 Mб

Вот. Если вы будете 10МБ XML-я парсить а потом XPath вычислять и обратно дампить, то тут-то тормоза и начнутся... Посмотрите, у некоторых либ есть оптимизированная обработка подмножеств XPath-а и/или XQuery.. вроде в libxml было чего-то.

Вообще, так ли вам надо на ходу обрабатывать XML-и? Может лучше растащить все по базе - каждую часть хранить отдельно? Чтобы сервер раздавал блобы (в идеале - зипованные...), не лазая в их внутренности

>>А чем это поможет?

> Нарезку XML можно переложить на клиента

а сеть выдержит??

gods-little-toy ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.