2017-04-06 1 views
0

10 개의 초기 분할 점과 10 개의 초기 분할 표가있는 테이블을 만들고 잠시 후 최대 크기가되고 자동 분할됩니다.빈 타블렛은 어떻게됩니까?

내 키가 이고 파티션 카운터가이고 카운터가 계속 증가한다고 가정하면 새로 만든 태블릿에 삽입되며 이전 버전으로는 삽입되지 않습니다.

이전 레코드의 모든 레코드가 TTL에 도달하면 (압축이 수행 된 후) 태블릿은 비어있게됩니다.

이 타블렛이 자동으로 제거 되었습니까? 그렇지 않은 경우 비어있는 태블릿이 성능이나 비용에 영향을 미칩니 까?

틀림없이 우리는 자동 분할과 태블릿이 일정하게 유지 될만큼 커지지 않도록 모든 파티션과 TTL을 만들려고 노력해야하지만 모든 시나리오를 처리하려고합니다.

답변

0

의 내가 10 개 초기 분할 점 때문에 10 초기 정제와 테이블을 생성하고, 잠시 후 그들 중 하나가 최대 크기에 도달 및 자동 분할입니다 가정 해 봅시다.

내 키가 partition_counter라고 가정하고 카운터가 계속 증가하면 새로 만든 태블릿에 삽입하고 이전 키에는 삽입하지 않을 것입니다.

행 키/스키마 디자인에 대한 충분한 정보를 제공하지 않았으므로 내 부분에는 추측 일 뿐이지 만 다른 모든 기존 키보다 항상 큰 키에 항상 쓰는 경우 Bigtable의 키를 누르면 마지막 타블렛이있는 노드가 핫스팟이되며 쓰기를 배포 할 수 없으므로 클러스터의 크기에 관계없이 항상 단일 노드와 동일한 성능을 얻습니다. 최신 주요 위해, 가난한 스케일링

  • 좋은 예 - <date>-<some id/hash> : <some id/hash>-<date> - 상품/사용자/장치 - 주요 순서, 좋은 확장
  • 일반적인 스키마 설계를 방지

    • 나쁜 예를 함정

    접두어로 날짜 또는 시간을 삽입하지 않은 경우 행 키에을 입력하면 올바르게 수정됩니다. 와이.

    이전 레코드의 모든 레코드가 TTL에 도달하면 (압축이 수행 된 후) 태블릿은 비어있게됩니다.

    이 타블렛이 자동으로 제거 되었습니까? 그렇지 않은 경우 비어있는 태블릿이 성능이나 비용에 영향을 미칩니 까?

    예, 이러한 태블릿은 압축시 사라지고 클러스터는 알리지도 않게됩니다. 빈 정제는 성능이나 비용에 영향을 미치지 않으므로 걱정하지 않아야합니다.

    인정 하듯이 우리는 파티션과 그들이 자동 분할 충분히 큰 결코 및 정제가 일정하게 유지되도록 TTL 우리의 #을 만들기 위해 노력한다,하지만 난 모든 시나리오를 해결하기 위해 노력하고있어.

    아니요, 아니요, 태블릿 수, # 파티션 또는 TTL은 걱정하지 않아도됩니다. 분할을 피하거나 일정한 수의 태블릿을 보유해야한다는 요구 사항은 없습니다. 이는 다른 스토리지 시스템에서는 문제가 될 수 있지만 Bigtable에서는 문제가되지 않을 수 있습니다.

    데이터 크기를 확장 할 때 읽기/쓰기가 단조롭게 증가하거나 감소하지 않고 키 공간 (노드를 통해 분할 됨)을 따라 분산되도록 스키마 설계를 수행해야합니다.

    더 많은 정보를 위해,이 문서를 참조하십시오 : 사용 사례가 인기 패턴에 맞는 경우

    또한, 단순화하는 것이 빅 테이블에 프론트 엔드를 사용하는 것을 고려 특정 사용 사례에 대한 스키마 관리 (예 :

    )
    • 그래프
    대한 지리
  • JanusGraph 시계열
  • GeoMesa위한 OpenTSDB 또는 Spotify Heroic
  • 관련 문제