[HADOOP] Hive에서 1 개의 거대한 파일 / 테이블 스캔을 최적화하여 위의 긴 점이 wkt 기하학 모양에 포함되어 있는지 확인 / 확인하는 방법
HADOOPHive에서 1 개의 거대한 파일 / 테이블 스캔을 최적화하여 위의 긴 점이 wkt 기하학 모양에 포함되어 있는지 확인 / 확인하는 방법
나는 현재 장치에서 ZIP 코드로 각각의 long long ping을 연결하려고합니다.
나는 long long 디바이스 ping 데이터를 de-normalized하고 각 행에 ST_Point (long, lat), geometry_shape_of_ZIP 및 해당 지오메트리와 연관된 zip 코드가있는 교차 제품 / 데카르트 제품 조인 테이블을 작성했습니다. 테스트 목적으로 나는 테이블에 약 4 천 5 백만 행을 가지며 매일 약 10 억 개의 생산으로 증가 할 것입니다.
데이터가 병합되고 조인 조건이 없어도 쿼리를 완료하는 데 약 2 시간이 걸립니다. 공간 쿼리를 계산하는 더 빠른 방법이 있습니까? 또는 다음 쿼리를 어떻게 최적화 할 수 있습니까?
인라인은 이미 수행 한 최적화 단계 중 일부입니다. 최적화를 사용하면 다른 모든 작업은이 한 단계를 제외하고 최대 5 분 내에 완료됩니다. aws 클러스터 2 mater 노드와 5 데이터 노드를 사용하고 있습니다.
set hive.vectorized.execution.enabled = true;
set hive.execution.engine=tez;
set hive.enforce.sorting=true;
set hive.cbo.enable=true;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;
analyze table tele_us_zipmatch compute statistics for columns;
CREATE TABLE zipcheck (
`long4` double,
`lat4` double,
state_name string,
country_code string,
country_name string, region string,
zip int,
countyname string) PARTITIONED by (state_id string)
STORED AS ORC TBLPROPERTIES ("orc.compress" = "SNAPPY",
'orc.create.index'='true',
'orc.bloom.filter.columns'='');
INSERT OVERWRITE TABLE zipcheck PARTITION(state_id)
select long4, lat4, state_name, country_code, country_name, region, zip, countyname, state_id from tele_us_zipmatch
where ST_Contains(wkt_shape,zip_point)=TRUE;
ST_Contains는 esri (ref : https://github.com/Esri/spatial-framework-for-hadoop/wiki/UDF-Documentation#relationship-tests)의 함수입니다.
어떤 도움이라도 대단히 감사하겠습니다.
감사.
해결법
-
==============================
1.ZIP 코드 데이터 세트가 메모리에 들어갈 수있는 경우, GIS-Tools-for-in-One에서 샘플을 채택하여 ZIP 코드 데이터에 JIT (just-in-time) 메모리 내 쿼드 트리 색인을 사용하는 사용자 정의 Map-Reduce 응용 프로그램을 시험해보십시오. 하둡.
ZIP 코드 데이터 세트가 메모리에 들어갈 수있는 경우, GIS-Tools-for-in-One에서 샘플을 채택하여 ZIP 코드 데이터에 JIT (just-in-time) 메모리 내 쿼드 트리 색인을 사용하는 사용자 정의 Map-Reduce 응용 프로그램을 시험해보십시오. 하둡.
[협력자]
from https://stackoverflow.com/questions/38963487/how-to-optimize-scan-of-1-huge-file-table-in-hive-to-confirm-check-if-lat-long by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 원사 : yarn-site.xml 변경 사항이 적용되지 않습니다. (0) | 2019.06.30 |
---|---|
[HADOOP] Scalding에서 버켓 출력 방법 (0) | 2019.06.30 |
[HADOOP] 하이브의 외부 테이블과의 혼동 (0) | 2019.06.30 |
[HADOOP] 코끼리 - 새를 하이브와 함께 사용하여 프로토프 데이터 읽기 (0) | 2019.06.30 |
[HADOOP] 파이썬에서 캐럿 A를 구분 (0) | 2019.06.30 |