powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для временного хранения данных из бинарного файла (под Delphi).
25 сообщений из 311, страница 1 из 13
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758148
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Суть проблемы - есть куча бинарных файлов, хранящих в себе информацию о результатах лазерного сканирования. Файлов может быть много, файлы могут быть тяжелыми (порядка 10-15 млн записей, но это уже край, обычно 3-5 млн, 50-150 мб).
Программа (пишу на Delphi) должна проанализировать файл на наличие дублирующихся записей и произвести какое-либо действие по выбору пользователя.

Предполагается такой план работы:
1. Чтение и одновременная запись из бинарника в БД;
2. Запрос на поиск дублирующихся данных (совпадение нескольких полей у разных записей);
3. Произведение выбранного действия (либо просто ответ да\нет, сколько и т.п.);
4. Вывод инфы из БД в бинарник (опционально);
5. Очистка временной БД;

Соответственно ищется БД с достаточно большой скоростью записи и поиска дублирующихся значений. Как дополнительно - желательно встраиваемая в исполняемый файл, дабы не смущать пользователей лишними файлами (но это не обязательно).

Ну и желательно (но совсем не обязательно) - описание того как вообще с ней работать (запросы и т.п.).

Кто чего посоветует???
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758158
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посоветуем не забивать гвозди микроскопом и решить задачу тупо и просто (а заодно намного более эффективно).
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758160
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerрешить задачу тупо и просто

Ну что ты, он же Кнута не читал, ему для сортировки и поиска дубликатов позарез СУБД
нужна... FvMAS - то, что ему нужно. Как раз на Дельфи...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758164
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНу что ты, он же Кнута не читал, ему для сортировки и поиска дубликатов позарез СУБД
нужна... Читавший Кнута вряд ли станет решать эту задачу сортировкой.. Разве что если при записи обратно в бинарник она всё равно нужна.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758166
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял, что надо почитать Кнута... да его я не читал, скрывать не буду...
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758168
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЧитавший Кнута вряд ли станет решать эту задачу сортировкой..

Э? А как?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758180
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freimaks
Кто чего посоветует???

Я так думаю нужно поискать компонет реализующий set , multiset, map, multimap для делфи.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758190
Dimitry SibiryakovsoftwarerЧитавший Кнута вряд ли станет решать эту задачу сортировкой..

Э? А как?..

Так же как это делают все современные СУБД, без сортировки.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758206
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
без сортировкиТак же как это делают все современные СУБД, без сортировки.

А конкретнее? Как это делает Оракул, например?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758211
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Понял, что надо почитать Кнута... да его я не читал, скрывать не буду...

Смотри, пока всего не прочитаешь -- и не думай двигаться дальше !
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758234
hash match group by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovбез сортировкиТак же как это делают все современные СУБД, без сортировки.

А конкретнее? Как это делает Оракул, например?

hash match group by
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758275
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hash match group byhash match group by
А сортировка по хэшу, конечно же, сортировкой не является. Ню-ню...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758279
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Сортировка по хэшу" - это в анналы. "Автор, пеши исчо" (ц)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758281
hash match group by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovhash match group byhash match group by
А сортировка по хэшу, конечно же, сортировкой не является. Ню-ню...

А как это происходит и в чем преимущество данной сортировки в двух словах расскажите.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758318
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hash match group byА как это происходит и в чем преимущество данной сортировки в двух словах расскажите.
программист должен изучить все виды сортировок, и потом их применять по месту, как из "словаря". Например, я помню, что есть много разных сортировок, и чем они отличаются, но я не помню, как эти сортировки реализованы (код). Но мне это нафиг не надо - открыл любой справочник по программированию, и посмотрел.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758459
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любая NO-SQL база...
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758486
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freimaks 2. Запрос на поиск дублирующихся данных (совпадение нескольких полей у разных записей);
softwarerПосоветуем не забивать гвозди микроскопом
ну - если наборы полей разные? почему бы и не БД? Firebird встроенный или Sqlite как мне думается могут подойти.
Изучать Кнута конечно полезно, и сортировки знать надо... Но на готовом движке получить желаемый результат проще, трудозатраты меньше, гибкость приемлимая - а скорость работы программы так ли сильно пострадает?
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758619
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/18/2012 03:07 AM, Dimitry Sibiryakov wrote:

