분석 저장소 지원 컨테이너 생성
Azure Cosmos DB 계정에서 Azure Synapse Link를 사용하도록 설정한 후 분석 저장소를 지원하는 컨테이너를 만들거나 업데이트할 수 있습니다.
분석 저장소는 행 기반 운영 저장소와 동일한 컨테이너 내 열 기반 저장소입니다. auto-sync 프로세스는 운영 저장소의 변경 내용을 분석 저장소와 동기화합니다. 분석 저장소는 운영 저장소에 대한 처리 오버헤드 없이 쿼리할 수 있는 위치입니다.
분석 저장소 스키마 유형
운영 저장소의 데이터가 분석 저장소에 동기화되면 스키마가 동적으로 업데이트되어 동기화되는 문서의 구조를 반영합니다. 이 동적 스키마 유지의 특정 동작은 Azure Cosmos DB 계정에 대해 구성된 분석 저장소 스키마 유형에 따라 달라집니다. 다음 두 가지 유형의 스키마 표현이 지원됩니다.
- 잘 정의됨: Azure Cosmos DB for NoSQL 계정에 대한 기본 스키마 유형입니다.
- 전체 충실도: Azure Cosmos DB for MongoDB 계정의 기본(및 유일하게 지원되는) 스키마 유형입니다.
분석 저장소는 운영 저장소에서 JSON 데이터를 수신하여 열 기반 구조로 구성합니다. 잘 정의된 스키마에서는 JSON 필드의 첫 번째 Null이 아닌 발생이 해당 필드의 데이터 형식을 결정합니다. 필드에 할당된 데이터 형식과 호환되지 않는 후속 발생은 분석 저장소로 수집되지 않습니다.
예를 들어, 다음과 같은 두 개의 JSON 문서를 생각해 보겠습니다.
{"productID": 123, "productName": "Widget"}
{"productID": "124", "productName": "Wotsit"}
첫 번째 문서에서는 productID 필드가 숫자(정수) 값임을 확인합니다. 두 번째 문서가 발견되면 productID 필드는 문자열 값이 있으므로 분석 저장소로 가져오지 않습니다. 문서와 해당 필드의 나머지 부분을 가져오지만 호환되지 않는 필드는 삭제됩니다. 다음 열은 분석 저장소의 데이터를 나타냅니다.
productID | productName |
---|---|
123 | 위젯 |
Wotsit |
전체 충실도 스키마에서 데이터 형식은 필드의 각 인스턴스에 추가되고 필요에 따라 새 열이 생성되어 다음 표와 같이 분석 저장소가 서로 다른 데이터 형식의 필드를 여러 번 포함할 수 있도록 합니다.
productID.int32 | productName.string | productID.string |
---|---|---|
123 | 위젯 | |
Wotsit | 124 |
참고
자세한 내용은 Azure Cosmos DB 분석 저장소란?을 참조하세요.
컨테이너에서 분석 저장소 지원 사용
새 컨테이너를 만들 때 또는 기존 컨테이너에 대해 분석 저장소 지원을 활성화할 수 있습니다. 분석 저장소 지원을 사용하도록 설정하려면 Azure Portal을 사용하거나 Azure CLI 또는 Azure PowerShell에서 명령줄 또는 스크립트를 사용할 수 있습니다.
Azure Portal 사용
Azure Portal에서 새 컨테이너를 만들 때 분석 저장소 지원을 사용하도록 설정하려면 다음 그림과 같이 분석 저장소에서 On 옵션을 선택합니다.
또는 다음 그림과 같이 Cosmos DB 계정 페이지 내 통합 섹션의 Azure Synapse Link 페이지에서 기존 컨테이너에 분석 저장소 지원을 사용하도록 설정할 수 있습니다.
Azure CLI 사용
Azure CLI를 사용하여 Azure Cosmos DB for NoSQL 컨테이너에서 분석 저장소 지원을 사용하도록 설정하려면 az cosmosdb sql container create
명령(새 컨테이너를 만드는 경우) 또는 az cosmosdb sql container update
명령(기존 컨테이너를 구성하는 경우)을 --analytical-storage-ttl
매개 변수와 함께 실행하여 분석 데이터 보존 기간을 할당합니다. -analytical-storage-ttl
매개 변수를 -1로 지정하면 분석 데이터를 영구적으로 보존할 수 있습니다. 예를 들어 다음 명령은 분석 저장소 지원을 사용하여 my-container라는 새 컨테이너를 만듭니다.
az cosmosdb sql container create --resource-group my-rg --account-name my-cosmos-db --database-name my-db --name my-container --partition-key-path "/productID" --analytical-storage-ttl -1
Azure Cosmos DB for MongoDB 계정의 경우 --analytical-storage-ttl
매개 변수와 함께 az cosmosdb mongodb collection create
또는 az cosmosdb mongodb collection update
명령을 사용할 수 있습니다. Azure Cosmos DB for Apache Gremlin 계정의 경우 --analytical-storage-ttl
매개 변수와 함께 az cosmosdb gremlin graph create
또는 az cosmosdb gremlin graph update
명령을 사용할 수 있습니다.
Azure PowerShell 사용
Azure PowerShell을 사용하여 Azure Cosmos DB for NoSQL 컨테이너에서 분석 저장소 지원을 사용하도록 설정하려면 New-AzCosmosDBSqlContainer
cmdlet(새 컨테이너를 만드는 경우) 또는 Update-AzCosmosDBSqlContainer
cmdlet(기존 컨테이너를 구성하는 경우)을 -AnalyticalStorageTtl
매개 변수와 함께 실행하여 분석 데이터 보존 기간을 할당합니다. -AnalyticalStorageTtl
매개 변수를 -1로 지정하면 분석 데이터를 영구적으로 보존할 수 있습니다. 예를 들어 다음 명령은 분석 저장소 지원을 사용하여 my-container라는 새 컨테이너를 만듭니다.
New-AzCosmosDBSqlContainer -ResourceGroupName "my-rg" -AccountName "my-cosmos-db" -DatabaseName "my-db" -Name "my-container" -PartitionKeyKind "hash" -PartitionKeyPath "/productID" -AnalyticalStorageTtl -1
Azure Cosmos DB for MongoDB 계정의 경우 -AnalyticalStorageTtl
매개 변수와 함께 New-AzCosmosDBMongoDBCollection
또는 Update-AzCosmosDBMongoDBCollection
cmdlet을 사용할 수 있습니다.
분석 저장소 지원을 사용하기 위한 고려 사항
분석 저장소 지원을 비활성화하려면 컨테이너를 삭제해야 합니다. 분석 저장소 TTL(Time to Live) 값을 0 또는 null로 설정하면 운영 저장소에서 새 항목을 더 이상 동기화하지 않으며 분석 저장소에서 이미 동기화된 항목을 삭제하므로 분석 저장소가 효과적으로 비활성화됩니다. 이 값을 0으로 설정하면 컨테이너에서 분석 저장소 지원을 다시 활성화할 수 없습니다.