10'000'000 +エンティティを互いに比較するプログラムを作成する必要があります。エンティティは、データベース/ csvファイルの基本的にフラットな行です。1000万のエンティティを比較する
比較アルゴリズムはかなり柔軟でなければなりません。エンドユーザーがルールを入力し、各エンティティが他のすべてのエンティティと照合されるルールエンジンに基づいています。
私はこのタスクを小さなワークロードに分割する方法について考えていますが、まだ何も見つかりませんでした。エンドユーザが事前にソートすることによってルールが入力されるため、DataSetは不可能に見えます。
私が今しようとしているのは、DataSet全体をメモリに収めて各アイテムを処理することです。しかし、それは非常に効率的ではないし、約が必要です。 20 GBのメモリ(圧縮済み)。
作業負荷をどのように分割したり、サイズを小さくすることができますか?
ありがとうございました
を参照してください?本気ですか?それは〜5x10^13の組み合わせです...もしあなたが毎秒100万回の比較を行うことができれば、1年半以上かかるでしょう。 –
このルールエンジンはすでに書き込まれていますか?これはC#よりもデータベースに適した作業のようです。 –
かなり。エンティティの比較方法を知っていれば、大幅に作業量を減らすことができます。しかし、私はどのように正確に一致ルールを定義しようとしているのかわかりません。 – senic