Azure Cosmos DB for NoSQL의 작동 방식

완료됨

Azure Cosmos DB 기본 사항을 알게 되었으므로 이제 계정 작업을 시작하는 데 필요한 리소스와 정보를 알아보겠습니다. 이 정보는 Azure Cosmos DB for NoSQL이 해당 데이터 세트에 작동하는 지 여부를 결정하는 데 유용합니다. 또한 필요한 추가 구성의 양을 결정하는 데 도움이 됩니다.

Azure Cosmos DB for NoSQL의 구성 요소는 무엇인가요?

Azure Cosmos DB를 사용하기 시작하려면 먼저 Azure에서 계정, 데이터베이스, 컨테이너, 항목 같은 다양한 리소스를 만듭니다.

Azure Cosmos DB for NoSQL 계정이 데이터베이스의 부모 리소스이고 데이터베이스 자체가 컨테이너의 부모 리소스가 되는 방식을 보여 주는 다이어그램.

계정

계정은 배포 및 고가용성의 기본 단위입니다. 계정 수준에서 Azure Cosmos DB for NoSQL의 데이터에 대해 지역을 구성할 수 있습니다. 계정에는 API 요청에 사용되는 전역적으로 고유한 DNS 이름도 포함됩니다. 계정 수준에서 요청의 기본 일관성 수준을 설정할 수도 있습니다. Azure Portal, Azure Resource Manager 템플릿, Azure CLI 또는 Azure PowerShell을 사용하여 계정을 관리하거나 만들 수 있습니다.

데이터베이스

각 계정에는 데이터베이스가 하나 이상 포함될 수 있습니다. 데이터베이스는 Azure Cosmos DB for NoSQL에서 컨테이너 관리를 위한 논리적 단위입니다.

컨테이너

컨테이너는 Azure Cosmos DB for NoSQL의 기본적인 스케일링 성능 단위입니다. Azure Cosmos DB를 사용하여 컨테이너 수준에서 처리량을 프로비저닝합니다. 또한 필요에 따라 컨테이너 수준에서 인덱싱 정책이나 기본 TTL(Time to Live) 값을 구성할 수 있습니다. Azure Cosmos DB for NoSQL은 자동으로 컨테이너의 데이터를 투명하게 분할합니다.

항목

NoSQL API for Azure Cosmos DB는 JSON 형식으로 개별 문서를 컨테이너 내의 항목으로 저장합니다. Azure Cosmos DB for NoSQL은 기본적으로 JSON 파일을 지원하며 JSON 문서에 대한 쓰기 작업이 원자성이므로 빠르고 예측 가능한 성능을 제공할 수 있습니다.

컨테이너에 저장된 다양한 항목을 보여주는 다이어그램

분할 및 파티션 키

파티션 키 경로를 지정하려면 모든 Azure Cosmos DB for NoSQL 컨테이너가 필요합니다. 내부적으로 Azure Cosmos DB for NoSQL은 이 경로를 통해 파티션 키 값을 사용하여 데이터를 논리적으로 분할합니다. 예를 들어, 다음과 같은 JSON 문서를 생각해 보겠습니다.

{
  "id": "35b5bf7d-5f0e-4209-b7cb-8c5c70c3bb59",
  "deviceDisplayName": "shared-printer",
  "acquiredYear": 2019,
  "department": {
    "name": "information-technology",
    "metadata": {
      "location": "floor-5-unit-27"
    }
  },
  "queuedDocuments": [
    {
      "sender": "user-293749329",
      "sentTime": "2019-07-26T05:12:37",
      "pages": 5,
      "spoolRef": "3f4b759c-3230-4269-a88e-de7620ad91c0"
    },
    {
      "device": {
        "type": "mobile"
      },
      "sentTime": "2019-11-12T13:08:42",
      "spoolRefs": [
        "6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
        "79e78fe2-93aa-4688-89db-a7278b034aa6"
      ]
    }
  ]
}

컨테이너가 /department/name의 파티션 키 경로를 지정하는 경우 이 문서의 파티션 키 information-technology입니다. 내부적으로 Azure Cosmos DB for NoSQL은 데이터 워크로드를 지원하는 데 필요한 물리적 리소스를 자동으로 관리합니다.

컨테이너의 파티션 키 경로를 선택하는 것은 새 워크로드와 관련한 가장 중요한 설계 결정 중 하나일 수 있습니다. 더 심층적인 기술 설명 및 모범 사례는 파티션 키 선택 설명서를 검토하세요.