關於 Azure Cosmos DB for Apache Gremlin 的常見問題集

適用於: Gremlin

Gremlin 查詢

如何評估 Gremlin 查詢的效率

executionProfile() 預覽步驟可提供查詢執行計畫的分析。 此步驟必須新增至任何 Gremlin 查詢的結尾。 例如,您可以將此步驟新增至 g.V('example').out('relationship') 查詢結尾,以產生 g.V('example').out('relationship').executionProfile()

以上設定檔的輸出顯示了取得頂點物件、邊緣物件需要花費的時間,以及工作資料集的大小。 這與 Azure Cosmos DB 查詢的標準成本量值相關。

其他常見問題

在圖形資料庫中執行查詢時,每秒的 RU 如何計費?

包括頂點及邊線的所有圖形物件,都會以 JSON 文件形式於後端顯示。 由於一個 Gremlin 查詢一次可以修正一或多個圖表物件,因此與其相關的成本會與這些由查詢處理的物件及邊線有直接關係。 Azure Cosmos DB 使用相同流程處理其他所有的 API。 如需詳細資訊,請參閱 Azure Cosmos DB 中的要求單位

RU 計費是根據周遊的運作資料庫計算,並不是根據結果集計算。 比方說,若查詢的目標是要獲得單一頂點作為結果,但需要同時周遊其他多個物件,則會依計算單一結果頂點所需的所有圖表物件來計算成本。

Azure Cosmos DB for Gremlin 中圖形資料庫所能容納的級別上限為何?

Azure Cosmos DB 使用水平資料分割,自動處理儲存體和輸送量需要增加的問題。 工作負載的輸送量和儲存體容量上限會根據與指定容器建立關聯的資料分割數量而定。 不過,API for Gremlin 容器具備一組特定的指導方針,確保能提供良好的大規模效能體驗。 如需有關分割的詳細資訊及最佳做法,請參閱在 Azure Cosmos DB 中進行資料分割一文。

若是使用 C#/.NET 開發,應該使用 Microsoft.Azure.Graphs 套件或 Gremlin.NET?

Azure Cosmos DB for Gremlin 使用開放原始碼驅動程式作為服務的主要連接器。 因此,建議使用 Apache Tinkerpop 支援的驅動程式

如何防止透過 Gremlin 驅動程式發動的資料隱碼攻擊?

多數原生 Apache Tinkerpop Gremlin 驅動程式均允許提供參數字典以供執行查詢。 這裡提供使用 Gremlin.NetGremlin-Javascript 兩種方法的執行範例。

為什麼我會收到「Gremlin 查詢編譯錯誤:找不到任何方法」錯誤?

Azure Cosmos DB for Gremlin 會實作一個在 Gremlin 介面區定義的功能子集。 如需支援的步驟和詳細資訊,請參閱 Gremlin 支援一文。

最好的解決方法,是以支援的功能重新寫入必要的 Gremlin 步驟,因為 Azure Cosmos DB 支援所有必要的 Gremlin 步驟。

為什麼我會收到「WebSocketException:伺服器在預期傳回狀態碼 ’101’ 的情況下傳回了狀態碼 '200'」錯誤?

系統會在使用了錯誤的端點時擲回此錯誤。 產生此錯誤的端點模式如下:https://<account-name>.documents.azure.com:443/

這是供您圖形資料庫使用的文件端點。 正確的端點是 Gremlin Endpoint,其格式如下:

https://YOUR_DATABASE_ACCOUNT.gremlin.cosmosdb.azure.com:443/

為什麼我會收到 "RequestRateIsTooLarge" 錯誤?

此錯誤表示,已配置的每秒要求單位不足以提供查詢之所用。 您會在執行獲得所有頂點的查詢時看到此錯誤:

// Query example:
g.V()

此查詢會嘗試從圖表中擷取所有頂點。 因此,此查詢的成本至少等於 RU 的頂點數目。 您應該調整每秒 RU 的設定,才能處理此查詢。

為什麼我的 Gremlin 驅動程式連線最後還是失敗?

Gremlin 連線是透過 WebSocket 連線而產生的。 雖然 WebSocket 連線並沒有特定的存留時間,Azure Cosmos DB for Gremlin 仍然會在 30 分鐘的非使用狀態之後終止閒置的連線。

為什麼不能在原生 Gremlin 驅動程式中使用 Fluent API 呼叫?

Azure Cosmos DB for Gremlin 尚未支援 Fluent API 呼叫。 Fluent API 呼叫需要稱為位元組程式碼支援的內部格式化功能,目前 Azure Cosmos DB for Gremlin 不支援此功能。 由於相同的原因,最新的 Gremlin-JavaScript 驅動程式目前也不受支援。

後續步驟