2017-01-14 1 views
5

파티션 키를 지정하지 않고 ID로 문서를 검색 할 수 있습니까?문서 ID로 검색 할 때 파티션 키가 필요합니까

documentation을 읽는에서 나의 이해는 파티션 키가 지정되지 않은 모든 파티션에서 쿼리 의지 팬 아웃이다 :

다음 쿼리는 파티션에 필터가없는 키 (의 DeviceID) 파티션의 인덱스에 대해 이 실행되는 모든 파티션으로 이동됩니다. 에서 쿼리를 실행하려면 SDK에 EnableCrossPartitionQuery (x-ms-documentdb-query-enablecrosspartition REST API)를 지정해야합니다.

이는 핵심이 아닌 속성에서 의미가 있지만, ID가 특별히 처리되면 주어진 이름에 대해 교차 파티션 쿼리를 사용할 필요가 없기를 바랍니다.

크로스 파티션 쿼리를 활성화해야하는 경우 비용이 많이 드는 작업입니까?

답변

7

그냥 ID로 쿼리하면 교차 파티션 작업이 수행됩니다. 이러한 쿼리의 파티션 키는 FeedOptions.PartitionKey에 포함 시키거나 필터의 일부로 포함해야합니다. DocumentDB에서 ID는 이 아니며 컬렉션 내의 모든 문서에서 고유 한 값은입니다. 대신 "파티션 키"와 "id"의 조합이 기본 키이며 컬렉션 내의 문서를 고유하게 식별합니다.

일부 응용 프로그램은 파티션 키를 ID의 일부로 인코딩합니다. 파티션 키는 고객 ID이고 ID는 "customer_id.order_id"이므로 ID 값에서 파티션 키를 추출 할 수 있습니다.

+0

Thanks Aravind. ID 전략을 다시 생각해 볼 필요가 있습니다. 호기심에서 비싼 (RU 측면에서) 운영으로 간주되는 문서 ID를 기반으로하는 교차 파티션 쿼리입니까? – Sam

+1

자세한 내용을 문의하려면 [email protected]으로 전자 메일을 보내주십시오. 예, ID별로 교차 파티션 쿼리가 비교적 비쌉니다. –