A KÖVETKEZŐKRE VONATKOZIK: Gremlin
Gremlin-lekérdezések
A Gremlin-lekérdezések hatékonyságának értékelése
A executionProfile() előzetes verziójú lépéssel elemezheti a lekérdezés végrehajtási tervét. Ezt a lépést hozzá kell adni a Gremlin-lekérdezések végéhez. Hozzáadhatja például a lépést egy lekérdezés végéhez g.V('example').out('relationship')
, amely a következőt g.V('example').out('relationship').executionProfile()
eredményezi: .
A fenti profil kimenete azt mutatja, hogy mennyi időt töltenek a csúcsobjektumok, a peremobjektumok és a munkaadatkészlet méretének lekérésével. Ez az Azure Cosmos DB-lekérdezések standard költségmérésével kapcsolatos.
Egyéb gyakori kérdések
Hogyan számítják fel a ru/s díjakat a lekérdezések gráfadatbázison való futtatásakor?
Minden gráfobjektum, csúcs és él JSON-dokumentumként jelenik meg a háttérrendszerben. Mivel egy Gremlin-lekérdezés egyszerre egy vagy több gráfobjektumot is módosíthat, a hozzá tartozó költségek közvetlenül kapcsolódnak a lekérdezés által feldolgozott objektumokhoz, élekhez. Ez ugyanaz a folyamat, amelyet az Azure Cosmos DB minden más API-hoz használ. További információ: Az Azure Cosmos DB kérelemegységei.
A RU-díj a bejárás munkaadatkészletén alapul, nem pedig az eredményhalmazon. Ha például egy lekérdezés egyetlen csúcspontot szeretne lekérteni, de útközben több objektumot is át kell haladnia, akkor a költség az összes olyan gráfobjektumon alapul, amely az egy eredmény csúcsának kiszámításához szükséges.
Mi a gráfadatbázisok maximális mérete a Gremlinhez készült Azure Cosmos DB-ben?
Az Azure Cosmos DB horizontális particionálást használ a tárolási és átviteli sebesség növekedésére vonatkozó követelmények automatikus kezelésére. A számítási feladatok maximális átviteli sebességét és tárolási kapacitását az adott tárolóhoz társított partíciók száma határozza meg. A Gremlin-tárolókhoz készült API-k azonban meghatározott irányelvekkel rendelkeznek, amelyek biztosítják a megfelelő teljesítményélményt nagy méretekben. A particionálásról és az ajánlott eljárásokról további információt az Azure Cosmos DB-ben található particionálási cikkben talál.
C#/.NET-fejlesztéshez használjam a Microsoft.Azure.Graphs csomagot vagy Gremlin.NET?
Az Azure Cosmos DB for Gremlin a nyílt forráskódú illesztőprogramokat használja a szolgáltatás fő összekötőiként. Ezért ajánlott az Apache által támogatott illesztőprogramok használata.
Hogyan védhetem meg az injektálási támadásokat Gremlin-illesztőprogramokkal?
A legtöbb natív Apache Tinkerpop Gremlin-illesztő lehetővé teszi a lekérdezések végrehajtásához szükséges paraméterek szótárának megadását. Ez egy példa a Gremlin.Net és a Gremlin-Javascript használatára.
Miért jelenik meg a "Gremlin-lekérdezés fordítási hibája: Nem található metódus" hiba?
Az Azure Cosmos DB for Gremlin a Gremlin felületén definiált funkciók egy részét implementálja. A támogatott lépésekről és további információkról a Gremlin támogatási cikkében olvashat.
A legjobb kerülő megoldás a szükséges Gremlin-lépések átírása a támogatott funkciókkal, mivel az Azure Cosmos DB minden alapvető Gremlin-lépést támogat.
Miért jelenik meg a "WebSocketException: A kiszolgáló "200" állapotkódot adott vissza, amikor a "101" állapotkód várt?
Ez a hiba valószínűleg rossz végpont használatakor jelenik meg. A hibát létrehozó végpont a következő mintával rendelkezik: https://<account-name>.documents.azure.com:443/
Ez a gráfadatbázis dokumentumvégpontja. A megfelelő használandó végpont a Gremlin-végpont, amelynek formátuma a következő:
https://YOUR_DATABASE_ACCOUNT.gremlin.cosmosdb.azure.com:443/
Miért jelenik meg a "RequestRateIsTooLarge" hiba?
Ez a hiba azt jelenti, hogy a másodpercenként lefoglalt kérelemegységek nem elegendőek a lekérdezés kiszolgálásához. Ez a hiba akkor jelenik meg, ha olyan lekérdezést futtat, amely az összes csúcsot lekérte:
// Query example:
g.V()
Ez a lekérdezés megkísérli lekérni az összes csúcspontot a gráfból. A lekérdezés költsége tehát egyenlő lesz legalább a kérelemegységek csúcsainak számával. A ru/s beállítást módosítani kell a lekérdezés kezeléséhez.
Miért szakadnak meg végül a Gremlin illesztőprogram-kapcsolataim?
A Gremlin-kapcsolat WebSocket-kapcsolaton keresztül jön létre. Bár a WebSocket-kapcsolatoknak nincs meghatározott élettartamuk, az Azure Cosmos DB for Gremlin 30 perc inaktivitás után leállítja az inaktív kapcsolatokat.
Miért nem tudok folyékony API-hívásokat használni a natív Gremlin-illesztőprogramokban?
A Fluent API-hívásokat az Azure Cosmos DB for Gremlin még nem támogatja. A Fluent API-hívásokhoz olyan belső formázási funkcióra van szükség, amelyet a Gremlinhez készült Azure Cosmos DB jelenleg nem támogat. Ugyanezen okból a legújabb Gremlin-JavaScript illesztőprogram jelenleg nem támogatott.
Kapcsolódó tartalom
- Az Azure Cosmos DB for Gremlin wire protocol támogatása
- Azure Cosmos DB-gráfadatbázis létrehozása, lekérdezése és bejárása a Gremlin-konzol használatával