Azure Cosmos DB for NoSQL 的常見問題集

適用於:NoSQL

如何開始針對 Azure Cosmos DB for NoSQL 進行開發?

首先,您必須註冊 Azure 訂用帳戶。 註冊 Azure 訂用帳戶之後,您可以將 API for NoSQL 容器新增至您的 Azure 訂用帳戶。

軟體開發套件 (SDK) 適用於 .NET、Python、Node.js、JavaScript、Go 和 Java。 開發人員也可以使用 REST API,從其他平台和語言來與 Azure Cosmos DB 資源互動。

是否有 Azure Cosmos DB for NoSQL 範例可以開始使用?

請參閱 API for NoSQL 的下列快速入門程式碼範例和範本:

Azure Cosmos DB for NoSQL 是否支援無結構描述資料?

是,API for NoSQL 可讓應用程式將任意 JSON 文件儲存為項目,而不需要結構描述定義或提示。 使用 Azure Cosmos DB for NoSQL 查詢語言,即可立即查詢資料。

Azure Cosmos DB for NoSQL 是否支援 ACID (不可部分完成性、一致性、隔離、持久性) 交易?

是,API for NoSQL 支援使用 JavaScript 預存程序和觸發程序中的批次所表示的跨文件交易。 交易以每個容器的單一分割為範圍,且以 ACID 語意執行,也就是「全有或全無」,與其他並行執行的程式碼和使用者要求隔離。 如果發生例外狀況,則會復原整個交易。

如何建立 Azure Cosmos DB for NoSQL 資料庫?

您可以使用下列其中一個工具來建立資料庫:

如何設定 Azure Cosmos DB for NoSQL 資料庫原生使用者和權限?

您可以使用其中一個 Azure Cosmos DB for NoSQL SDK 或 REST API 來建立使用者和權限。 如需詳細資訊,請參閱設定使用者和資源權杖。 您可以在容器層級和其子系 (例如文件、附件) 使用資源權杖來建立權限。 目前不允許在資料庫或帳戶層級建立權限。

是否可以使用現有 Microsoft Entra ID 帳戶向 Azure Cosmos DB for NoSQL 進行驗證?

可以! Azure Cosmos DB 支援 Microsoft Entra 驗證來管理服務和其資源 (控制平面),以及執行資料、作業和查詢 (資料平面)。 控制平面驗證是使用 Azure 的角色型存取控制功能來執行。 您可以使用預先設定的內建角色](../../role-based-access-control/built-in-roles.md),也可以建立自訂角色。 使用 Azure 角色型存取控制,您可以管理帳戶、資料庫、容器和中繼資料。 控制平面包括作業,包括但不限於這些範例。

  • 建立、取代或刪除資料庫 - 建立、取代或刪除容器 - 讀取或取代資料庫輸送量 - 讀取或取代容器輸送量 如需詳細資訊,請參閱 Azure Cosmos DB 控制平面角色型存取控制。 資料平面驗證會使用自訂 API for NoSQL 原生角色型存取控制實作。 透過這個原生實作,您也可以使用預先設定或自訂角色。 使用原生角色型存取控制,您可以執行查詢、管理項目,或執行其他常見作業。 資料平面包括作業,包括但不限於這些範例。
  • 建立、取代、更新或刪除項目 - 修補項目 - 執行查詢 如需詳細資訊,請參閱 Azure Cosmos DB 資料平面角色型存取控制

Azure Cosmos DB for NoSQL 是否支援 SQL 查詢語言?

結構化查詢語言 (SQL) 是通常用來查詢關聯式資料的語言。 API for NoSQL 具有衍生自 SQL 的自訂 NoSQL 查詢語言。 NoSQL 查詢語言包括通常與 SQL Server 相關聯的 SQL 查詢語言子集,以及各種 NoSQL 特定增強功能。 NoSQL 查詢語言提供豐富的階層式和關聯式運算子,以及透過 JavaScript 型使用者定義函數 (UDF) 的擴充性。 JSON 文法允許將 JSON 文件模型化為節點加上標籤的樹狀結構,這是由 Azure Cosmos DB 的自動編製索引技術及 Azure Cosmos DB 的 SQL 查詢方言所使用。 如需使用此查詢語言的相關資訊,請參閱 NoSQL 查詢

Azure Cosmos DB for NoSQL 是否支援 SQL 彙總函數?

API for NoSQL 透過 NoSQL 查詢語言,以透過彙總函數來支援彙總,例如:COUNTMAXAVGSUM

Azure Cosmos DB for NoSQL 如何提供並行?

API for NoSQL 透過 HTTP 實體標記或 ETag,來支援開放式並行控制 (OCC)。 每個 API for NoSQL 資源都有一個 ETag,並且會在每次更新文件時,於伺服器上設定此 ETag。 ETag 標頭和目前的值會包含於所有回應訊息中。 Etag 可以與 If-Match 標頭搭配使用,讓伺服器決定是否應該更新資源。 If-Match 值是要經過檢查的 ETag 值。 如果 ETag 值符合伺服器的 ETag 值,就會更新資源。 如果 ETag 不再是最新狀態,則伺服器會拒絕該作業,並提供「HTTP 412 前置條件失敗」回應碼。 用戶端接著會重新擷取資源,以取得該資源目前的 ETag 值。 此外,ETag 可以與 If-None-Match 標頭搭配使用,以判斷是否需要重新擷取資源。

大部分 API for NoSQL SDK 都包括用來管理開放式並行控制的類別。

如何將文件大量插入至 Azure Cosmos DB for NoSQL?

使用適用於 API for NoSQL 的 .NET SDKJava SDK 中的大量匯入功能,來匯入大型資料集。 此功能會將佈建輸送量最佳化,以匯入大型資料集。

或者,使用 Apache Spark,以使用 Python 或 Scala 大規模匯入資料。

Azure Cosmos DB for NoSQL 是否支援資源連結快取?

是,因為 Azure Cosmos DB for NoSQL 是一項 RESTful 服務,所以資源連結固定不變且可快取。 API for NoSQL 用戶端可以指定 "If-None-Match" 標頭來讀取任何類似資源的文件或容器,然後在伺服器版本變更之後更新其本機複本。

Azure Cosmos DB for NoSQL 的本機執行個體是否可供使用?

是。 Azure Cosmos DB 模擬器提供 Azure Cosmos DB 服務的高逼真度模擬。 其支援跨各種 API 與 Azure Cosmos DB 完全相同的功能。 此功能包括支援建立項目、查詢項目、佈建容器,以及調整容器。 您可以使用模擬器的端點來開發和測試應用程式。 接著,您可以將連接字串從模擬器變更為即時服務,以全域規模將應用程式部署至 Azure。

在入口網站中使用資料總管時,為何會將 Azure Cosmos DB for NoSQL 項目中的長浮點值四捨五入?

此資料總管限制是 JavaScript 的限制。 JavaScript 使用電機電子工程師學會 (IEEE) 754 中指定的雙精確度浮點數格式數字。 此資料類型只能安全地保存 -(253 - 1) 與 253-1 之間的數字 (即 9007199254740991)。