세미 조인과 블룸 조인의 차이점

Anonim

세미 조인 대 블룸 조인

세미 조인과 블룸 조인은 분산 데이터베이스의 쿼리 처리에 사용되는 두 가지 조인 방법입니다. 분산 데이터베이스에서 쿼리를 처리 할 때 다른 사이트에있는 데이터베이스간에 데이터를 전송해야합니다. 이것은 전송해야하는 데이터의 양에 따라 값 비싼 조작이 될 수 있습니다. 따라서 분산 데이터베이스 환경에서 쿼리를 처리 할 때 사이트간에 전송되는 데이터의 양을 최소화하기 위해 쿼리를 최적화하는 것이 중요합니다. 세미 조인과 블룸 조인은 데이터 전송량을 줄이고 효율적인 쿼리 처리를 수행하는 데 사용할 수있는 두 가지 방법입니다.

세미 조인이란 무엇입니까?

세미 조인은 분산 데이터베이스 환경에서 효율적인 질의 처리를 위해 사용되는 방법입니다. 사이트 1에 위치한 직원 데이터베이스 (직원 이름, 근무중인 부서 번호 등의 정보 보유) 및 사이트에있는 부서 데이터베이스 (부서 번호, 부서 이름, 위치 등의 정보 보유)를 고려합니다. 2. 예를 들어 작업중인 직원 이름과 부서 이름 ("New York"에있는 부서 만)을 얻고 싶으면 사이트 3에있는 쿼리 프로세서에서 쿼리를 실행하여 여러 가지 방법으로 이 작업을 수행하기 위해 세 사이트간에 데이터를 전송할 수 있습니다. 그러나 데이터를 전송할 때는 사이트간에 전체 데이터베이스를 전송할 필요가 없다는 점에 유의해야합니다. 쿼리를 효율적으로 실행하려면 조인에 필요한 일부 특성 (또는 튜플) 만 사이트간에 전송해야합니다. 세미 조인은 사이트간에 전송되는 데이터의 양을 줄이는 데 사용할 수있는 방법입니다. 세미 조인에서는 조인 열만이 한 사이트에서 다른 사이트로 전송 된 다음 해당 전송 된 열을 사용하여 다른 사이트 간의 관계를 축소합니다. 위의 예에서는 site = "New York"인 튜플의 부서 번호와 부서 이름을 사이트 2에서 사이트 1로 전송하고 사이트 1에서 참여를 수행하고 최종 관계를 사이트 3으로 다시 전송할 수 있습니다.

블룸 조인이란 무엇입니까? 앞서 언급했듯이 블룸 조인은 분산 데이터베이스 환경에서 쿼리를 실행할 때 사이트간에 불필요한 데이터를 전송하지 않는 또 다른 방법입니다. 블룸 조인에서는 조인 열 자체를 전송하는 대신 조인 열에 대한 간결한 표현이 사이트간에 전송됩니다. 블룸 조인은 블룸 필터를 사용합니다. 블룸 필터는 비트 벡터를 사용하여 멤버십 쿼리를 실행합니다. 먼저, 블룸 필터가 조인 열을 사용하여 작성되고 사이트간에 전송 된 다음 조인 작업이 수행됩니다.

세미 조인과 블룸 조인의 차이점은 무엇입니까?

분산 데이터베이스 환경에서 쿼리를 실행할 때 사이트간에 전송되는 데이터 양을 최소화하기 위해 semi join 및 bloom join 방법을 모두 사용하더라도 bloom join은 semi join에 비해 전송 된 데이터 (튜플 수)를 줄입니다. 블룸 필터 (blom filter)의 개념을 이용함으로써, 집합 구성원을 결정하기 위해 비트 벡터를 사용한다. 따라서 블룸 조인을 사용하는 것이 세미 조인을 사용하는 것보다 효율적입니다.