5

当社はあいまいなメトリクスを計算するレポートが大好きです。メトリクスは ActiveRecord のファインダー (find_by_sql を除く) では計算できず、ruport の ruby​​ ベースの機能では遅すぎます。

データベース層で大規模な計算を行うプラグイン、gem、または db アダプターはありますか? 複雑なレポートを作成するためのソリューションは何ですか?

4

5 に答える 5

2

データベースに依存しませんが、私たちの解決策は plpgsql 関数で、Ruby と ActiveRecord を使用すると非常に遅くなります。

于 2009-06-27T15:56:53.350 に答える
1

テーブルを正規化できるかのように聞こえます。私が働いていたある場所では、行った正規化の量がレポートのニーズに影響を与えていたため、多数の集計データを含むいくつかのシャドー テーブルを作成し、それに対してレポートを作成しました。

質問が少し漠然としているという Neil N のコメントに同意しますが、おそらくこれで正しい方向に進むことができますか?

于 2009-06-28T20:47:07.900 に答える
1

Thoughtbot の Squirrel プラグインは、ActiveRecord の find メソッドに多くの Ruby っぽい機能を追加し、多層化された条件、範囲、およびネストされたモデルの関連付けを使用します。

www.thoughtbot.com/projects/squirrel/

于 2009-06-26T19:55:29.833 に答える
1

SQL ビューまたはストアド プロシージャの使用を妨げているレポート固有の要素はありますか?

ある特定のプロジェクトでは、データベース内の名前付きビューとして SQL クエリ (非常に複雑な場合があります) を作成し、

 YourModel.connection.select_all(query)

データを引き戻します。これは最適なアプローチではありません。改善策を模索したいと思います。

残念ながら、あなたが示唆したように、レール内で複雑なデータベースベースのレポートを計算するためのサポートはかなり制限されているようです.

于 2009-06-27T11:40:06.157 に答える
0

複雑なクエリに必要な表現力が ActiveRecord に欠けていることがわかった場合は、ORM にDataMapperまたはSequelを使用することを検討してください。ActiveRecord からの切り替えはおそらく決定ではありませんが、少なくとも調査する価値はあるでしょう。

于 2009-06-28T08:05:07.520 に答える