問題タブ [deduplication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - データ重複排除フレームワーク?
VMware イメージをバックアップするために作成しているソフトウェアにデータ重複排除を統合したいと考えています。私が必要だと思うものに適したものを見つけることができませんでした。何らかの形式の重複排除を含む完全なソリューションがたくさんあるようです。これらには、パブリック クラウドまたはプライベート クラウド、特殊なファイル システム、ストレージ ネットワークまたはデバイスなどを使用するストレージまたはバックアップ ソリューションが含まれます。ただし、独自のソリューションを開発し、それに重複除外を統合する必要があります。私のソフトウェアは C# で書かれているので、API を呼び出して何を重複排除するかを指示できるようにしたいと考えています。
私が話している重複排除のタイプは、あるイメージを別のイメージに対して重複排除することではありません。通常、何かの 2 つの「バージョン」の増分バックアップまたは差分バックアップを作成する方法です。私はすでにそれを行うためのソリューションを持っており、さらに一歩進めたいと考えています。
私は、何らかの方法でグローバルレベルでデータのチャンクを重複排除できるようにするアプローチを想定しています (つまり、グローバルな重複排除の何らかの形式)。グローバルであるためには、検査対象のデータのコピーがすでに保持されており、再度保存する必要がないことを重複排除プログラムに伝える、ある種の中央ルックアップ テーブル (ハッシュのインデックスなど) があると思います。チャンクは、ファイル レベル (単一インスタンス ストレージまたは SIS) またはサブファイル/ブロック レベルの重複排除である可能性があります。後者はより効率的である必要があり (処理オーバーヘッドよりも重要です)、私の好みのオプションですが、必要に応じて SIS も機能させることができます。
上で述べたように、重複排除を行う他の人のソフトウェアについて多くのことを読みました。他の誰かのアプローチを具体的にエミュレートしようとしているわけではないので、ここでは例を挙げません。むしろ、私はプログラマー向けの解決策を見つけることができず、そのようなものが利用可能かどうかを知りたい. 別の方法としては、独自のソリューションを作成することもできますが、控えめに言っても、それはかなり大きな作業になります。
ありがとう。
node.js - OS X 用の重複排除アプリケーションの構築、ファイルのハッシュとして何をどのように使用すればよいですか
私はプログラミングの旅に出ようとしていますが、間違いなく失敗したり、Mac にマウスを投げたりすることになりますが、これは興味深い問題です。
ベースディレクトリからスキャンを開始し、各ファイルを再帰的にループダウンするアプリを構築したいと考えています。完全に重複するファイルが見つかった場合は、そのファイルを削除し、その場所にシンボリックリンクを作成します。基本的に貧乏人の重複排除。私の Mac にはたくさんの重複ファイルがあり、ディスク容量を解放する必要があるので、これは実際に私にとって本当の問題を解決します。
私が読んだことから、これは戦略です:
再帰的にループし、各ファイルのハッシュを生成します。ハッシュは非常に一意である必要があります。これが最初の問題です。どのハッシュを使用すればよいですか? この魔法のハッシュを介して各ファイルのバイナリ コンテンツ全体を実行するにはどうすればよいですか?
各ファイルのハッシュとフルパスをキー/値ストアに保存します。redis はその速度の点で非常に適していると思います。
キー/値ストアを反復処理し、重複するハッシュを見つけ、重複ファイルを削除し、シンボリック リンクを作成し、キー/値ストアの行にコピーとしてフラグを立てます。
したがって、私の質問は次のとおりです。
- 各ファイルにどのハッシュ アルゴリズムを使用すればよいですか? これはどのように行われますか?
- ノードは一般的にI / Oタイプのもので高速であるため、node.jsの使用を考えています。問題は、ノードが CPU を集中的に使用するものを吸い込むことです。そのため、ハッシュがボトルネックになる可能性があります。
- ここで私が見逃している他の落とし穴は何ですか?
mysql - MySQL 個別クエリは、重複した情報を含む行を返します。重複排除が必要です
MySQL データベースに、以下に示すようなテーブルがあります。
以下のような結果が必要です (つまり、a と b の値のみが列 D と E の値が異なります)。
私はこのクエリを試しました:
私はこれを得る:
column_c に「c」、「d」、または「f」を含む行は必要ありません。column_d に 0 と 4 の両方の値を持つ行が必要です (つまり、column_c は 'a' または 'b' です)。
php - PHP を使用した重複排除 mysql の結果
次のようなエントリを含むテーブルがあります。
これらをオートコンプリート フィールドでユーザーに提示するとき、() または [] の間のいずれかは関係ないため削除しますが、上記のリストからわかるように、123 の 2 つのエントリが表示されます。ドロップダウンで...重複をさらに抑制する方法はありますか? 控えめに言っても間違っているように見える 5 つまたは 6 つのものがある場合があります。以下のコード:
どうもありがとう
hash - 3 つの継承者のそれぞれにトリプレットで割り当てられた 9 つのアイテムを列挙して重複排除するにはどうすればよいですか?
この質問は、3 分割の組み合わせ状況の解または発見的近似を求めるで説明されているコンテキストに関連しています。タスクは、それぞれが評価された価値を持つ約 48 個の継承されたジュエリーを 3 人の継承者に分配し、各継承者に等しいまたはほぼ等しい価値を与えることです。その質問は、私の法的目的のために十分に答えられています.
この新しい問題は、列挙によってこれを解決するという私の追求から生じます。法的にはまったく不要です。今は単なる知的な挑戦です。
今の問題:
各項目に一意のインデックスを割り当てます。おそらく 1 ~ 48 の整数だけです。これらの 48 を 3 つの継承者のそれぞれに割り当て、重複を排除します。
この例のケースを簡単にするために、項目が 9 つしかなく、各継承者が正確に 3 つの項目を受け取ることをアサートします。(これは、3 つのビンをほぼ等しい値にするという以前の目標とは異なることに注意してください。)
アイテムからビンへの順序で重複を排除する方法は?
例:
ビン 1 にアイテム {1,2,3}
を含める ビン 2 にアイテム {4,5,6}
を含める ビン 3 にアイテム {7,8,9} を含める
このトリプレットのトリプレットの最終値の 6 つの重複があります:
{1,2,3}{4,5,6}{7,8,9}
{4,5,6}{1,2, 3}{7,8,9}
{4,5,6}{7,8,9}{1,2,3}
{7,8,9}{1,2,3}{4,5,6 }
{7,8,9}{4,5,6}{1,2,3}
など
繰り返しますが、アイテムからビンへの順序で重複を排除するにはどうすればよいですか? トリプレットの順列のセット全体を列挙することなく。いいえ、それは正しくありません。トリプレットのすべての順列を一時的に削除する必要があるかもしれません。アプリオリに行われたことに基づいて、重複したトリプレットの組み合わせをすばやく排除するにはどうすればよいですか?
3 つの項目の任意の組み合わせを指定すると、一意の値を返す関数を発明するようなものを想像できます。素数を使った何か?ただし、素数の多くのペアを合計すると別の素数になります。
元の質問を mathoverflow にクロスポストしました。stackoverflow と mathoverflow の関係が理解できておらず申し訳ありません。
php - doctrineがデータベース内の重複オブジェクトを永続化しないようにするにはどうすればよいですか?
ライドとロケーションの2種類のオブジェクトがあります。
ライドには、ロケーションオブジェクトである出発地と目的地があります。
場所はライドを指していません。
これは、私が教義において多対一の一方向の関係を持っていることを意味します。
データベースに重複するLocationオブジェクトがないことをドクトリンに保証するにはどうすればよいですか?
例:ミネソタ州ミネアポリスからミネソタ州マンケートまでのライドを作成して永続化すると、データベースに1つのライドオブジェクトと2つのロケーションオブジェクトが保存されます。
これらが永続化されたので、ミネソタ州マンケートからニューアルム、ミネソタ州への別のライドを作成して永続化します。
Doctrineは、ミネソタ州マンケートのロケーションを複製しました。
doctrineにはこの機能がありますか、それとも重複するオブジェクトを作成しているかどうかを確認するのは私の責任ですか?
email - メールストレージの重複排除に関する提案
提案されているストレージ モデルは、添付ファイルを個別のファイル (または BLOB) に保存し、電子メール自体を MIME マルチパート メッセージとして保存し、添付ファイルとそのエンコード方法への参照を付けることです。これにより、ユーザーはオリジナルを表示できますが、効率の悪い base64 をメッセージと共に実際に保存する必要はありません。ほとんどの場合、使用された base64 行の長さだけを保存できます。
このようにして、添付ファイル レベルの重複排除を実行できます。
しかし、重複除外をさらに進めるにはどうすればよいでしょうか? ここに私の考えがあります:
- もちろん、すべての添付ファイルと電子メールは個別に圧縮 (バイトレベルの重複排除) できます。
- おそらく 12 個の添付ファイルのセットを 1 つのファイルにまとめて圧縮できます。同じ種類の複数のファイル (PDF など) を圧縮すると、同じ送信者からのファイルであっても、より効果的な場合があります。
- MIME メッセージはセットで圧縮することもできます。
- 全文索引が使用されるため、検索効率は気にしません。
- もちろん、電子メールの検索には、圧縮されないタイプの全文索引が使用されます。
- 解凍されたキャッシュは、電子メールが最初に到着したときに作成され、電子メールがしばらく表示されなかった後にのみ削除されます。
この分野で何かアドバイスはありますか?メール ストレージ システムの通常の状態は何ですか?
java - HashMap 値の重複排除
で重複する値を削除する良い方法を誰かが知っているかどうか疑問に思っていLinkedHashMap
ます ? LinkedHashMap
と のペアString
を持っていList<String>
ます。の重複を削除したいと思いArrayList
ます。これは、下流の処理を改善するためのものです。
私が考えることができる唯一のことは、処理された値のログを保持することです。繰り返し処理を繰り返し、HashMap
以前ArrayList
に値に遭遇したことがあるかどうかを確認します。このアプローチは、リストが大きくなるにつれてパフォーマンスが低下するようです。HashMap
値から重複を削除するために前処理する方法はありArrayList
ますか?
説明すると... String1>List1 (a、b、c) String2>List2 (c、d、e) がある場合、「c」を削除して、HashMap 内のリスト全体で重複がないようにします。
.net - (元のフォーマットを削除せずに) 電話番号の個別のリストを取得する最も簡単な方法は?
マスターPerson
レコードと 1 つ (または複数) の複製Persons
があり、それらのデータをマージして、複製よりもマスターを優先します。
電話番号に関して言えば、目標はデータをマージすることです。単一の電話番号をPhone
フィールドに入力し、他の電話番号をメモ フィールドに入力します (それらを完全に破棄しないようにするため)。レコードには、電話番号が含まれる場合と含まれない場合があります。
簡潔にするために、基本的に同じ数字の束をメモ フィールドに追加したくありません。したがって、フィールドに次のものが含まれないようにします。
(1234) 123123
1234 123123
フォーマットとスペースを破棄できれば簡単ですが、それらを保持する必要があります (先頭/末尾の空白を除く)。
構造体を作成することから始めました (構造体とクラスがある理由はわかりませんが、とにかく)
次に、マージ コードは次のようになります。
しかし、明らかに、ここでの問題は重複を許可していることです。
を「取り除かれた」値のみに一致させたいのですContains
が、もちろん、それを行うことを知りません。
これは、そのようなマイナーな機能にはすでに多すぎるコードのように思えますが、現時点では、Contains
削除されたもののみに一致する and を置き換える何か (構造内に?) を作成することを検討しています。もっときちんとした方法はありますか?
コードは VB ですが、C# は大歓迎です。
マスターを優先する必要があることも忘れないでください。したがって、LINQ と Distinct を使用する場合は、並べ替え順序が失われないようにする必要があります (これは私の理解です)。
sql - DELETE を使用しないレコードの重複除外
SQL Server で重複した行からレコードを 1 つだけ戻す必要があります
このようなデータがあります
これらの行は、同じ人によって注文された 2 つのアイテムとして表示されます。実際には、バスケットで選択された数量と 2 つのレコードとして 2 つだけです。
私の質問は、これらの行の 1 つだけを取得するにはどうすればよいですか?
ありがとう