Я хотел бы создать веб-интерфейс для представления данных журнала. Это должна быть хорошая возможность попытаться создать небольшое веб-приложение с использованием Grails, которое я давно хотел опробовать, но у меня возникли некоторые проблемы с пониманием того, как я могу «перевести» сегодняшние ручные SQL-запросы в что-то полезное для Grails.
Я не нашел слишком много информации о модернизации существующих таблиц данных в классах предметной области в книге Grails в действии. Так что я приношу его сюда для некоторого разъяснения :)
Это в основном схема для таблицы журнала, в которую я вхожу сегодня:
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 для подобных вещей?