본문 바로가기

join3

[hive] 하이브의 조인방식(hive join) 하이브의 세가지 조인 방식에 대해서 알아보겠습니다. 셔플조인 매퍼에서 각 테이블을 읽고 셔플 단계에서 조인되는 키를 기준으로 파티션닝후 셔플을 진행하여 각 리듀서에서 조인을 수행 어떤형태의 데이터 크기와 구성에도 사용 가능 가장 자원을 많이 사용하고 느린 조인 방식 맵조인 (브로드캐스트 조인, 맵사이드 조인) 작은 사이즈의 테이블이 메모리에 올라가고, 각 매퍼에서 조인을 수행후 결과를 반환하는 방식 가장 큰 테이블에서 가장 빠른 단일 스캔 작은 테이블은 메모리에 들어갈 정도로 작아야 함 -- 맵조인 사용여부 설정, 3개 이상의 테이블을 조인할 때 맵조인 사용여부 설정하는 옵션 hive> set hive.auto.convert.join=true; hive> set hive.auto.convert.join... 2020. 1. 6.
[DB] NL(Nested Loop)조인, 소트머지 조인(SMJ), Hash 조인 비교 - 랜덤 액세스 위주의 조인 - 한레코드씩 순차적으로 진행 - 테이블의 크기가 작을수록 좋음 - 온라인 프로그램에서 사용할 때 좋음 - Driving 테이블의 크기가 가장 많은 영향을 준다. - 조인하기전에 정렬 - 넓은 데이터 처리에 유리함 - 정렬에 필요한 데이터가 많아지면 메모리대신 디스크를 사용하므로 성능이 떨어질 수 있음 - 조인 조건의 인덱스 유무에 영향을 받지 않지만 Sort 가 필요하다. - 한쪽 테이블의 크기가 작을수록 좋음 - NL의 랜덤액세스, SMJ의 정렬작업에 대한 부담으로 등장 - 인덱스를 사용하지 않음, 인덱스 대신 Hash 함수를 사용 - 동등조인(=) 에서만 사용 - 수행 빈도가 높은 OLTP성 작업에서는 불리함 - 수행 빈도가 낮고, 쿼리 수행시간이 오래 걸리는, 대용량 .. 2017. 3. 28.
[SQL] 조인 조인 두 개 이상의 테이블을 연결하여 데이터를 조회하는 것 - 등가 조인: 테이블간에 동일한 조건을 이용하여 처리, = 연산자 사용 - 비등가 조인: 테이블간에 동일하지 않은 조건을 이용하여 처리, between, 등의 연산자를 이용하여 처리 - 아웃 조인: 조인 조건을 만족하지 않는 경우에도 결과를 봐야 하는 경우 사용 - 셀프 조인: 자기자신의 정보를 이용하여 조인 처리 카테시안 프로덕트(Cartesian Product) 조인 조건을 생략하거나, 잘 못 설정하여 테이블 간의 모든 데이터가 연결되는 것 SET 연산자 조인을 사용하지 않고 두 개 이상의 테이블의 연관된 데이터를 조회해 오는 방법 - UNION: 테이블 간의 합집합, 중복데이터 제거, 자동으로 정렬 작업 처리 - UNION ALL: 테이블.. 2015. 8. 3.