Hive 입문 학습: explain 실행 계획의 이해
Hive 입문 학습: explain 실행 계획의 이해
하이브가 실행할 때 대응하는 SQL 문장을 마프리듀스 코드로 변환하여 실행하는 것을 우리는 모두 알고 있다. 그러나 구체적인 MR 실행 정보를 우리는 어떻게 알아볼 수 있을까?여기에 explain의 키워드를 사용했는데, 그는 실행에 대응하는 문장에 대응하는 MR 코드를 상세하게 나타낼 수 있다.문법 양식은 다음과 같다.extended 키워드는 코드의 실행 과정을 더욱 상세하게 열거할 수 있습니다.EXPLAIN [EXTENDED|DEPENDENCY|AUTHORIZATION] query
explain은 쿼리 문장을 Stage로 구성된 서열로 전환하는데 주로 세 가지 측면으로 구성된다.
1: 질의의 추상 구문 트리
2:plane의 각 스테이지의 의존 상황
3: 각 단계의 구체적인 설명: 구체적으로 말하면 대응하는 조작 산자와 그에 대응하는 데이터를 나타내는 것이다. 예를 들어 조회 산자, Filter 산자,fetch 산자 등이다.다음은 제가 구체적인 예를 하나 보겠습니다.<span style="font-size:18px;">explain
from emp insert overwrite table emp_explain
select job,sum(substr(emp.sal,4))
group by emp.job;</span>
위와 같은 코드를 의미하는 3개의 스테이지로 나뉜다.또한 스테이지는 하나의 루트 스테이지로서 스테이지 0은 스테이지 1에 의존하고 스테이지 2는 스테이지 0에 의존한다.구체적으로 모든 스테이지의 의존 정보를 나타낸다.
<span style="font-size:24px;">STAGE PLANS:
Stage: Stage-1
Map Reduce
Map Operator Tree://
TableScan
alias: emp// emp
Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE
Select Operator //select
expressions: job (type: string), sal (type: double)//select
outputColumnNames: job, sal
Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE
Group By Operator// group by
aggregations: sum(substr(sal, 4))//
keys: job (type: string)
mode: hash
outputColumnNames: _col0, _col1//
Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE
Reduce Output Operator
key expressions: _col0 (type: string)
sort order: +
Map-reduce partition columns: _col0 (type: string)
Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE
value expressions: _col1 (type: double)
Reduce Operator Tree:
Group By Operator
aggregations: sum(VALUE._col0)
keys: KEY._col0 (type: string)
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 3 Data size: 328 Basic stats: COMPLETE Column stats: NONE
Select Operator
expressions: _col0 (type: string), UDFToInteger(_col1) (type: int)
outputColumnNames: _col0, _col1
Statistics: Num rows: 3 Data size: 328 Basic stats: COMPLETE Column stats: NONE
File Output Operator
compressed: false
Statistics: Num rows: 3 Data size: 328 Basic stats: COMPLETE Column stats: NONE
table:
input format: org.apache.hadoop.mapred.TextInputFormat
output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
name: emp_dept.emp_explain
Stage: Stage-0
Move Operator
tables:
replace: true
table:
input format: org.apache.hadoop.mapred.TextInputFormat
output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
name: emp_dept.emp_explain
Stage: Stage-2
Stats-Aggr Operator// </span>
구체적인 정보는 번역 언어의 번역 원리 등 기술을 더 알아야 하기 때문에 여기서는 더 이상 이해하지 못한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
하이브가 실행할 때 대응하는 SQL 문장을 마프리듀스 코드로 변환하여 실행하는 것을 우리는 모두 알고 있다. 그러나 구체적인 MR 실행 정보를 우리는 어떻게 알아볼 수 있을까?여기에 explain의 키워드를 사용했는데, 그는 실행에 대응하는 문장에 대응하는 MR 코드를 상세하게 나타낼 수 있다.문법 양식은 다음과 같다.extended 키워드는 코드의 실행 과정을 더욱 상세하게 열거할 수 있습니다.
EXPLAIN [EXTENDED|DEPENDENCY|AUTHORIZATION] query
explain은 쿼리 문장을 Stage로 구성된 서열로 전환하는데 주로 세 가지 측면으로 구성된다.
1: 질의의 추상 구문 트리
2:plane의 각 스테이지의 의존 상황
3: 각 단계의 구체적인 설명: 구체적으로 말하면 대응하는 조작 산자와 그에 대응하는 데이터를 나타내는 것이다. 예를 들어 조회 산자, Filter 산자,fetch 산자 등이다.다음은 제가 구체적인 예를 하나 보겠습니다.
<span style="font-size:18px;">explain
from emp insert overwrite table emp_explain
select job,sum(substr(emp.sal,4))
group by emp.job;</span>
위와 같은 코드를 의미하는 3개의 스테이지로 나뉜다.또한 스테이지는 하나의 루트 스테이지로서 스테이지 0은 스테이지 1에 의존하고 스테이지 2는 스테이지 0에 의존한다.구체적으로 모든 스테이지의 의존 정보를 나타낸다.
<span style="font-size:24px;">STAGE PLANS:
Stage: Stage-1
Map Reduce
Map Operator Tree://
TableScan
alias: emp// emp
Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE
Select Operator //select
expressions: job (type: string), sal (type: double)//select
outputColumnNames: job, sal
Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE
Group By Operator// group by
aggregations: sum(substr(sal, 4))//
keys: job (type: string)
mode: hash
outputColumnNames: _col0, _col1//
Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE
Reduce Output Operator
key expressions: _col0 (type: string)
sort order: +
Map-reduce partition columns: _col0 (type: string)
Statistics: Num rows: 6 Data size: 656 Basic stats: COMPLETE Column stats: NONE
value expressions: _col1 (type: double)
Reduce Operator Tree:
Group By Operator
aggregations: sum(VALUE._col0)
keys: KEY._col0 (type: string)
mode: mergepartial
outputColumnNames: _col0, _col1
Statistics: Num rows: 3 Data size: 328 Basic stats: COMPLETE Column stats: NONE
Select Operator
expressions: _col0 (type: string), UDFToInteger(_col1) (type: int)
outputColumnNames: _col0, _col1
Statistics: Num rows: 3 Data size: 328 Basic stats: COMPLETE Column stats: NONE
File Output Operator
compressed: false
Statistics: Num rows: 3 Data size: 328 Basic stats: COMPLETE Column stats: NONE
table:
input format: org.apache.hadoop.mapred.TextInputFormat
output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
name: emp_dept.emp_explain
Stage: Stage-0
Move Operator
tables:
replace: true
table:
input format: org.apache.hadoop.mapred.TextInputFormat
output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
name: emp_dept.emp_explain
Stage: Stage-2
Stats-Aggr Operator// </span>
구체적인 정보는 번역 언어의 번역 원리 등 기술을 더 알아야 하기 때문에 여기서는 더 이상 이해하지 못한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.