MapReduce - Reduce-side join

15 June 2020 · 1 minute read

SQL에서는 단일 구문 하나로 여러 테이블을 쉽게 join 할 수 있다. 구문 분석기가 데이터를 다루는 복잡한 부분은 알아서 처리해주는 덕분인데, MapReduce(이하 MR)로 join을 구현하려면 이러한 “알아서 처리해주는” 일을 직접 코드로 다뤄야 한다.

MR join 중 가장 간단히 모든 join을 구현할 수 있는 방법이지만 비용이 비싼 Reduce-side join을 정리한다.

Reduce-side join

reduce 단계에서 데이터 셋을 join하는 처리 방식을 reduce-side join이라 한다.

데이터 크기와 상관없이 inner join, left outer join, right outer join, full outer join, exclusive join, 그리고 Cartesian product까지 모든 종류의 join을 구현할 수 있다.

이렇듯 구현은 아주 간단한데, 대신 다음과 같은 단점들이 있다:

Updated 15 June 2020