2014-09-24 4 views
0

하이브에서 테이블을 생성하여 동시에 로컬로 저장할 수 있습니까?하이브 : 동시에 테이블을 만들고 로컬로 작성하십시오

분석 할 데이터를 얻을 때 보통 임시 테이블을 만들어 궁극적으로 쿼리/스크립트를 추적합니다. 이 중 일부는 임시 테이블 일 뿐이며 일부는 실제로 분석에 필요한 데이터를 포함합니다.

보통 데이터를 로컬로 가져 오기 위해 hive -e "select * from db.table" > filename.tsv을 사용하고 있습니다. 그러나 테이블이 커지면 상당한 시간이 걸릴 수 있습니다.

내 스크립트에서 테이블을 만들고 동시에 로컬로 저장하는 방법이 있는지 궁금합니다. 아마도 이것은 가능하지 않지만 요청할만한 가치가 있다고 생각했습니다.

답변

1

정직하게 말하면 두 가지 가능한 방법 중에서 가장 좋은 방법이지만 자동화를 위해 .hql 파일에서 비슷한 작업을 수행 할 수 있다는 점은 가치가 있습니다. 이 같은

사용 구문 : 당신은 쿼리를 실행하고 (한 충분한 공간과 올바른 권한이있는 한)

이의 단점은 로컬 디렉토리에 어딘가에 저장할 수 있습니다

INSERT OVERWRITE LOCAL DIRECTORY '/home/user/temp' select * from table; 

파이프를 사용하면 데이터를 멋지게 '|' 구분과 새 줄을 구분하지만,이 방법은 하이브 기본값 '^ b'에 값을 저장합니다.

이 작업은 약 같은 것을 할

입니다 :

INSERT OVERWRITE LOCAL DIRECTORY '/home/user/temp' 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
select books from table; 

을하지만이 하이브 0.11에서만 또는 더 높은

+0

감사 라이언 나는이 솔루션 알고 있었다 :) – lucacerone