Semi joinとbloom joinの違い

Anonim

Semi Join vs Bloom Join

Semi JoinとBloom joinは、分散データベースのクエリ処理で使用される2つの結合メソッドです。分散データベースでクエリを処理する場合、異なるサイトにあるデータベース間でデータを転送する必要があります。これは、転送する必要があるデータの量に応じて高価な操作になる可能性があります。したがって、分散データベース環境でクエリを処理する場合、サイト間で転送されるデータの量を最小限に抑えるためにクエリを最適化することが重要です。セミジョインとブルーム・ジョインは、データ転送の量を減らし、効率的なクエリ処理を実行するために使用できる2つの方法です。

セミ参加とは何ですか?

セミ・ジョインは、分散データベース環境での効率的な照会処理に使用される方法です。サイト1に所在する従業員データベース(従業員名や職場などの情報を保持するデータベースなど)と、サイトに所在する部門データベース(部門番号、部門名、所在地などの保有情報) 2.たとえば、自分が働いている従業員名と部門名(「ニューヨーク」にある部署のみ)を取得する場合は、サイト3に配置されたクエリプロセッサでクエリを実行することによって、この作業を達成するために3つのサイト間でデータを転送することができます。しかし、データを転送するときは、サイト間でデータベース全体を転送する必要はないことに注意することが重要です。クエリを効率的に実行するには、結合に必要な属性(またはタプル)の一部のみをサイト間で転送する必要があります。セミ・ジョインは、サイト間でのデータ転送量を削減するために使用できる方法です。セミ結合では、結合列のみがあるサイトから別のサイトに転送され、その転送された列は、他のサイト間の出荷された関係のサイズを縮小するために使用されます。上記の例では、location = "New York"のタプルの部門番号と部門名をサイト2からサイト1に転送し、サイト1で結合を実行し、最終的な関係をサイト3に戻すことができます。

Bloom Joinとは何ですか?

前に述べたように、ブルーム・ジョインは、分散データベース環境でクエリを実行するときに、サイト間で不要なデータを転送しないようにするための別の方法です。ブルーム結合では、結合列自体を転送するのではなく、結合列のコンパクトな表現がサイト間で転送されます。ブルーム・ジョインは、メンバーシップ・クエリーを実行するためにビット・ベクトルを使用するブルーム・フィルターを使用します。まず、結合列を使用してブルームフィルタを構築し、それをサイト間で転送して結合操作を実行します。

Semi JoinとBloom Joinの違いは何ですか?

分散データベース環境でクエリを実行するときにサイト間で転送されるデータの量を最小限に抑えるためにセミジョインとブルームジョインの両方の方法を使用しても、ブルームジョインは、セミジョインに比べて転送されるデータ(タプルの数)ブルームフィルタの概念を利用して、セットメンバーシップを決定するビットベクトルを使用する。したがって、bloom joinを使用する方がセミ結合を使用する方が効率的です。