HiveQL
row_number
SELECT
  ROW_NUMBER() OVER(ORDER BY name ASC) AS rno, // 1
  *
FROM database.tableSELECT
  ROW_NUMBER() OVER(ORDER BY (SELECT 0)) AS rno, // 1
  *
FROM database.tablesubquery 에러
SEELCT *
FROM (
  SELECT ...
  FROM
- )
+ ) AS tmp (1)
WHERE ...
GROUP BY ...- 
FROM절 안에 있는 서브쿼리에AS없으면 에러 발생
Zeppelin
제플린
- 
notebook 안에 여러 paragraph 
Configuration
SET hive.auto.convert.join;
SET hive.tez.container.size;- 
hive.auto.convert.join=true: 맵-조인시 사용. (default:true)
- 
hive.auto.convert.join.noconditionaltask.size=100000000: 메모리 사이즈(기본 10MB)메모리에 올라가는 데이터 기준 사이즈이므로, 파일의 사이즈와는 다름. desc formatted로 테이블 정보를 확인하여 화깅ㄴ할 수 있는 테이블 파라미터의rawDataSize기준으로 설정해야 함. Tez 컨테이너의 1/3 권장.
- 
hive.mapjoin.smalltable.filesize: 조인할때 작은 테이블인지 판단하는 기준. 기본 25MB
Yarn
얀
- 
Yarn이 Container를 Job(Tez)에 만들어주는데, Yarn monitor가 container들의 task의 메모리 사용를이 limit를 넘기면 kill? 
- 
Java로 만들어진 task라면 JVM 옵션도 확인 필요. Container 안에서 실행되므로 Heap 사이즈가 Container 보다 작아야 함 
| 설정 | 설명 | 
|---|---|
| 
 | 주어진 노드에서 클러스터에 사용할 수 있는 총 메모리 사이즈 | 
| 
 | Yarn 컨테이너당 할당할 수 있는 최소 메모리(mb) | 
| 
 | Yarn 컨테이너당 할당할 수 있는 최대 메모리(mb) | 
| 
 | 컨테이너에 추가로 할당할 수 있는 메모리. 현재 선호하지 않는 설정으로  | 
Tez
테즈
- 
Hive 실행 엔진 
- 
Apache Hadoop YARN 기반으로 만들어짐 
- 
Hive2의 기본 엔진 
- 
기존의 MR(MApReduce)에 비해 성능이 향상되는 효과 얻을 수 있음 - 
하둡의 중심 모듈중 하나, 분산처리엔진 
 
- 
- 
리듀스 작업간에 교화되는 데이터를 정렬할 필요가 없는 경우에 특화 
- 
Hive의 데이터 조인 쿼리를 더 효율적으로 실행 & 데이터 흐름을 효율적으로 구현에 목표 
- 
아파치 스파크는 반복연산에 더 적합한 개념과 기능을 제공하는 in-memory 데이터 처리 엔진 
Configuration

| 설정 | 설명 | 
|---|---|
| 
 | AM의 메모리 | 
| 
 | AM이 사용할 힙-메모리 사이즈( | 
| 설정 | 설명 | 
|---|---|
| 
 | tez 작업을 진행하는 컨테이너의 크기 일반적으로 YARN 컨테이너 크기와 같거나 1~2배수이며,  | 
| 
 | Tez 컨테이너에서 시작된 작업이 사용하는 메모리 크기. 기존값은 1024MB. | 
| 
 | 컨테이너에서 사용할 수 있는 힙메모리 크기( | 
| 
 | 작업에서 사용할 메모리 크기(MB). 모든 vertex의 모든 작업에 적용됨. 모든 작업에 동일한 값으로 적용하면 컨테이너 재사용에 도움이 되므로 일반적으로 성능에 좋음. (default: 1024) 
 | 
| 
 | 출력 결과를 정렬해야 할 때 사용할 메모리( | 
| 
 | 맵조인에 사용하는 메모리( |