Azure Cosmos DB for NoSQL 的運作方式
現在我們已了解 Azure Cosmos DB 的基本概念,讓我們來看看需要哪些資源和資訊才能開始使用帳戶。 這項資訊應該可協助您決定 Azure Cosmos DB for NoSQL 是否適用於您的資料集。 此外,也應該可協助您決定需要多少額外的設定 (如果有的話)。
Azure Cosmos DB for NoSQL 的元件有哪些?
若要開始使用 Azure Cosmos DB,請先在 Azure 中建立各種資源,例如帳戶、資料庫、容器和項目。
帳戶
帳戶是 SaaS 應用程式高可用性和租用戶隔離的基本單位。 在帳戶層級,您可以在 Azure Cosmos DB for NoSQL 中設定資料的區域。 帳戶也包含用於 API 要求的全球唯一 DNS 名稱。 您也可以在帳戶層級設定要求的預設一致性層級。 您可以使用 Azure 入口網站、Azure Resource Manager 範本、Azure CLI 或 Azure PowerShell 來管理或建立帳戶。
資料庫
每個帳戶都可以包含一個或多個資料庫。 資料庫是 Azure Cosmos DB for NoSQL 中容器管理的邏輯單位。
容器
容器是 Azure Cosmos DB for NoSQL 中規模調整的基本單位。 使用 Azure Cosmos DB,您可以在容器層級佈建輸送量。 您也可以選擇性地在容器層級設定編制索引原則或預設存留時間值。 Azure Cosmos DB for NoSQL 會自動並以透明方式分割容器中的資料。
項目
適用於 Azure Cosmos DB 的 NoSQL API 會使用 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 會自動管理支援您的資料工作負載所需的實體資源。
針對新的工作負載,選取容器的資料分割區索引鍵路徑對於允許應用程式調整至關重要,而且是最重要的設計決策之一。 請參閱選擇分割區索引鍵文件,以取得更深入的技術說明和最佳做法。