2010-11-22 7 views
3

tuples (t = (클릭 수, 노출 수, ctr))를 여러 값에 해시하는 특수 저장소가 있습니다. pageId, categoryId, userId, sessionId 등을 예로 들어 봅시다.다중 키 키 값 저장소가 있습니까?

나는 MySQL, MongoDb et cetera를 사용하여 이것을 할 수 있음을 알고있다. 하지만 좀 더 전문적이고 mabye 임베디드 (Java) 매장을 찾고 있습니다. 복잡한 쿼리 언어 나 RDMBS와 같은 트랜잭션을 제공 할 필요가 없습니다. 그러나 원 자성과 내구성은 프로 일 것입니다. ;)

이것은 여러 차원에서 집계 데이터를 저장하는 DWH 유형 응용 프로그램에도 유용 할 수 있지만 해당 제품을 찾지 못했습니다.

답변

0

귀하의 최상의 선택, 당신은 그 값을 연결할 수

HashMap<Key1Type, HashMap<Key2Type, ValueType>> 

또는 항목의 경우

가 모두 문자열을 통해 표현 될 수 사용하고 당신이 할 수있는 경우

HashMap<string, ValueType> 
+0

알았어, 그 방법을 알고 있지만 ... 나는 멀티 키를 위해 Memcached를 의미하는 "상점"에 대해 묻고있다. –

+0

Java에서이 작업을 수행하는 방법에 대한 또 다른 스레드가 있습니다. 사실 테라코타 (Terracotta) 같은 것을 사용하고 이런 종류의 데이터 구조를 구축하는 것에 대해 생각했습니다. –

+0

아, 죄송합니다. 오해했습니다. 나는 그 라인을 따라 무엇이 있는지 몰라, 미안해. –

0

에 그들 모두를 저장하는 중에있다 주기적으로로드 프로세스를 수행하면서 몬드리안이나 SQL Server Analysis Services와 같은 OLAP 서버를 사용할 수 있습니다. 기본 데이터 구조가 해시 테이블이 아니지만 이들은 정확히 이런 종류의 작업을 수행합니다. 실제로 데이터를 데이터베이스에 저장하고 데이터베이스의 데이터를 큐브에로드해야합니다.

+0

그래, 내가 알고리즘을 몰기 위해서 이걸 필요해. 그리고 나는 Pentaho가 매우 빠른 키/값 조회에 필요한 성능을 만족시키지 않는다고 생각한다. –

0

키 - 값 저장소를 사용하면 항상 키 구성을 사용하여 단일 키 열에 여러 열을 저장할 수 있습니다. 즉, wiredtiger은 키와 값에 대해 여러 개의 열을 제공하며 인덱스를 작성하기 위해 투영을 수행 할 수 있습니다.

키 구성은 단일 값으로 여러 값을 패킹하는 것입니다. 가장 간단한 구성은 ":"과 같이 구분 기호로 char을 사용합니다.