2014-03-04 1 views
1

여러 개의 버킷이있는 3 노드 Riak 클러스터를 사용하고 있습니다. 내가 이름처럼 사용자 정보가USER_ACCOUNT라는 버킷을 가지고, 주소 등이 데이터를 업데이트 또 다른 버킷 user_metadata이 있습니다Riak - 다른 버킷을 기반으로 한 버킷의 객체를 필터링하는 방법은 무엇입니까?

user_account = {"id" => 1,"name"=>"abc", "address"=>"xyz"} 

. 그 레코드는 다음과 같습니다 :

user_metadata = {"id" => 1, "created_at"=>"20140304", "updated_at" => "20140304"} 

두 버킷 모두 id와 동일한 키를 가지고 있습니다. user_metadata에 날짜 범위 내에서 업데이트되는 모든 키에 대해 버킷 user_account에 map_reduce를 실행하고 싶습니다. 나는 이것을 할 수있는 방법이 있으며, 현재 user_metadata bucket의 updated_at 키에 대한 색인이 없다.

+0

다음과 같은 경우 데이터를 구조 조정해야합니다. http://stackoverflow.com/questions/15274070/how-to-append-data-to-a-riak-key-under-a-heavily- 분산 환경/15295260 # 15295260 – Pentium10

답변

0

Riak에 조인이 없으므로이 문제를 해결하는 일반적인 방법은 데이터 모델을 표준화 해제하는 것입니다. 귀하의 경우이 레코드간에 1 대 1의 관계가 있으므로이를 병합하는 것이 좋습니다. 또한 MapReduce 작업의 성능을 향상시키고 이에 대한 적절한 입력을보다 효율적으로 정의 할 수있는 보조 색인을 정의 할 수 있습니다. 또한 Riak에서 데이터를보다 효율적으로 검색하는 데 도움이 될 수 있습니다. 작은 수의 큰 개체가 아닌 여러 개의 큰 개체를 검색하는 것이 일반적으로 바람직하기 때문입니다.

관련 문제