Я хотел бы создать веб-интерфейс для представления логданных. Это должна быть хорошая возможность попытаться создать небольшое веб-приложение с использованием Grails, которое я давно хотел опробовать, но у меня возникли некоторые проблемы с пониманием того, как я могу «перевести» сегодняшние ручные SQL-запросы в что-то пригодное для Грааля.
Я не нашел слишком много информации о переоборудовании существующих таблиц данных в классы домена в книге Grails In Action. Поэтому я привожу это здесь для некоторых разъяснений:)
Это в основном схема для таблицы журнала, в которую я веду журнал сегодня:
LOG(id,method,timestamp,millis_used,username,hostname,...etc)
Я вижу, как я делаю что-то вроде создания классов домена User и Host с сопоставлениями вроде hasMany = { logs: Log }
и класса Log с belongsTo = { user: User }
, но не то, как я могу эффективно использовать это для запроса моих данных, особенно если с сотнями тысяч строк журнала. Я обычно делаю запросы к данным типа "find the average time used for method='fooBar' and user='john_doe' the last 30 days"
или "count the number of rows where method='fooBaz' and host='localhost' from May to December"
.
Как вы собираетесь получать информацию, подобную этой? Не могли бы вы просто забыть о сопоставлении записей в журнале и просто использовать какие-то прямые запросы SQL (HQL?) К таблицам или можно использовать этот (неизвестный мне) зверь GORM для подобных вещей?