ログデータを表示するためのWebインターフェイスを構築したいと思います。これは、Grailsを使用して小さなWebアプリを構築する良い機会になるはずです。これは、私がかなり前から試したいと思っていましたが、今日の手動SQLクエリをに「変換」する方法を理解するのに苦労しています。 Grailsに使用できるもの。
Grails In Actionの本で、既存のデータテーブルをドメインクラスに後付けすることについての情報はあまり見つかりませんでした。だから私はいくつかの説明のためにそれをここに持ってきます:)
これは基本的に、今日ログに記録しているログテーブルのスキーマです。
LOG(id,method,timestamp,millis_used,username,hostname,...etc)
hasMany = { logs: Log }
ドメインクラスUserとHostをのようなマッピングで作成し、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獣をこのようなものに使用できますか?