2014-01-09 3 views
0

Я занимаюсь обновлением/повторной записью приложения для анализа данных, которое я написал пару лет назад. То, что я пытаюсь достичь, выглядит следующим образом:Невозможно экспортировать базу данных/каталог в один файл в HSQLDB

  • Мне нужно иметь легкую базу данных для выполнения запросов, я решил использовать HSQLDB.
  • У меня будет 2 приложения; один для создания БД и тот, который будет выполнять анализ (будет использоваться другими). Мое намерение состоит в том, что программное обеспечение для анализа (которое многопоточно) будет использовать БД в режиме только для чтения.
  • БД, скорее всего, будет распространяться по FTP и предпочтительно с минимальными трудностями для пользователя программного обеспечения для анализа (большая часть которые не очень технически квалифицированы).

Я не очень хорошо читаю SQL, но мне удалось получить информацию в таблицах и опробовать простые запросы. Поэтому, чтобы закончить приложение «создатель базы данных», мне просто нужно выяснить, как «упаковать» БД.

Я экспериментировал и с мем и файл «каталоги» as described in the HSQLDB user guide, когда я генерировать БД. Как я понимаю, с каталогами мем Я не могу записать их на диск (для распространения позже) и с файлов каталогов Я несколько файлов, которые необходимо позаботиться о:

файл: каталог состоит из от 2 до 6 файлов, все они называются одинаковыми , но с разными расширениями, расположенными в том же каталоге. Для Например, база данных с именем "тест" состоит из следующих файлов:

• test.properties

• test.script

• test.log

• test.data

• test.backup

• test.lobs

Файл свойств содержит несколько настроек базы данных. Файл сценария содержит определение таблиц и других объектов базы данных, а также данные для не кэшированных таблиц. Файл журнала содержит последние изменения в базе данных. Файл данных содержит данные для кэшированных таблиц , а файл резервной копии представляет собой сжатую резервную копию последнего известного согласованного состояния файла данных . Все эти файлы необходимы и никогда не должны удаляться. Для некоторых каталогов файлы test.data и test.backup не будут присутствовать. В дополнение к этим файлам, база данных HyperSQL может ссылаться на любые форматированные текстовые файлы, такие как CSV-списки, где угодно на диске.

Вопрос (ы):

  1. Я думаю *.script и *.properties файлы являются наиболее важными из них, но руководство в частности, говорится, что все файлы имеют важное значение и не должны быть удалены. Поскольку в моем случае нет файла *.data, и все данные для генерации моей базы данных хранятся в файле *.script (в ясном тексте), это заставляет меня думать, что когда я «открываю» этот файл, JVM полностью воссоздает всю БД , Это верно? Разве это не очень неэффективное представление данных?

  2. Если мое понимание в (1) верное, почему другие файлы необходимы? Должен ли я распространять их все?

  3. Если (1) и (2) не являются внедорожниками, то какие варианты я должен выполнить для своей цели? Возможно ли, например, gzip все файлы и транспортировать их таким образом? Тогда мой анализ программного обеспечения не потребуется распаковать их в разумном месте, и сделать очистку время от времени, когда он получает «людно» там ...

+0

Вы можете использовать 'script' команду: http://hsqldb.org/doc/2.0/guide/management-chapt.html#N1482D –

+0

@a_horse_with_no_name не уверен, что я понимаю, командный сценарий, очевидно, создает скрипт, содержащий инструкции SQL для воссоздания БД. Разве это не файл '.script', который у меня уже есть? В разделе «Руководство пользователя» (HSQLDB) указано: «Реестр: каталог состоит из файлов для небольшой базы данных, доступной только для чтения, которая может храниться в ресурсе Java, таком как архив ZIP или JAR, и распространяется как часть Java-приложения ». Именно это я и надеялся достичь – posdef

ответ

0
  1. Если нет * .data или * .lobs, тогда файл .script содержит все данные, а также определения таблиц. В этом случае JVM воссоздает базу данных, читая файл .script.

  2. Другие файлы являются существенными, если они существуют. Если вы не используете LOB, файл .lobs не будет. Если вы не используете таблицы диска (таблицы CACHED), файл .data не будет.

  3. Вы можете распространять только файл .script. Каждый раз, когда этот файл открывается, файл .properties будет создан, если он не существует.

  4. Вы можете использовать параметр res:, если ваша база данных не изменяется. Для баз данных, которые меняются и требуют перезагрузки, используйте параметр file:.

Смежные вопросы