CosmosDb에서 파티션 키에 /id를 사용하는 것의 의미
분당 1000개의 항목(고유 키)이 코스모스에 입력되는 시나리오에서 /id를 파티션 키로 사용해도 안전합니까?
특히 논리 파티션의 개념이 있습니다. https://learn.microsoft.com/en-us/azure/cosmos-db/partition-data 여기 그래픽은 논리 파티션이 실제 엔티티(예: "도시": "런던")임을 보여줍니다.만약 내가 8시간의 TTL과 분당 1000개의 엔트리를 가지고 있다면, 나는 코스모스가 관리해야 하는 48만개의 논리 파티션을 꼭 원하지 않습니다.
파티션 키의 값은 물리적 파티션의 수에 따라 해시되고 모듈화됩니다. 예를 들어, https://learn.microsoft.com/en-us/azure/cosmos-db/partitioning-overview#choose-partitionkey 은 "논리 파티션 관리" 섹션에서 이것이 사실임을 나타냅니다.또한 "파티션 키 선택" 섹션에서는 /id가 훌륭한 파티션 키임을 제안합니다. 10GB 제한, 처리량 제한, 핫스팟 없음, 넓은 범위의 값에 대해 걱정할 필요가 없으며 애플리케이션이 ID를 제외한 다른 항목에 대해 필터링할 필요가 없기 때문입니다.교차 파티션 쿼리는 이 사용 사례에서 문제가 되지 않습니다.
요약하자면, 수십만 개의 파티션 키 값(논리 파티션)으로 인한 메모리/CPU/etc 오버헤드에 대해 걱정해야 합니까?문서는 파티션 키의 값이 많을수록 좋다는 것을 나타내지만 너무 많은 값을 가질 수 있는지 여부는 말하지 않습니다.
저는 코스모스 DB 엔지니어링 팀에서 왔습니다.
Cosmos DB 컬렉션/컨테이너에 생성되는 논리 파티션 키의 수에 대해 걱정할 필요가 없습니다.파티션 키가 쓰기(논리 파티션별 키 상한이 10GB인 경우) 및 쿼리에 적합한 선택인 경우에만 적합합니다.
의미는 다음과 같습니다.
- 최상의 카디널리티
쉽고 빠른 문서 읽기
트랜잭션 범위가 파티션 키이므로 트랜잭션이 없습니다.
- 이외의 다른 항목에 의한 쿼리
id
교차 검색됩니다.
PS. 나는 아무것도 필요하지 않은 경우를 거의 상상할 수 없습니다.id
캐싱을는 "/"입니다.문서 캐싱(TTL과 결합)을 제외합니다.
언급URL : https://stackoverflow.com/questions/54636852/implications-of-using-id-for-the-partition-key-in-cosmosdb
'programing' 카테고리의 다른 글
프로비저닝 프로파일을 새로 고칠 때 Xcode가 충돌합니다. (0) | 2023.05.01 |
---|---|
파일에 MemoryStream 저장 및 로드 (0) | 2023.05.01 |
ng-if와 ng-show/ng-hide의 차이점은 무엇입니까? (0) | 2023.05.01 |
Tkinter에서 두 프레임을 전환하시겠습니까? (0) | 2023.05.01 |
문자열에서 줄 바꿈을 제거하는 방법 (0) | 2023.05.01 |