프로덕션 환경에서 Hadoop을 처음 사용하는 데 상당히 익숙합니다. 데이터베이스에서 큰 테이블을 Hive로 가져 오기 위해 특종을 사용했습니다. Scoop은 쉼표로 구분 된 텍스트 파일을 만들고 하이브에서 해당 테이블을 만들었습니다. ORC (이진 데이터 지방 테이블 칼럼 현명한 데이터 저장, 압축 등)에 비교 될 수있는 텍스트 파일 정도만큼 비효율적이므로오크는 하이브의 csv보다 빠르지 않습니까?
난 후 create table new_table_orc stored as orc as select * from old_table_csv
실행, I는 큰 기대 질적으로 개선되었지만 쿼리 실행 시간이 전혀 변경되지 않은 것 같습니다!
두 버전 (텍스트, ORC 및 짝수 마루) 모두에서 동일한 간단한 쿼리를 사용했으며 이러한 테이블 중 몇 개가 조인에 사용 된 경우 동일한 동일한 쿼리를 사용했습니다.
추가 정보 : 내가 테스트하는 주 테이블에는 약 430 만 개의 행과 약 50 개의 열이 있습니다.
나는 쿼리의 몇 가지 실행 해요 : select sum(col1) from my_table;
< = 40 초
select sum(col1) from my_table_orc;
< = 31 초
그리고
select distinct col2 from my_table where col3 = someval;
< = 53 초
select distinct col2 from my_table_orc where col3 = someval;
< = 35 초
또한 @sahil desai가 제안 했으므로 벡터화가 가능했지만 거대한 차이를 만들었습니다 (시간이 몇 초 단축되었습니다).
여기서 무슨 일이 일어나고 있습니다. 제가 왜 빠른 속도의 주문을 보지 못합니까? 더 자세한 정보가 필요하십니까?
당신은 어떻게 쿼리를 실행했던 것처럼 하이브 성능을 향상시킬 수있는 많은 방법이있다? ORC 또는 마루가 더 빠르지 만 전체 테이블을 스캔하는 데는 적합하지 않습니다. –
얼마나 큰 데이터를 가지고 있고 어떤 쿼리를 실행하고 있는지 문제가 있습니다. 작은 데이터 세트를 테스트하는 경우 성능 차이를 찾을 수 없습니다. –
@sandeeprawat 설명에 추가 정보가 추가되었습니다. 데이터가 작지는 않지만, 여전히 단일 시스템의 관점에서 생각하고 있습니다. – Shahbaz