Postgres Followers に関する Heroku のドキュメントでは、「Followers は ... 分析のためにデータの読み取り専用ビューを提供するために使用される可能性がある」と宣伝していますが、これを実装する方法についての洞察はありません。
私の計画は、「メインデータベース」を「分析データベース」によってミラーリングすることです。分析データベースで実行されているいくつかの主要な数値処理SQLクエリを実行し、結果をメインデータベースのテーブルに保存します。
一般的なアクセスにメイン データベースを使用しながら、これらのクエリの分析データベースにアクセスする方法の詳細は見つかりませんでした。私が見つけたリソースのほとんどは、通話について話しています
class MyModel < ActiveRecord::Base
establish_connection :analytics # and configure analytics within config/database.yml
end
ただし、これにより、MyModel のすべてのストレージがフォロワーに配置されます (フォロワーが読み取り専用であるため、これは偶然にも機能しません)。主なストレージスペースをメインデータベースに配置したいのですが、フォロワーに対していくつかの(読み取り専用)アクセスを行うだけです。
可能な解決策:
1) 「運用」ではなく「分析」など、別の環境で実行されている Rails アプリの別のインスタンスを用意します。したがって、すべてのアクセスに分析データベースが使用されます。次に、結果を格納します
class AnalyticsData < ActiveRecord::Base
establish_connection :production if Rails.env == 'analytics'
end
これにより、AnalyticsData の結果がメインの運用データベースに格納されます。
2) Rails アプリの単一のインスタンスを用意します。
- 分析作業を開始する前に、ActiveRecord::Base.establish_connection(:analytics) を呼び出します。
- クランチをする
- ActiveRecord::Base. Establish_connection(:production) を呼び出します
- AnalyticsData オブジェクトをインスタンス化して結果を保存する
後者のアプローチが機能するかどうかはまったくわかりませんが、2 つの Heroku アプリの同期を維持することを心配する必要がないという利点があります。
考え?ありがとう!