> А сортировка по хэшу, конечно же, сортировкой не является. Ню-ню...

Хэш не сортирует. Хэш группирует как максимум.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758624
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovну - если наборы полей разные? почему бы и не БД?
Потому что писать загрузку в БД, выгрузку из БД и решать попутные проблемы будет дольше, чем идти прямым путём, и даст куда худший результат.

Vladimir BaskakovНо на готовом движке получить желаемый результат проще, трудозатраты меньше,
Не в этом случае. Кроме того, судя по описанию, работа не разовая, а очень даже регулярная и с суммарно приличными объёмами данных.

Vladimir Baskakov - а скорость работы программы так ли сильно пострадает?
Весьма и весьма. Нормальная программа для этой задачи представляет собой трубу ввод-вывод с фильтром и эффективно параллелится, а с БД придётся сначала всё загрузить, потом обрабатывать (и небось сортировкой - судя по Дмитрию ФБ другого не умеет, лайт тоже вряд ли кто оптимизировал), потом выгружать, и всё это с приседаниями и ненужными проблемами (скажем, конвертацией чисел в какой-нибудь BCD-шный decimal).
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758627
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Не говоря уже о том, что БД будет склонна ещё раз записать эти данные на диск, особенно если они не будут влезать в объём оперативки.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758678
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я боюсь, что если не хватит объема оперативки - своп тоже что-то запишет на диск))))). В индексах БД те-же деревья..... которые используются для удаления дублей из множеств? если совсем грубо? анализ содержимого реляционной БД - запросы с груп-баями. насколько они разнообразны, и насколько просто писать их аналог над самопальными структурами данных? Будет ли эта самопальщина в итоге быстрее?

Стебелек дарит надежду!
http://www.sql.ru/forum/actualthread.aspx?tid=863510 - фтристарас.... Я ничего не путаю?
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758697
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и уж если самому....
то может книжка подскажет....

Бакнелл. "Фундаментальные алгоритмы с структуры данных в Delphi"
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758866
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я уже совсем запутался.
Запихал все в динамический массив, по крайней мере все влазит в оперативу, и теперь надо это все обрабатывать.
Если с субд мне было более ли менее ясно что и как - есть физическая база, к которой я делаю запрос, то с массивом в оперативке мне вообще ничего не ясно. Я к сожалению просто любитель в программировании.
Массив делаю так:
1. Объявляю тип record, в котором описываю свои данные
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
type
TBinPoints_time = packed record //стандартный bin без цвета
PointCoordX: integer;
PointCoordY: integer;
PointCoordZ: integer;
PointCode: byte;
PointEcho: byte;
PointFlag: byte;
PointMark: byte;
PointLine: word;
PointInt:  word;
PointTime: cardinal;
end;
2. Объявляю переменные каждой записи и массива записей (может и не прав, но другого не пришло)
Код: plaintext
1.
2.
3.
4.
5.
var
  Form1: TForm1;
  i:integer;
  PTime:TBinPoints_time;
  PTimeArray:array of TBinPoints_time;
3. Ну и далее процедура чтения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
procedure ReadBinPointsWithRecord(const FileName: String; Output: TStrings);
begin
i:=0;
with TBinaryReader.Create(FileName) do
try
BaseStream.Read(BinHeader, SizeOf(BinHeader));
SetLength(PTimeArray, BinHeader.PntCnt);
while basestream.Position<>basestream.Size do
begin
if (BinHeader.Time>0) and (BinHeader.Color=0) then
begin
BaseStream.Read(PTime, SizeOf(PTime));
PTimeArray[i]:= PTime;
Output.Append('Echo '+inttostr(BinPoints_20020715.PointEcho)+#13);
i:=i+1;
end
Вот так. Ошибок не выдает. 100% что читает правильно - проверял по отдельным частям записи. А чего там в итоге в массиве я пока не знаю... не знаю как проверить если честно.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758875
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freimaks,

СУБД с данными работает, а не с файлами и записями...
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758889
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergSuperFreimaks,

СУБД с данными работает, а не с файлами и записями...
Ну это понятно... я вроде и не говорил, что я субд хочу целый файл запихать. Я хотел туда писать данные из файла.
...
Рейтинг: 0 / 0
25 сообщений из 311, страница 1 из 13
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для временного хранения данных из бинарного файла (под Delphi).
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]