月ごとに自動的にコンパイルされたレポートを作成する必要があります。このレポートは、2つのアプリ(Railsアプリ、アプリAとBと呼ぶ)の電話番号のユニークなカウントである必要があります。各アプリはPostgreSQLデータベースを持ち、電話番号はテーブルの列です。各アプリで一意の電話番号を取得するのは簡単ですが、それは単に「SELECT COUNT(DISTINCT phone_number)...」というクエリです。しかし、私は両方のアプリケーション(それに、アプリケーションAはテーブルに500kのレコードを持ち、アプリBは8kを持っています)でそれを行うためのシンプルで効率的な方法を考え出すことができません。私は両方のテーブルからすべての電話番号を取り出し、それらをまとめて重複を外さなければならないようです。問題は、メモリ内で扱うレコードが多すぎることです。レポートのアドバイス
誰かがこれを行う最善の方法について助言していますか?ここではいくつかの追加情報があります:
- 両方のアプリケーションが同じサーバー
- データベースサーバが
- アプリは、異なるデータベース上にあるこのサーバー上にもある上にある
- 生成/レポートを電子メールで送信することになるのcron私はアプリのいずれかであることが好ましく、Rubyでプログラミングのほとんどを行うことを好む仕事
- は
テーブルは異なるデータベースにあります。私はそれが簡単だったと思う:( – Austin
私はそれを逃した、残念です。しかし、組み合わせとuniqのために、それはまだ動作するでしょうか? – xlash
はい、それはうまくいくでしょう。 Rubyistのように、配列から重複を取り除く方法は、私が探している答えではありません。私は、_automatically_数値の総数を得るための最良の方法についてアドバイスが必要です。ファイルにダンプし、上でやっていることを別のスクリプトで行います。問題は500kレコードではあまりにも(遅すぎます) – Austin