Архитектура системы
- From
- Alex Surkov (2:5022/128.11)
- To
- All (2:5054/37.63)
- Date
- 2005-07-21T17:51:22Z
- Area
- SU.DBMS
/*Hello, All!*/
Господа, предложите свою версию решения задачи.
Есть некая система сбора данных, которая получает и сваливает данные в таблицу
MySQL (на этом же компе) несколько раз в минуту. Эти данные можно потом
анализировать (тоже на этом компе), например, строить графики по разным
критериям. Акцентирую, что все перечисленное работает на одном изолированном
ПК.
Таблица вида: id, timestamp, value1, value2, ..., valueN.
Теперь хочется создать некоторое приложение, что называется out-of-the-box,
позволяющее анализировать (только анализировать) собранные данные на другом
компе. Компы сетью не соединены. Каким образом лучше/удобнее 1) организовать
перенос данных с первого компа (хост) и 2) их хранение во втором (клиент)?
Мои домыслы таковы. К хосту прикручивается функция экспортирования записей из
БД в файл XML. На клиенте ставится СУБД MySQL (инсталлятором вместе с основной
программой), в БД которой импортируется XML. Недостатки этого способа
заключаются в том, что при экспортировании большой выборки средствами MSXML
(DOM) получается "файлик" на 15 метров, а процесс этого экспорта кушает около
200 метров памяти. А IE при открытии (ну, так, если посмотреть захотелось) ──
вообще до полугига распухает. Можно, конечно, разбить всё это на куски... Но
может есть какие другие более лёгкие средства генерации XML (SAX, насколько я
понял не предназначен для этого, а DOM "держит всё в голове")?
Или может вообще я зря связался с XML? Насколько оправдано его применение
здесь? Просто хотелось в будущем прикрутить XSLT, чтобы эти качующие данные
можно было посмотреть автономно в браузере или конвертнуть в любой другой
формат.
И насколько удобно каждому клиенту ставить свою копию MySQL (повторяю, сети
нет)? Или может, например, заюзать для клиентов Berkeley DB XML, и
импортировать XML в него... Боюсь, как бы тогда слишком тормозно не вышло,
данных много... А может вообще отдать предпочтение какому-то другому транспортному формату (но и изобретать велосипед не хочется)?..
А есть ещё вариант создания клиентского приложения с MySQL embedded.
Кто-нибудь такое практиковал? В принципе, такой вариант смотрелся бы достаточно изящно и просто (тупо) для конечного пользователя... Или применить какую-то другую СУБД для клиента (более простую, какую не знаю).
Можно было бы, например, экспортировать с хоста сразу в файл mdb (ну, типа, Access), а из него уже на клиенте сваливать в другой общий mdb и с ним работать. Но потянет ли один mdb несколько миллионов записей?
/Sincerely yours, Alex./
... np: Anastacia - Seasons Change
--- WinNT 5.2.3790 uptime: 0 day(s) 2 hour(s) 28 min(s)
* Origin: -= AlexSu Station =- (2:5022/128.11)
SEEN-BY: 50/203 450/186 451/30 452/25 100 454/9 455/15 461/33 74 106 640
SEEN-BY: 463/92 464/34 465/213 469/125 200 478/44 55 550/5068 4614/20 4625/9
SEEN-BY: 4635/4 1024 4653/10 4657/50 5001/50 5001 5002/5002 5003/34 5009/14
SEEN-BY: 5010/53 146 5011/13 5012/23 5015/4 28 5020/52 104 115 128 133 150 175
SEEN-BY: 5020/201 371 400 545 642 715 755 758 794 830 894 968 982 1100 1169
SEEN-BY: 5020/1212 1234 1523 1604 1626 1642 1826 1873 1930 1992 2020 2140 2200
SEEN-BY: 5020/2238 4400 4441 8383 5022/5 128 5023/11 5025/750 5026/45 5029/32
SEEN-BY: 5030/69 195 382 436 473 556 611 920 966 1016 1520 1900 5031/47 5033/5
SEEN-BY: 5033/35 5034/8 5035/10 5036/13 5037/21 36 5041/4 5042/13 21 5045/7
SEEN-BY: 5049/157 5050/9 41 5051/35 5053/16 5054/1 8 9 28 35 37 45 50 63
SEEN-BY: 5055/95 5056/16 5058/77 5059/20 5062/10 5063/51 5064/7 35 5070/26 66
SEEN-BY: 5070/1222 5079/49 5080/1003 5082/6 5083/13 21 5084/32 5093/4 27
SEEN-BY: 5100/113 6001/3 6023/1 6033/2727 6045/7
PATH: 5022/128 5020/4441 52 5054/1 37