Сбор, хранение и обработка данных из строки

 
0
 
Delphi, Kylix & Pascal
ava
Pcrepair | 04.10.2013, 16:11
Добрый день. Есть следующая ситуация:
- Веб-сайт, на сайте множество страниц, на каждой странице php скрипт
- при обращении к странице скрипт записывает в лог-файл строку со следующими параметрами:
<имя страницы> <времы вызова страницы> <ИП-адрес получателя страницы>
Раз в сутки к лог-файлу подключается программа, перносит данные к себе и обнуляет лог-файл
на текущий момент объем строк может быть от 30 до 100 тысяч строк в сутки (число страниц Х число посещений)
собирать данные нужно в течение нескольких лет, это уже десятки а то и сотни миллионов строк
кроме того периодически нужно получать выборки из это массива строк по заданному параметру (например ИП-адрес, в периоде с такого то числа по такое), для анализа

Вопрос:
как правильно организовать все выше перечисленное? наверно БД?
если у кого есть опыт решения похожих задач, подскажите, если не сложно
Comments (10)
ava
MetalFan | 04.10.2013, 16:25 #
Цитата (Pcrepair @  4.10.2013,  15:11 findReferencedText)
наверно БД? 

в верном направлении мыслите, товарищ)

не вижу ничего сложного в задаче.
какие конкретно моменты не ясны?
Парсишь текст, пихаешь в таблицу в БД...
ava
Akella | 04.10.2013, 16:44 #
Цитата (Pcrepair @  4.10.2013,  15:11 findReferencedText)
наверно БД? 

 smile 
ava
Pcrepair | 05.10.2013, 10:08 #
Цитата (MetalFan @ 4.10.2013,  16:25)
не вижу ничего сложного в задаче.

какие конкретно моменты не ясны?

Парсишь текст, пихаешь в таблицу в БД...

неясных моментов есть, для того кто пока не работал с БД в Делфи:
- в Делфи есть компоненты для работы с БД, будут ли они работать со всеми типами БД(оркуль, mySQL и еще штук пять разных)
- выбор типа БД по ряду параметров(ну это видимо отдельная тема для другого раздела форума)
- нет ли примера программы желательно с исходником демонстрирующей процесс записи-чтения-сортировки из БД, учимся на чужих ошибках
ava
Akella | 05.10.2013, 10:41 #
Цитата (Pcrepair @  5.10.2013,  10:08 findReferencedText)
- в Делфи есть компоненты для работы с БД, будут ли они работать со всеми типами БД(оркуль, mySQL и еще штук пять разных)


Зачем одновременно столько?
Одной СУБД должно вполне хватить. Я бы взял Oracle или Firebird или MS SQL.
Если нужно одновременно несколько СУБД, то придётся использовать dbExpress (я не рекомендую) или FireDAC, или UNIDAC (рекомендую).
ava
Akella | 05.10.2013, 12:56 #
Цитата (Pcrepair @  4.10.2013,  15:11 findReferencedText)
- при обращении к странице скрипт записывает в лог-файл строку со следующими параметрами:

переделайте, пусть пишет прямо в базу
К базе с логами может подключаться, хоть веб-интерфейс, на тот же сайта можно модуль дописать, хоть клиентская программа на дельфи. Но если данных многова-то, то лучше с базой локально работать.
ava
Pcrepair | 05.10.2013, 14:55 #
да не может скрипт писать в БД
БД на компутере аналитика
аналитик, приходит на работу, включает компутер
в компутере запускается программа, подключается к веб-серверу по ФТП считывает лог-файл, в который в течении суток скрипты писали данные о посещаемости страниц, передает данные данные в БД (миллиарды строк 3...5 полей их каждой стоки)

аналитик заказывает программе сделать выборку по таким то полям БД (дата, ИП-адресс, имя страницы)
программа (та же самая, там не только ФТП-клиент) организует запросы к БД и в табличном виде выдает результат

почему такая логика? потому что хост не свой, и хранить на чужом хосте гигибайты данных с важной информацией нецелесообразно

Хоть форум не тот , но вопросы по БД задам.
Нужна БД со следующими параметрами
- вместимость миллиарды записей(3...5 полей)
- встроенные в БД защита от сбоев файловой системы НТФС(битые клястеры  ЖД, ошибки записи чтения ФС  и прочее)
- встроенная дублированиие данных(типа РЕИД зеркало)
- без тормозов операции чтения-записи
- возможность организовать максимально быстрый поиск нужных данных
- возможность все выше перечисленное написать в ДЕЛФИ(написать программу для работы с этой БД)
Вопрос: какая БД больше всего соответствует перечисленным требованиям? 
ava
Vas | 05.10.2013, 17:46 #
ORACLE
ava
DYUMON | 07.10.2013, 06:09 #
бери sqlite , кидай базу  на терабайтный винт и пиши пиши пиш, раз в месяц или в год закрывай базу и пиши в новую.
ava
Poseidon | 07.10.2013, 08:17 #
DYUMON, у Вас есть реальный опыт работы с терабайтными базами Sqlite? На сколько мне известно, одним из недостатков Sqlite является плохая работа с большими базами. 
ava
Akella | 07.10.2013, 08:41 #
Думаю, что Sqlite можно было бы использовать как хранилище настроек или для небольшой базы в силу своих ограничений.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit