|  | 
| 
Величина транзации при парсинге | |||
|---|---|---|---|
| #18+ Доброго времени суток всем. Делаю на python парсер данных сайта. В результате парсинга будет создана таблица с количеством столбцов около 20 и строк около 2000. На сайте это примерно 200 html страниц по 10 элементов (каждый из которых будет преобразован в одну строку в таблице). Планируется сделать возможность создания этой таблицы в разных форматах, пока скорее всего это будут sqlite или файл html. Надо решить, какой величины делать транзакцию при записи данных в таблицу. С одной стороны вроде бы правильно все данные записывать за одну транзакцию. С другой стороны чтобы не забивать оперативную память и для того, чтобы легче искать причины возможных "падений" парсера - транзакции можно сделать равными одной странице сайта (что равно 10 строкам таблицы). Может быть это пригодится в будущем, если придется использовать данный парсер для значительно бОльшего количества данных -десятки, сотни и более тысяч строк. Как считаете какой вариант лучше и по каким причинам? Или есть еще какие-то варианты? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.03.2019, 16:22 |  | ||
| 
Величина транзации при парсинге | |||
|---|---|---|---|
| #18+ Транзакция БД не должна быть меньше бизнес-транзакции. И больше её делать тоже не стоит. Так что читай ТЗ на предмет "всё или ничего" для твоего процесса. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.03.2019, 16:28 |  | ||
| 
Величина транзации при парсинге | |||
|---|---|---|---|
| #18+ Dimitry SibiryakovТак что читай ТЗ на предмет "всё или ничего" для твоего процесса. Все ТЗ в моей голове, так как парсер делается для себя. И кратко изложено в начале топика. К нему можно еще добавить что после скачивания каждой html страницы делается пауза рандомной величины от 1 до 8 секунд (чтобы не создавать чрезмерной нагрузки на сайт не раздражать его админов). То есть, видимо в данном случае надо закрывать транзакцию после скачивания каждой страницы? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.03.2019, 16:50 |  | ||
| 
Величина транзации при парсинге | |||
|---|---|---|---|
| #18+ Решил делать постраничные транзакции.  Так можно будет в случае аварийных завершений или редко встречающихся ошибок парсинга в при следующих запусках скачивать только не скачавшуюся корректно часть страниц а не начинать каждый раз заново. Целостность данных можно будет обеспечить отслеживанием номеров корректно скачанных страниц (для приблизительного позиционирования, так как время от времени элементы страниц на сайте добавляются) и заголовков элементов (каждый элемент имеет уникальный заголовок). Отслеживание по заголовку будет применяться для точного поиска последнего корректно скачанного элемента после примерного определения необходимой страницы. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 31.03.2019, 08:14 |  | ||
|  | 

| start [/forum/topic.php?fid=32&fpage=5&tid=1539948]: | 0ms | 
| get settings: | 10ms | 
| get forum list: | 13ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 35ms | 
| get topic data: | 11ms | 
| get forum data: | 2ms | 
| get page messages: | 37ms | 
| get tp. blocked users: | 1ms | 
| others: | 14ms | 
| total: | 129ms | 

| 0 / 0 | 
