컬렉션 바꾸기
Replace Collection은 만든 후 컬렉션의 인덱싱 정책 변경을 지원합니다. ID 또는 파티션 키와 같은 컬렉션의 다른 속성 변경은 지원되지 않습니다.
참고
이러한 API 참조 문서에서는 Azure Cosmos DB 데이터 평면 API를 사용하여 리소스를 만드는 방법을 보여 줍니다. 데이터 평면 API를 사용하면 Cosmos DB SDK와 마찬가지로 인덱싱 정책, 파티션 키와 같은 기본 옵션을 구성할 수 있습니다. 모든 Azure Cosmos DB 리소스에 대한 완전한 기능 지원이 필요한 경우 Cosmos DB 리소스 공급자를 사용하는 것이 좋습니다.
요청
메서드 | 요청 URI | 설명 |
---|---|---|
PUT | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id} | {databaseaccount}는 구독에서 만든 Azure Cosmos DB 계정의 이름입니다. {db-id} 값은 시스템 생성 ID(rid)가 아니라 사용자가 생성한 데이터베이스의 이름/ID입니다. {coll-id} 값은 바꿀 컬렉션의 이름입니다. |
헤더
모든 Cosmos DB 요청에 사용되는 헤더는 일반적인 Azure Cosmos DB REST 요청 헤더를 참조하세요.
본문
속성 | 필수 | 형식 | Description |
---|---|---|---|
id | 필수 | 문자열 | 컬렉션에 대해 사용자가 생성한 고유 이름. 두 컬렉션의 ID가 같을 수 없습니다. 255자를 초과하면 안 되는 문자열입니다. |
indexingPolicy | 선택 사항 | Object | 이 값은 컬렉션의 항목에 대한 인덱스를 구성하는 데 사용됩니다. 기본적으로 인덱싱 정책은 컬렉션 내의 모든 문서 경로에 대해 자동으로 설정됩니다. |
partitionKey | 필수 | Object | 이 값은 데이터 분할에 사용되는 파티션 키를 설정합니다. 큰 파티션 키를 사용하려면 partitionKey 속성 내에서 버전을 2로 지정합니다. REST API 버전이 2018-12-31 이상인 경우 컬렉션에 partitionKey 정의가 포함되어야 합니다. 2018-12-31 이전 버전에서는 partitionKey 정의를 생략하고 처리량이 400~10,000RU/s 사이인지 확인하여 수동 처리량이 있는 레거시 비분할 컬렉션을 만들 수 있습니다. 최상의 성능과 확장성을 위해 항상 파티션 키를 설정하는 것이 좋습니다. 적절한 파티션 키를 선택하는 방법에 대해 알아봅니다. |
참고
사용자 지정 인덱스 경로를 설정하는 경우 특수 경로 “/*”로 지정된 전체 문서 트리에 대한 기본 인덱싱 규칙을 지정해야 합니다.
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"dataType": "Number",
"precision": -1,
"kind": "Range"
},
{
"dataType": "String",
"precision": 3,
"kind": "Hash"
}
]
}
],
"excludedPaths": []
},
"_rid": "XrdaAKx3Hgw=",
"_ts": 1459203135,
"_self": "dbs/XrdaAA==/colls/XrdaAKx3Hgw=/",
"_etag": "\"00006c00-0000-0000-0000-56f9ac3f0000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}
응답
Replace Collection은 업데이트된 컬렉션을 응답 본문으로 반환합니다.
헤더
모든 Cosmos DB 응답 에서 반환되는 헤더는 일반적인 Azure Cosmos DB REST 응답 헤더를 참조하세요.
상태 코드
다음 표에는 이 작업에서 반환하는 일반적인 상태 코드가 나열되어 있습니다. 상태 코드의 전체 목록은 HTTP 상태 코드를 참조하세요.
코드 | Description |
---|---|
201 OK | PUT 작업이 성공했습니다. |
400 잘못된 요청 | JSON 본문이 잘못되었습니다. 누락된 중괄호나 따옴표를 확인하세요. |
본문
속성 | Description |
---|---|
id | 새 컬렉션을 식별하는 고유한 이름입니다. |
_rid | 시스템 생성 속성입니다. 리소스 ID(_rid)는 고유 식별자로, 역시 리소스 모델에서 리소스 스택에 따라 계층적입니다. 사용 권한 리소스의 배치와 탐색용으로 내부적으로 사용됩니다. |
_ts | 시스템 생성 속성입니다. 리소스가 마지막으로 업데이트된 시간의 타임스탬프를 지정합니다. 값은 타임스탬프입니다. |
_self | 시스템 생성 속성입니다. 고유한 주소를 지정할 수 있는 리소스의 URI입니다. |
_etag | 낙관적 동시성 제어에 필요한 리소스 etag를 나타내는 시스템 생성 속성입니다. |
_doc | 문서 리소스의 주소 지정 가능 경로를 지정하는 시스템 생성 속성입니다. |
_sprocs | 스프록스(저장 프로시저) 리소스의 주소 지정 가능 경로를 지정하는 시스템 생성 속성입니다. |
_triggers | 트리거 리소스의 주소 지정 가능 경로를 지정하는 시스템 생성 속성입니다. |
_udfs | udfs(사용자 정의 함수) 리소스의 주소 지정 가능 경로를 지정하는 시스템 생성 속성입니다. |
_conflicts | 충돌 리소스의 주소 지정 가능 경로를 지정하는 시스템 생성 속성입니다. 컬렉션 내의 리소스에 대한 작업 중에 충돌이 발생하면 사용자는 충돌 URI 경로에 대해 GET을 수행하여 충돌하는 리소스를 검사할 수 있습니다. |
indexingPolicy | 컬렉션에 대한 인덱싱 정책 설정입니다. |
partitionKey | 컬렉션에 대한 분할 구성 설정입니다. |
포함된 경로 아래의 속성
속성 | 설명 |
---|---|
path | 인덱싱 동작이 적용되는 경로입니다. 인덱스 경로는 루트(/)로 시작하고 일반적으로 ? 와일드카드 연산자로 끝나 접두사에 대해 가능한 값이 여러 개 있음을 나타냅니다. 예를 들어 SELECT * FROM Families F WHERE F.familyName = "Andersen"을 처리하려면 컬렉션의 인덱스 정책에 /familyName/?의 인덱스 경로를 포함해야 합니다. 또한 인덱스 경로에 * 와일드카드 연산자를 사용하여 접두사 아래에 재귀적으로 경로에 대한 동작을 지정할 수 있습니다. 예를 들어 /payload/*를 사용하여 페이로드 속성의 모든 항목을 인덱싱에서 제외할 수 있습니다. |
dataType | 인덱싱 동작이 적용되는 데이터 형식입니다. String, Number, Point*, Polygon 또는 LineString일 수 있습니다. 부울 및 null이 자동으로 인덱싱됩니다. |
kind | 인덱스의 유형입니다. 해시 인덱스는 같음 비교에 유용하지만 범위 인덱스는 같음, 범위 비교 및 정렬에 유용합니다. 공간 인덱스는 공간 쿼리에 유용합니다. |
정밀도 | 인덱스의 전체 자릿수입니다. 최대 정밀도의 경우 -1로 설정하거나 Number의 경우 1-8, String의 경우 1-100으로 설정할 수 있습니다. Point, Polygon 및 LineString 데이터 형식에는 적용되지 않습니다. |
제외된 경로 아래의 속성
속성 | 설명 |
---|---|
path | 인덱싱에서 제외되는 경로입니다. 인덱스 경로는 루트(/)로 시작하고 일반적으로 * 와일드카드 연산자로 끝납니다. 예를 들어 /payload/*를 사용하여 페이로드 속성의 모든 항목을 인덱싱에서 제외할 수 있습니다. |
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Hash",
"dataType": "String",
"precision": 3
}
]
}
],
"excludedPaths": []
},
"_rid": "XrdaAKx3Hgw=",
"_ts": 1459203136,
"_self": "dbs/XrdaAA==/colls/XrdaAKx3Hgw=/",
"_etag": "\"00006e00-0000-0000-0000-56f9ac400000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}
예제
PUT https://querydemo.documents.azure.com/dbs/XrdaAA==/colls/XrdaAKx3Hgw= HTTP/1.1
x-ms.date: 04/20/2021
authorization: type%3dmaster%26ver%3d1.0%26sig%3dZY2s2H1TuPFKk1H2od5qVLbn57vjI9rKz0CMXKOk3GA%3d
Cache-Control: no-cache
User-Agent: Microsoft.Azure.Documents.Client/1.6.0.0
x-ms-version: 2015-12-16
Accept: application/json
Host: querydemo.documents.azure.com
Content-Length: 475
Expect: 100-continue
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"dataType": "Number",
"precision": -1,
"kind": "Range"
},
{
"dataType": "String",
"precision": 3,
"kind": "Hash"
}
]
}
],
"excludedPaths": []
},
"_rid": "XrdaAKx3Hgw=",
"_ts": 1459203135,
"_self": "dbs/XrdaAA==/colls/XrdaAKx3Hgw=/",
"_etag": "\"00006c00-0000-0000-0000-56f9ac3f0000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}
HTTP/1.1 200 Ok
Cache-Control: no-store, no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json
Content-Location: https://querydemo.documents.azure.com/dbs/XrdaAA==/colls/XrdaAKx3Hgw=
Server: Microsoft-HTTPAPI/2.0
Strict-Transport-Security: max-age=31536000
x-ms-last-state-change-utc: Fri, 25 Mar 2016 22:54:09.213 GMT
etag: "00006e00-0000-0000-0000-56f9ac400000"
x-ms-resource-quota: collections=5000;
x-ms-resource-usage: collections=28;
collection-partition-index: 0
collection-service-index: 0
x-ms-schemaversion: 1.1
x-ms-alt-content-path: dbs/testdb
x-ms-quorum-acked-lsn: 7902
x-ms-current-write-quorum: 3
x-ms-current-replica-set-size: 4
x-ms-request-charge: 9.9
x-ms-serviceversion: version=1.6.52.5
x-ms-activity-id: 6050a48c-828d-4016-b73b-5e0ce2ad6271
x-ms-session-token: M:7903
Set-Cookie: x-ms-session-token#M=7903; Domain=querydemo.documents.azure.com; Path=/dbs/XrdaAA==/colls/XrdaAKx3Hgw=
Set-Cookie: x-ms-session-token=7903; Domain=querydemo.documents.azure.com; Path=/dbs/XrdaAA==/colls/XrdaAKx3Hgw=
x-ms-gatewayversion: version=1.6.52.5
Date: Mon, 28 Mar 2016 22:12:15 GMT
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Hash",
"dataType": "String",
"precision": 3
}
]
}
],
"excludedPaths": []
},
"_rid": "XrdaAKx3Hgw=",
"_ts": 1459203136,
"_self": "dbs/XrdaAA==/colls/XrdaAKx3Hgw=/",
"_etag": "\"00006e00-0000-0000-0000-56f9ac400000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}