hive join 예제

Posted by | august 02, 2019 | Ikke-kategoriseret | No Comments

조인 계산과 관련된 두 가지 맵/감소 작업이 있습니다. 이들 중 첫 번째는 b를 조인하고 감속기에서 b의 값을 스트리밍하는 동안의 값을 버퍼링합니다. 이러한 작업 중 두 번째는 감속기를 통해 c 값을 스트리밍하는 동안 첫 번째 조인의 결과를 버퍼링합니다. 복제된 조인이라고도 하는 맵 측 조인은 작은 테이블이 메모리에 로드되고 MapReduce 작업의 맵 단계에서 조인이 수행되는 특별한 조인 유형입니다. 맵 측 조인에는 감속기가 없기 때문에 일반 조인에 비해 훨씬 빠릅니다. 중요한 점은 한 테이블이 메모리에 들어갈 수 있을 만큼 작아야 한다는 것입니다. Hive가 자동으로 조인을 맵 측 조인으로 변환하도록 적절한 구성을 하는 것이 좋습니다. 다음은 맵 측 조인이 아닌 Hive 조인 작업입니다. 위의 이미지에서 강조 표시된 부분을 기록해 둡을 기록합니다. “감속기 수”가 조인 작업의 속도를 늦추는 1임을 알 수 있습니다. 이제 맵 측 조인을 수행하려면 Hive-site.xml 또는 Hive 셸에서 직접 몇 가지 구성을 설정합니다. 다음은 내가 하이브 쉘에서 설정 한 구성입니다.

hive> set hive.auto.convert.join=true; hive> set hive.auto.convert.join.noconditionaltask=true; 구성이 완료되면 위에서 수행한 것과 동일한 조인 작업을 실행합니다. 강조 표시된 부분을 다시 기록해 둡자! 이 조인 작업에서 수행되는 감속기 단계가 없음을 확인할 수 있습니다. 따라서 맵 측 조인은 일반 조인 작업보다 빠릅니다. 다음은 하이브 조인 – HiveQL 선택 절의 구문입니다. join_table: table_reference JOIN 테이블_factor [join_condition] | 표_참조 {왼쪽| 오른쪽 | FULL} [외부] 조인 테이블_참조 join_condition | table_reference 왼쪽 세미 조인 테이블_참조 join_condition | table_reference CROSS JOIN table_reference [join_condition] 더 많은 하이브 DDL 명령 읽기 : DDL 하이브 명령 유형 . 모든 유형의 튜닝과 마찬가지로 시스템의 내부 작동을 이해하는 것이 중요합니다. Hive가 조인을 실행하면 스트리밍되는 테이블과 캐시되는 테이블을 선택해야 합니다. Hive는 스트리밍을 위해 JOIN 문의 마지막 테이블을 차지하므로 이 스트리밍 테이블이 둘 중 가장 큰지 확인해야 합니다. 두 테이블의 예를 살펴보겠습니다. `emp` 테이블은 부서 ID, 직원 이름 및 직원 급여로 구성됩니다. 모든 조직에서 이 목록은 시간이 지남에 따라 계속 증가할 수 있습니다.

그러나 `dept` 테이블은 대부분의 시간 동안 정적입니다. 따라서 이 두 테이블을 조인할 때 는 더 큰 테이블이 쿼리에서 마지막으로 오는 것이 중요합니다. 우리가 최적화 된 Hive 쿼리를 볼 수 있습니다 : 당신이 주어진 주소 열 이름 양 이름 insteed 주어진 내부 조인 예제 출력을 수정다음과 같이 주어진 조인의 다른 유형이 있습니다 : 아파치 하이브에서, 공통의 값을 사용하여 두 테이블에서 특정 필드를 결합하기위한 우리는 하이브 조인을 사용하는 각 하나 – HiveQL 선택 쿼리조인. 그러나 구현 목적을 위해 Hive Join의 구문을 알아야 합니다.