AnyLogic
Развернуть
Размер шрифта

База данных AnyLogic

В моделях AnyLogic теперь есть встроенная база данных, из которой можно считывать входные данные и куда можно записывать результаты экспериментов. База может экспортироваться вместе с моделью и, как и модель, использоваться на любых устройствах.

База данных позволяет:

  • Считывать значения параметров и задавать конфигурацию экспериментов.
  • Параметризовать популяции агентов.
  • Задавать частоту прибытия агентов в процессных моделях.
  • Импортировать данные из других БД или таблиц Excel и хранить их в доступной форме.
  • Вести журналы диаграмм процессов, переходов в диаграммах состояний, пересылки сообщений, а также биографии агентов.
  • Отслеживать использование ресурсов, время обработки агентов и движения.
  • Сохранять и экспортировать статистику, наборы данных и любые виды журналов.
  • Экспортировать данные в электронные таблицы MS Excel.
  • Создать резервную копию БД и восстановить БД.

База данных содержит таблицы и представления. И те и другие можно сгруппировать в группы таблиц.

Можно легко импортировать базу данных в ваш проект AnyLogic из внешней базы данных или электронной таблицы MS Excel. Кроме того, можно создать пустые таблицы базы данных и ввести данные вручную.

Свойства

Основные

Размер — Отображает размер базы данных на диске.

Создать или импортировать таблицу… — Щелкните по ссылке для создания новой таблицы базы данных или для импорта таблиц из существующей внешней БД.

Создать резервную копию БД…* — Щелкните по этой ссылке, чтобы создать резервную копию базы данных. AnyLogic сохраняет резервную копию в формате TAR.GZ. После того, как вы создали резервную копию, вы сможете отменить изменения в той базе данных, с которой вы сейчас работаете, путем восстановления данных из резервной копии (см. опцию ниже).

Восстановить БД…* — Щелкните по этой ссылке, чтобы восстановить базу данных из резервной копии. Во время восстановления, вы заменяете текущую базу данных резервной копией, которую ранее создали, воспользовавшись опцией Создать резервную копию БД… (см. опцию выше). При восстановлении база данных возвращается к состоянию, в котором она была на момент создания резервной копии.

Удалить базу данных* — Щелкните по этой ссылке, чтобы полностью удалить базу данных. Удаление базы данных автоматически отключает опцию Оптимизировать размер при закрытии модели.

Оптимизировать размер при закрытии модели* — Если эта опция выбрана, при закрытии модели данные БД будут сжаты, чтобы занимать меньше дискового пространства. Если база данных достаточно крупная, на закрытие БД в компактном режиме уйдет много времени. Если эта опция не выбрана, данные будут сохранены, как они есть.
Опция автоматически включается и становится недоступной для любых изменений, если вы выбираете опцию Записывать в журнал информацию о выполнении модели. Кроме того, она всегда срабатывает при экспорте в AnyLogic Cloud или отдельное Java-приложение. То же самое происходит, если вы открываете существующую модель, в которой эта опция выбрана или отключена, но какие-то логи уже хранятся в базе данных.
Более подробную информацию об этом режиме оптимизации вы можете найти в справке HyperSQL.

* Опция доступна только в том случае, если база данных не пустая.
Импорт

Эта секция свойств видна, если база данных содержит таблицы, которые были импортированы из внешней базы данных. Вы можете настроить синхронизацию данных и обновить данные в импортированных таблицах после внесения изменений во внешнюю базу данных.

Автообновление импортированных таблиц при запуске модели — Если опция выбрана, данные во всех импортированных таблицах будут автоматически обновляться данными из внешней базы данных при каждом запуске модели.

Обновить данные таблиц — Щелкните по этой ссылке, чтобы обновить данные во всех импортированных таблицах данными из внешней базы данных.

Источники исходных данных — Список путей ко внешним источникам данных для всех импортированных таблиц БД AnyLogic. Если файл расположен вне папки с моделью, в списке будет отражаться абсолютный путь к этому файлу. Если файл расположен в папке модели, будет отражаться только название файла.

Экспорт

Эта секция содержит свойства, относящиеся к экспорту базы данных в файл Excel. Как экспортировать базу данных AnyLogic описано здесь.

