2012-12-21 4 views
0

이제 막 소셜 사이트를 DynamoDB에 구축하기 시작했습니다.DynamoDB - 찾아보기 테이블 쿼리

나는 사용자에게 관련 자료의 공정한 금액을해야합니다 내가 모든 하나 개의 테이블에이 퍼팅에 계획입니다 - 예 : 출생

  • 머리의

    • 사용자 ID
    • 날짜를
    • 사진의 URL을
    • 구체적인

    등 -이있을 잠재적으로 수백 개의 속성이 될 수 있습니다.

    질문 : 하나 개의 테이블에 데이터의 양을 넣어 잘못 아무것도

    • 가?
    • 어떻게 데이터를 쿼리 할 수 ​​있습니까?이 연령대,이 색 머리카락,이 위치 및이 시간 사이에있는 모든 멤버)와 같은 쿼리를 수행 할 수 있습니까?이 데이터가 모두 테이블에 포함되어 있다고 가정 할 경우
    • 테이블의 내용이 길고 나는 위의 읽기 IO의 비용이 높은 것처럼 해당 테이블에 쿼리를 실행 해요 경우 - 장기적으로 테이블에있는 항목이 많이있을 수 있습니다 ...

    감사합니다.

  • 답변

    1

    아니요.이 방법으로 DynamoDB를 쿼리 할 수 ​​없습니다. 기본 키와 옵션으로 단일 범위 만 쿼리 할 수 ​​있습니다. DynamoDB의 테이블 검색 속도가 느리고 비용이 많이 들며 다른 쿼리가 중단 될 수 있습니다.

    속성 수가 적은 경우이 속성에 대한 색인 표를 쉽게 작성할 수 있습니다. 그러나 당신이 몇 개가 넘는다면 너무 복잡해집니다.

    메인 테이블 : "머리"에 대한

    Primary Key (Type: Hash) - userid 
    Attributes - the rest of the attributes 
    

    인덱스 테이블 :

    Primary Key (Type: Hash and Range) - hair and userid 
    

    당신은뿐만 아니라 다른 속성에 대한 인덱스를 추가 Amazon SimpleDB 따라서 같은 쿼리 수를 확인하실 수 있습니다 너는 원했어. 그러나 낮은 대기 시간을 지원할 수있는 규모와 기능이 제한적입니다.

    요구 사항이 실시간으로보고 사이에 다른로서 당신은 또한 여러 데이터 저장소 및 테이블의 조합을 고려해 볼 수 있습니다 : 빠른 실시간 사용자 조회

  • SimpleDB에/RDBMS에 대한

    • DynamoDB의 (로 추가 MySQL의 또는 Amazon RDS)는 필터 속성 및 카운터와 테이블 리더 보드 나 코호트
    • 활동 로그를 같은 당신이 패턴을 발견하고 분석 할 수 있습니다 및 위해) 레디 스, 카산드라으로 (메모리 DB에서
    • 를 조회 추세
  • 관련 문제