2013-06-17 4 views
3

공간 데이터베이스에 대한 하이브에 테이블을 만들 때 공간 데이터에 대한 특수 인덱스가 R 트리임을 알고 있습니다. 하이브에서 공간 인덱스를 만들 수 없습니다 (나는 생각합니다). 나는 x, y (long, lat)의 인덱스와 십진수를 가진 연속 변수를 만들려고 노력하고 있었다. 나는 그것이 가장 효율적이라고 생각하지 않는다.하이브에 대한 공간 인덱스

우리는 공간 대수에 대해 esri 라이브러리를 사용하지만 경우에 따라 쿼리 성능이 매우 떨어집니다.

Esri gis tools for hadoop

내 생각 ....

*이 두 변수 색인을 작성하거나 형 XI = INT (X/0.2)의 변수 테이블을 분할하는 더 나은가요 0.2, yi = int (y/0.2) * 0.2?

나는 테이블 파티션이 더 효율적이다 생각하지만, 디자인은 더 복잡한 쿼리, 또한 내가 파티션 경계 상자

가장 일반적인 쿼리의 범위 될 것입니다 소수와 숫자 변수를 지원하지 않는 생각입니다 공간 데이터. 누구든지 이러한 종류의 쿼리를 위해 하이브로 데이터를 구성하는 효율적인 방법을 알고 있습니까?

하이브에 R- 트리를 만들고 임 플린 터하는 방법이 있습니까? 십진수를 사용하여 연속 값을 가진 테이블을 분할 할 수 있습니까? (예를 많이 보았지만 그렇지 않은 것 같습니다)?

+0

정확히 "연속 값을 가진 테이블을 분할 하시겠습니까?" – climbage

+0

당신은 또한에 관심이있을 수 있습니다 : 랜달 티. 휘트먼, 마이클 B. 공원, 사라 M. 암브로스, 그리고 에릭 G. Hoel. 2014. Hadoop의 공간 인덱싱 및 분석. * 22 차 ACM SIGSPATIAL 지리 정보 시스템 진보에 관한 국제 회의 * (SIGSPATIAL '14). ACM, New York, NY, USA, 73-82. DOI = 10.1145/2666310.2666387 http://doi.acm.org/10.1145/2666310.2666387 –

답변

0

공간 데이터를위한 k 차원 트리가 있습니다. 조작하는 것이 훨씬 간단해야합니다.

0

날짜가있는 파티션의 예만 보았습니다. A 타일 2012, 2013 .... 등이 정말 이산 값입니다. 예를 들어 [40.1, 42.4]에서 y, [-4,0]에서 x, [42.4, 43]에서 또 다른 pat y, [-4에서 x]와 같이 범위가있는 파티션을 정의 할 수 있는지 여부는 알 수 없습니다. 0) ... 많은 정보가없는 빈 영역이 있기 때문에 파티션에는 통계적 범위가 없습니다. Quadtree를 http://en.wikipedia.org/wiki/Quadtree으로 만들지 만 인덱스가없는 파티션과 연결하는 방법입니다. 공간 인덱스로 작동하고, 하이브에서 작동하며, 아마도 우아한 방식이라고 생각합니다.

이것은 제 생각입니다. 나는 누군가가뿐만 아니라 파티션을 만들 수있는 방법을 찾아, 그리고 가장 중요한 x와 y는 파티션을 확인하는 결정 변수, 또는 다른 우아한 것을 희망

이 파티션

을 만들 수있는 예입니다 CREATE 표 판매 ( 는 BIGINT, 주문 금액의 FLOAT, ORDER_DATE의 STRING, DUE_DATE STRING, CUSTOMER_ID의 BIGINT 을 sales_order_id) (국가 STRING, 년 INT, 월 INT, 일 INT)에 의해 구획;