Настройки экспорта — Здесь вы можете указать файл Excel, в который будут экспортироваться данные БД и выбрать таблицы БД и журналы (если активировано ведение журнала модели).

Экспорт таблиц в Excel — Щелкните по этой кнопке, чтобы экспортировать данные БД в файл Excel.

Экспортировать таблицы после прогона модели — Выберите эту опцию, чтобы автоматически экспортировать данные БД в файл Excel по завершении прогона модели.

Экспортировать в — Здесь отображается путь к файлу Excel, который вы выбрали для экспорта данных БД.

Журнал

Записывать в журнал информацию о выполнении модели — Если опция выбрана, то в журнал модели будет записываться информация о выполнении модели, а также автоматически включится опция Оптимизировать размер при закрытии модели. Обратите внимание, что запись информации в журнал поддерживается только для простого эксперимента.

Удалить журналы - Щелкните по этой ссылке, чтобы удалить текущие логи выполнения модели.

Функции

Чтобы получить доступ к функциям встроенной базы данных модели, вызовите Java-объект ModelDatabase с помощью следующего метода:

getEngine().getModelDatabase()

Основное назначение объекта ModelDatabase — обеспечивать связь между внутренней базой данных модели и внешними источниками данных (например, Excel-файлами).

Работа с внешними источниками данных
Функция Описание
void importFromExternalDB(Connection sourceConnection, String sourceTableName, String targetTableName, boolean clearTargetTable, boolean autoCommit) Импортирует данные из указанной таблицы внешней базы данных. Для корректной работы этой функции необходимо, чтобы в колонках таблиц внутренней и внешней баз данных совпадали типы данных — или их можно было конвертировать.

sourceConnection — существующий объект Connection (соединение с базой данных), который можно получить вызовом метода Database.getConnection().
sourceTableName — строка с именем таблицы базы данных, которую вы хотите импортировать из внешнего источника данных.
targetTableName — строка с именем таблицы внутренней базы данных моделей, которую вы хотите наполнить с помощью функции.
clearTargetTable — если true, пытается удалить все данные из целевой таблицы во внутренней базе данных модели перед вызовом функции.
autoCommit — если false, вызов функции не повлечет исполнения транзакции базы данных (может повлиять на производительность).
void exportToExternalDB(String sourceTableName, Connection targetConnection, String targetTableName, boolean clearTargetTable, boolean autoCommit) Экспортирует одну из таблиц внутренней базы данных модели во внешнюю базу данных. Для корректной работы этой функции необходимо, чтобы в колонках таблиц внутренней и внешней баз данных совпадали типы данных — или их можно было конвертировать.
Если таблица во внешней базе данных — это лист Excel, обратите внимание на следующие требования:
  • В файле XLS/XLSX должен присутствовать лист с названием, указанным в значении аргумента targetTableName.
  • Первый ряд листа (заголовочный) должен включать названия колонок. Порядок и названия колонок в этом листе должны соответствовать значениям в экспортируемой таблице внутренней базы данных модели AnyLogic.
sourceTableName — строка с именем таблицы внутренней базы данных, которую вы хотите экспортировать.
targetConnection — существующий объект Connection (соединение с базой данных), который можно получить вызовом метода Database.getConnection().
targetTableName — строка с именем таблицы внешней базы данных, в которую будет осуществляться экспорт.
clearTargetTable — если true, пытается удалить все данные из целевой таблицы во внешней базе данных перед вызовом функции. Данный механизм в настоящее время не работает с файлами Excel, поэтому при экспорте в них этому аргументу следует передать значение false.
autoCommit — если false, вызов функции не повлечет исполнения транзакции базы данных (может повлиять на производительность).
Более подробное описание работы данных функций можно найти в следующих статьях: Импортирование таблиц базы данных, Экспорт данных в книгу MS Excel.
Работа с журналами
Функция Описание
void deleteExistingLogObjects(connection) Удаляет все данные из журнала выполнения модели.

connection — существующий объект Connection (соединение с базой данных), который можно получить вызовом метода Database.getConnection().
Как мы можем улучшить эту статью?