2013-07-26 2 views
1

해당 값을 기반으로 엔티티를 가져 오는 데 사용할 수있는 여러 필드가있는 redis 기반 데이터 스토어를 만들려고합니다. 데이터는 다음과 같습니다.nosql 데이터의 스키마와 같은 관계형 데이터베이스 사용

Person<Entity> 
Name 
Address 
Purchases<Another Entity> 
Reviews<list of another Entity> 

이는 다른 엔티티들 사이 대다 관계되는 바와 같은 다른 entites 존재할 것 같은.

기존 데이터베이스를 고려하지 않고 확장 성과 내결함성을 찾고 있습니다. 내가 만드는 것은 다음과 같다. 해시 오브 엔티티 ID는 각 엔티티 오브젝트에 매핑된다. 다 대다 관계의 양측에 하나 인 구매자에 대한 구매자와 구매자에 대한 구매자의 연관성을 포함하는 세트.

이 디자인은 오버 헤드가 많이 포함되므로, 이것을 비정규 화 된 상태로 유지하는 데 몇 가지 결함이 있다고 생각됩니다. 데이터베이스를 통해 메모리 저장소를 사용하는 선택에 관해서는 쿼리 응답 시간을 중요한 가치로 생각하고 있습니다. 빅 데이터 도전 과제를 처리하는 방법을 배우기 위해이 예제를 구현하면서 디자인에 대한 제안을 찾고 있습니다.

답변

4

빅 데이터 도전 과제를 처리하는 방법을 배우려면이 예제를 구현하면서 디자인에 대한 제안을 찾고 있습니다.

당신의 도전이 빅 데이터라고 생각하십니까? 얼마나 많은 데이터가 우리가 말하는거야? 관계형 데이터베이스를 사용자의 요구를 충족시킬 수있는 솔루션으로 할인하기 전에 먼저 해당 질문을해야합니다.

기존 데이터베이스를 고려하지 않고 확장 성과 내결함성을 찾고 있습니다.

Redis와 관계형 데이터베이스는 동일한 확장 성 문제가 있습니다. 사용자 정의 샤딩 기술을 구현하거나 사용하지 않는 한 수평 적으로 확장되지 않습니다. Redis Cluster은이 문제를 해결하기위한 것이지만 아직 진행 중이며 아직 준비가되지 않은 작업입니다. 그 동안에는 twemproxy을 사용할 수 있습니다. 트위터가 개발 한이 솔루션은 키를 redis 서버 클러스터 전체에 배포하는 프록시 솔루션입니다.

값을 기반으로 엔티티를 가져 오는 데 사용할 수있는 여러 개의 필드 이있는 redis 기반 데이터 저장소를 만들려고합니다.

Redis는 값, 기간에 따라 쿼리하도록 설계되지 않았습니다. 이유를 더 잘 이해하려면 thisthis을 읽어보십시오.

+0

일을 명확히하고 twemproxy에 대해 언급 해 주신 @raffian에게 감사드립니다. 내가 염두에두고 있던 초기 데이터는 쉽게 확장 할 수있는 약 1 천만 개의 레코드였습니다. 맞춤 솔루션을 유지하면서 가능한 가장 빠른 조회를 찾고있었습니다. –

관련 문제