python SDK를 통해 코스모스 처리량 업데이트
우리의 사용 사례는 많은 문서들이 있는 Cosmos DB를 가지고 있다는 것이다. 이것들은 기능 API를 통해 노출된다. API 사용량은 적지만 매일 밤 데이터 팩토리를 이용해 대량의 문서를 삽입해야 합니다. 이 프로세스가 실행되면 프로비저닝된 모든 Request 유닛(400-4000 RU/s)이 소모됩니다. 따라서 처리율을 프로그래밍 방식으로 업데이트하고 문서 업로드를 실행한 후 다시 전체 작업을 중단할 수 있는 솔루션을 찾고 있습니다.
함수 실행을 통해 python SDK를 이용하여 이를 수행하고자 합니다. 온라인에서 샘플 코드를 찾았는데, 이것은 처리량을 수동으로 프로비저닝할 때만 작동하는 것 같습니다. 전체적으로 오토스케일링으로 동일한 코드를 시도했을 때 오류는 없었지만 업데이트도 되지 않았습니다.
누가 자동 스케일로 설정되어 있을 때 처리량을 업데이트할 수 있는 샘플 코드를 알려줄 수 있나요?
누가 자동 스케일로 설정되어 있을 때 처리량을 업데이트할 수 있는 샘플 코드를 알려줄 수 있나요?
SDK 코드를 찾아보니 현재 버전의 SDK(버전 4.2.0)에서는 자동 스케일 처리량을 변경할 수 없는 것 같습니다.
Github에서도 같은 내용으로 공개된 이슈가 있습니다. SDK에서 언제 이 기능을 사용할 수 있는지 그 문제를 추적하는 것을 제안합니다.
이 차이는 현재 SDK 제한 사항 섹션에 나열되어 있으며 단기적으로 해결할 계획은 없습니다. 해결 방법은 CLI 및 PowerShell입니다.
자세한 내용은 여기에서 확인할 수 있습니다:
https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/cosmos/azure-cosmos#limitations
Tks
마지막으로 다음과 같은 방법이 있습니다:
from azure.cosmos import CosmosClient, PartitionKey, ThroughputProperties
client = CosmosClient(
url='url',
credential='key',
connection_mode='Gateway'
)
dbClient = client.get_database_client('database_name')
container = dbClient.get_container_client('container_name')
throughput_properties = ThroughputProperties(auto_scale_max_throughput=1000)
container.replace_throughput(throughput_properties)
또한 자동 스케일 처리량으로 데이터베이스나 컨테이너를 만들 수 있습니다
dbClient.create_database_if_not_exists(
id='database_name',
offer_throughput=throughput_properties
)
dbClient.create_container_if_not_exists(
id='container_name',
partition_key=PartitionKey(path='/partition_key'),
offer_throughput=throughput_properties
)
'개발하자' 카테고리의 다른 글
나중을 위해 주피터(IPython) 노트북 세션을 절이거나 저장하는 방법 (0) | 2023.10.03 |
---|---|
사용자 지정 fastapi 쿼리 매개 변수 유효성 검사 (0) | 2023.10.02 |
Visual Studio 코드를 사용하여 스크립트 파일 실행 입력 (0) | 2023.10.01 |
Svelte - on: 블러 이벤트 후에만 입력 화재 시 핸들러 변경 (0) | 2023.10.01 |
python에서 사용자 지정 메시지로 오류를 던지고 종료하는 방법 (0) | 2023.09.30 |