분석 저장소 지원 컨테이너 생성

완료됨

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 옵션을 선택합니다.

Azure Portal에서 새 컨테이너를 만들 때 분석 저장소 옵션을 보여 주는 스크린샷

또는 다음 그림과 같이 Cosmos DB 계정 페이지 내 통합 섹션의 Azure Synapse Link 페이지에서 기존 컨테이너에 분석 저장소 지원을 사용하도록 설정할 수 있습니다.

기존 컨테이너가 선택되고 컨테이너에서 Synapse Link 사용 단추가 활성화된 Azure Portal의 Azure Synapse 링크 페이지를 보여 주는 스크린샷.

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으로 설정하면 컨테이너에서 분석 저장소 지원을 다시 활성화할 수 없습니다.