В моей компании есть устаревшая программа микромоделирования, которая моделирует популяцию и изменяет ее в течение нескольких лет.
Для каждого года программа создает двоичный файл с записью для каждого человека, которая содержит их характеристики (например, возраст, семейное положение, доход ... около 20 полей).
В настоящее время у нас есть несколько служебных программ, которые читают эти файлы и создают сводные отчеты. Проблема в том, что каждый раз, когда кто-то хочет получить новый отчет, необходимо написать новую служебную программу.
Изменение программы для сохранения записей в базе данных вместо двоичных файлов не может быть и речи (я спрашивал ... несколько раз). Я написал несколько программ, которые импортируют двоичные файлы в базу данных, а затем выполняют запросы к таблицам, которые я создал. Проблема в том, что импорт данных и выполнение запроса всегда занимает больше времени, чем запуск служебной программы, написанной на c ++, которая просто читает записи одну за другой и накапливает нужные данные. Часто двоичные файлы содержат более 30 миллионов записей, и один шаг импорта занимает вечность.
Так вот мой вопрос. Есть ли что-нибудь, что позволило бы мне указать структуру моего двоичного файла и затем выполнить SQL-запросы к файлу? Я думаю, что вы можете использовать ODBC для выполнения запросов к простым текстовым файлам, но я никогда не видел ничего подобного для двоичных файлов.
Если ничего не доступно, какие шаги мне нужно предпринять, чтобы создать что-то, что могло бы выполнить запрос непосредственно в моем файле? Я понимаю, что это, вероятно, будет далеко за пределами моих возможностей, но не помешает узнать, с чего мне начать.