2015-02-04 6 views
0

일반적으로 국가 및 유형별로 쿼리하므로 다음과 같은 영역의 계층 구조를 만들어야합니다. 모든 데이터를 국가 수준의 지역에 저장합니다. 때로는 NAM_Type1 및 때로는 전역의 여러 국가를 쿼리합니다.하나의 쿼리로 부모 영역의 모든 하위 영역에서 GemFire ​​OQL 쿼리를 수행 할 수 있습니까?

Global_Type1 
-> NAM_Type1 
--> USA 
--> Mexico 
-> APAC_Type1 
--> Japan 
--> HongKong 

개별 국가에서 여러 번 쿼리하지 않고 상위 영역을 쿼리하는 방법이 있습니까?

상위 수준에서 색인을 생성 할 수 있습니까?

저는 연결 용으로 스프링 젬 파이어 (spring-gemfire)가 포함 된 GemFire ​​7.0을 사용합니다. 내가 제대로 문제를 이해한다면

답변

0

@Ashish

는 빠른 대답은 없는입니다.

상위 (예 : USA, MEXICO 등)의 여러 하위 영역에 포함 된 데이터를 참조하거나 오히려 질의하기 위해 상위 (예 : NAM_Type1) 영역을 사용하고, 결과를 "집계" 모든 Sub-Regions ??? 상위 지역 사이에 참조가 없기 때문에

귀하의 하위 지역은 고객 객체를 포함 가정 예를 들어

, ... 그리고

public class Customer ... { 
    private String firstName; 
    private String lastName; 
    private boolean active; 
    ... 
} 

...

SELECT * FROM /NAM_Type1 nam WHERE nam.active = 'true'; 

이 OQL 쿼리는 고장 (예 : NAM_Type1) 및 하위 영역 (예 : 미국 등)의 항목을 포함 할 수 있습니다. 네임 스페이스 계층 구조에만 "부모"영역을 사용하는 경우에는 데이터가 전혀 없습니다.

"하위 영역"의 필요성이 궁금합니다. 하위 영역은 데이터 액세스와 관련하여 (특히 OQL/쿼리를 사용하여) 최상위 영역과 다르게 표시되지 않습니다.

Sub-Regions를 사용하면 GemFire ​​User Guide (http://gemfire.docs.pivotal.io/latest/userguide/index.html#basic_config/data_regions/managing_data_regions.html)에서 언급 한대로 REPLICATE Regions를 사용하고 있으며이를 사용하는 것으로 제한됩니다. 이러한 이유 때문에, GemFire ​​팀은 특히 트랜잭션 데이터가 많이 바뀔 수있는 하위 지역의 사용을 일반적으로 권장하지 않습니다.

일반적으로 트랜잭션 데이터에는 PARTITION Regions을 사용하고 주로 작은 데이터 세트 및 일반적으로 참조/조회 유형 데이터에 대해서는 REPLICATE Regions를 사용하려고합니다.

따라서, 귀하의 경우, 당신은 ...로 ... 분할 영역을 사용하여

  1. 비슷한 동작을 달성 할 수
  2. 구성하고 다른 서버에 생성
  3. ...
  4. 는 다른 서버로 구성 그룹은 위에서 언급 한 계층 적 조직을 기반으로합니다.

그런 다음 관심있는 인구 통계 영역에 대한 데이터를 호스팅하는 특정 서버 그룹의 서버에서 GemFire ​​기능을 대상으로 지정하고 실행하여 지역의 로컬 데이터 집합에 OQL 쿼리를 실행할 수 있습니다. 함수는 결과를 집계 한 다음 반환합니다.

사용자 지정 "PartitionResolvers"등을 사용하거나 함수를 대상 지정하는 등 다양한 방법으로 데이터를 구성하고 분할 할 수 있습니다.

PARTITION Regions를 사용하면 "copies"속성 (GemFire의 PartitionAttributes.redundantCopies 속성에 해당)을 사용하여 HA (중복성)를 얻을 수 있습니다. 동등 쿼리를 가능/최적으로 만드는 데이터를 "함께 배치"할 수 있습니다.

면책 조항 : 귀하의 유스 케이스 및 요구 사항을 잘 알고 계시지 않더라도 내 제안은 귀하의 상황에 따라 작동 할 수도 있고 작동하지 않을 수도 있지만 일반적으로 소구역의 영향은 더 우아하고 효과적으로 GemFire의 다른 기능. 어쩌면 이것은 당신에게 몇 가지 아이디어를 줄 것입니다.

희망이 도움이됩니다.

요한 복음

+0

당신을 위해 몇 가지 추가 참조 ... http://gemfire.docs.pivotal.io/latest/userguide/index.html#developing/partitioned_regions/chapter_overview.html은 http : // gemfire .docs.pivotal.io/latest/userguide/index.html # developing/querying_basics/querying_partitioned_regions.html –