Nejčastější dotazy ke službě Azure Cosmos DB pro Apache Gremlin

PLATÍ PRO: Gremlin

Dotazy Gremlin

Vyhodnocení efektivity dotazů Gremlin

Krok executionProfile() Preview lze použít k poskytnutí analýzy plánu provádění dotazu. Tento krok je potřeba přidat na konec libovolného dotazu Gremlin. Můžete například přidat krok na konec g.V('example').out('relationship') dotazu, který má za g.V('example').out('relationship').executionProfile()následek .

Výstup výše uvedeného profilu ukazuje, kolik času je stráveno získáním objektů vrcholů, hraničních objektů a velikosti pracovní datové sady. To souvisí s měřením standardních nákladů pro dotazy Azure Cosmos DB.

Další nejčastější dotazy

Jak se účtují poplatky za RU/s při spouštění dotazů v grafové databázi?

Všechny objekty grafu, vrcholy a hrany se v back-endu zobrazují jako dokumenty JSON. Vzhledem k tomu, že jeden dotaz Gremlin může současně upravit jeden nebo více objektů grafu, náklady spojené s objekty přímo souvisejí s objekty, hrany, které dotaz zpracovává. Jedná se o stejný proces, který azure Cosmos DB používá pro všechna ostatní rozhraní API. Další informace najdete v tématu o jednotkách žádostí v Azure Cosmos DB.

Poplatek za RU vychází z pracovní datové sady procházení, nikoli sady výsledků. Pokud se například dotaz zaměřuje na získání jednoho vrcholu jako výsledku, ale potřebuje procházet více než jeden jiný objekt na cestě, náklady jsou založeny na všech objektech grafu, které zabere k výpočtu jednoho vrcholu výsledku.

Jaké je maximální měřítko, které může mít grafová databáze ve službě Azure Cosmos DB pro Gremlin?

Azure Cosmos DB využívá horizontální dělení k automatickému řešení nárůstu požadavků na úložiště a propustnost. Maximální propustnost a kapacita úložiště úlohy se určuje počtem oddílů přidružených k danému kontejneru. Rozhraní API pro kontejner Gremlin má ale specifickou sadu pokynů pro zajištění správného výkonu ve velkém měřítku. Další informace o dělení a osvědčených postupech najdete v článku o dělení ve službě Azure Cosmos DB .

Pro vývoj v jazyce C#/.NET mám použít balíček Microsoft.Azure.Graphs nebo Gremlin.NET?

Azure Cosmos DB pro Gremlin používá jako hlavní konektory pro službu opensourcové ovladače. Proto doporučujeme používat ovladače podporované apachem.

Jak můžu chránit před útoky prostřednictvím injektáže pomocí ovladačů Gremlin?

Většina nativních ovladačů Gremlin Apache Tinkerpop umožňuje poskytnout slovník parametrů pro spouštění dotazů. Toto je příklad, jak to udělat v Gremlin.Net a v Jazyce Gremlin-Javascript.

Proč se mi zobrazuje chyba Kompilace dotazu Gremlin: Nelze najít žádnou metodu?

Azure Cosmos DB pro Gremlin implementuje podmnožinu funkcí definovaných v oblasti plochy Gremlin. Podporované kroky a další informace najdete v článku podpory Gremlin.

Nejlepším alternativním řešením je přepsat požadované kroky Gremlin podporovanými funkcemi, protože azure Cosmos DB podporuje všechny základní kroky Gremlin.

Proč se mi zobrazuje chyba WebSocketException: Server vrátil stavový kód 200, když byl očekávaný stavový kód 101?

Tato chyba se pravděpodobně vyvolá při použití nesprávného koncového bodu. Koncový bod, který vygeneruje tuto chybu, má následující vzor: https://<account-name>.documents.azure.com:443/

Toto je koncový bod dokumentů pro vaši grafové databázi. Správným koncovým bodem, který se má použít, je koncový bod Gremlin, který má následující formát:

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

Proč se mi zobrazuje chyba RequestRateIsTooLarge?

Tato chyba znamená, že přidělené jednotky žádostí za sekundu nestačí k poskytování dotazu. Tato chyba se zobrazí při spuštění dotazu, který získá všechny vrcholy:

// Query example:
g.V()

Tento dotaz se pokusí načíst všechny vrcholy z grafu. Náklady na tento dotaz se tedy budou rovnat alespoň počtu vrcholů z hlediska RU. Nastavení RU/s by se mělo upravit tak, aby odpovídalo tomuto dotazu.

Proč se připojení ovladačů Gremlin nakonec přeruší?

Připojení Gremlin se provádí prostřednictvím připojení WebSocket. I když připojení WebSocket nemají konkrétní čas k provozu, Azure Cosmos DB pro Gremlin ukončí nečinná připojení po 30 minutách nečinnosti.

Proč nemůžu v nativních ovladačích Gremlin používat volání rozhraní API fluent?

Azure Cosmos DB pro Gremlin zatím nepodporuje volání rozhraní FLUENT API. Volání rozhraní FLUENT API vyžadují interní funkci formátování, která se označuje jako podpora bajtového kódu, která v současné době není podporována službou Azure Cosmos DB pro Gremlin. Vzhledem ke stejnému důvodu se v současné době nepodporuje také nejnovější ovladač Gremlin-JavaScript.

Další krok