복붙노트

[HADOOP] 하이브의 비뚤어진 테이블

HADOOP

하이브의 비뚤어진 테이블

나는 하이브를 배우고 비뚤어진 테이블을 보았습니다. 내가 이해하도록 도와 줘.

하이브의 왜곡 된 테이블은 무엇입니까?

왜곡 된 테이블은 어떻게 만들 수 있습니까?

성능에 어떤 영향을 줍니까?

해결법

  1. ==============================

    1.하이브의 왜곡 된 테이블은 무엇입니까?

    하이브의 왜곡 된 테이블은 무엇입니까?

    왜곡 된 테이블은 매우 자주 나타나는 값 (큰 왜곡)이 별도의 파일로 나뉘며 나머지 값이 다른 파일로 이동하는 특별한 유형의 테이블입니다.

    왜곡 된 테이블은 어떻게 만들 수 있습니까?

    create table <T> (schema) skewed by (keys) on ('value1', 'value2') [STORED as DIRECTORIES];
    

    예 :

    create table T (c1 string, c2 string) skewed by (c1) on ('x1')
    

    성능에 어떤 영향을 줍니까?

    비뚤어진 값을 지정하면 하이브가 자동으로 파일을 개별 파일로 분리하여 쿼리 중에이 사실을 고려하여 가능한 경우 전체 파일을 건너 뛰거나 포함하여 성능을 향상시킬 수 있습니다.

    편집하다 :

    x1은 실제로 c1 열이 비뚤어지는 값입니다. 여러 열에 대해 이러한 값을 여러 개 가질 수 있습니다. 예를 들어,

    create table T (c1 string, c2 string) skewed by (c1) on ('x1', 'x2', 'x3')
    

    이러한 설정을 사용하면 다른 값보다 자주 나타나는 값이 별도의 파일 (또는 STORED AS DIRECTORIES 절을 사용하는 경우에는 별도의 디렉토리)으로 분리된다는 이점이 있습니다. 또한이 정보는 쿼리 실행 중에 실행 엔진이 처리를 효율적으로 처리하는 데 사용됩니다.

  2. ==============================

    2.비뚤어 짐 테이블에서는 많은 레코드가있는 열 값에 대해 파티션이 만들어지고 나머지 데이터는 다른 파티션으로 이동됩니다. 따라서 파티션 수, 매퍼 수 및 중간 파일 수가 줄어 듭니다. 예 : 100 명 중 90 명은 혈압이 높고 다른 10 명에게는 발열, 감기, 암 등이 있습니다. 따라서 90 명의 ​​환자에 대해 하나의 파티션이 생성되고 다른 10 명의 환자에 대해 하나의 파티션이 생성됩니다. 이 질문에 대한 답변이되기를 바랍니다.

    비뚤어 짐 테이블에서는 많은 레코드가있는 열 값에 대해 파티션이 만들어지고 나머지 데이터는 다른 파티션으로 이동됩니다. 따라서 파티션 수, 매퍼 수 및 중간 파일 수가 줄어 듭니다. 예 : 100 명 중 90 명은 혈압이 높고 다른 10 명에게는 발열, 감기, 암 등이 있습니다. 따라서 90 명의 ​​환자에 대해 하나의 파티션이 생성되고 다른 10 명의 환자에 대해 하나의 파티션이 생성됩니다. 이 질문에 대한 답변이되기를 바랍니다.

  3. from https://stackoverflow.com/questions/18766721/skewed-tables-in-hive by cc-by-sa and MIT license