[HADOOP] 둘 이상의 열에 의해 클러스터 된
HADOOP둘 이상의 열에 의해 클러스터 된
하이브 테이블이 하나의 열에 의해 클러스터 된 경우 해당 버킷 열의 해시 기능을 수행 한 다음 해당 데이터 행을 버킷 중 하나에 넣습니다. 그리고 각 버킷에 대한 파일이 있습니다. 즉, 32 개의 버킷이 있으면 hdfs에 32 개의 파일이 있습니다.
둘 이상의 열에 의해 클러스터된다는 것은 무엇을 의미합니까? 예를 들어, 테이블에 32 개의 BUCKETS에 CLUSTERED BY (대륙, 국가)가 있다고 가정하십시오.
열이 둘 이상인 경우 해시 함수는 어떻게 수행됩니까?
몇 개의 파일이 생성됩니까? 아직도 32입니까?
해결법
-
==============================
1.그것이 도움이되기를 바랍니다!
그것이 도움이되기를 바랍니다!
-
==============================
2.일반적으로 버킷 번호는 hash_function (bucketing_column) mod num_buckets 식으로 결정됩니다. ( '0x7FFFFFFF도 거기에 있지만 그렇게 중요하지는 않습니다). hash_function은 버킷 팅 열의 유형에 따라 다릅니다. int의 경우 hash_int (i) == i는 쉽습니다. 예를 들어 user_id가 int이고 10 개의 버킷이있는 경우 0으로 끝나는 모든 user_id는 버킷 1에 있고 1로 끝나는 모든 user_id는 버킷 2에있을 것으로 예상됩니다. 다른 데이터 유형의 경우 조금 까다로운. 특히 BIGINT의 해시는 BIGINT와 동일하지 않습니다. 그리고 문자열이나 복잡한 데이터 유형의 해시는 값에서 파생 된 숫자이지만 사람이 인식 할 수있는 것은 아닙니다. 예를 들어, user_id가 STRING 인 경우 버킷 1의 user_id는 0으로 끝나지 않을 것입니다. 일반적으로 해시를 기반으로 행을 분산하면 버킷에 균일하게 분산됩니다.
일반적으로 버킷 번호는 hash_function (bucketing_column) mod num_buckets 식으로 결정됩니다. ( '0x7FFFFFFF도 거기에 있지만 그렇게 중요하지는 않습니다). hash_function은 버킷 팅 열의 유형에 따라 다릅니다. int의 경우 hash_int (i) == i는 쉽습니다. 예를 들어 user_id가 int이고 10 개의 버킷이있는 경우 0으로 끝나는 모든 user_id는 버킷 1에 있고 1로 끝나는 모든 user_id는 버킷 2에있을 것으로 예상됩니다. 다른 데이터 유형의 경우 조금 까다로운. 특히 BIGINT의 해시는 BIGINT와 동일하지 않습니다. 그리고 문자열이나 복잡한 데이터 유형의 해시는 값에서 파생 된 숫자이지만 사람이 인식 할 수있는 것은 아닙니다. 예를 들어, user_id가 STRING 인 경우 버킷 1의 user_id는 0으로 끝나지 않을 것입니다. 일반적으로 해시를 기반으로 행을 분산하면 버킷에 균일하게 분산됩니다.
참조 : https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL+BucketedTables
from https://stackoverflow.com/questions/30871354/hive-clustered-by-on-more-than-one-column by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브에서 Cluster By와 CLUSTERED BY의 차이점은 무엇입니까? (0) | 2019.09.14 |
---|---|
[HADOOP] 메인 클래스 org.apache.nutch.crawl.InjectorJob을 찾거나로드 할 수 있음 (0) | 2019.09.14 |
[HADOOP] Impala SQL에 While 루프를 작성 하시겠습니까? (0) | 2019.09.14 |
[HADOOP] 스파크 및 스칼라에서 양수와 음수가 혼합 된 값 목록의 사이클 수 (0) | 2019.09.13 |
[HADOOP] 30 개의 가장 빈번한 단어에서 내림차순으로 정렬하는 방법은 무엇입니까? (0) | 2019.09.13 |