Bewerken

Delen via


Veelgestelde vragen over Azure Cosmos DB voor Apache Gremlin

VAN TOEPASSING OP: Gremlin

Gremlin-query's

De efficiëntie van Gremlin-query's evalueren

De preview-stap executionProfile() kan worden gebruikt om een analyse van het queryuitvoeringsplan te bieden. Deze stap moet worden toegevoegd aan het einde van een Gremlin-query. U kunt bijvoorbeeld de stap toevoegen aan het einde van een g.V('example').out('relationship') query die resulteert in g.V('example').out('relationship').executionProfile().

De uitvoer van het bovenstaande profiel laat zien hoeveel tijd wordt besteed aan het verkrijgen van de hoekpuntobjecten, de randobjecten en de grootte van de werkgegevensset. Dit is gerelateerd aan de standaardkostenmetingen voor Azure Cosmos DB-query's.

Andere veelgestelde vragen

Hoe worden RU/s in rekening gebracht bij het uitvoeren van query's in een grafiekdatabase?

Alle grafiekobjecten, hoekpunten en randen worden weergegeven als JSON-documenten in de back-end. Omdat één Gremlin-query één of veel grafiekobjecten tegelijk kan wijzigen, zijn de kosten die eraan zijn gekoppeld, rechtstreeks gerelateerd aan de objecten, randen die door de query worden verwerkt. Dit is hetzelfde proces dat Azure Cosmos DB gebruikt voor alle andere API's. Zie Aanvraageenheden in Azure Cosmos DB voor meer informatie.

De RU-kosten zijn gebaseerd op de werkgegevensset van de doorkruising en niet op de resultatenset. Als een query bijvoorbeeld een enkel hoekpunt als gevolg heeft, maar meerdere andere objecten onderweg moet doorlopen, zijn de kosten gebaseerd op alle grafiekobjecten die nodig zijn om het ene resultaatpunt te berekenen.

Wat is de maximale schaal die een grafiekdatabase kan hebben in Azure Cosmos DB voor Gremlin?

Azure Cosmos DB maakt gebruik van horizontale partitionering om automatisch te voldoen aan de toename van de opslag- en doorvoervereisten. De maximale doorvoer en opslagcapaciteit van een workload wordt bepaald door het aantal partities dat is gekoppeld aan een bepaalde container. Een API voor Gremlin-container heeft echter een specifieke set richtlijnen om een goede prestatie-ervaring op schaal te garanderen. Zie het artikel partitionering in Azure Cosmos DB voor meer informatie over partitionering en best practices.

Moet ik voor C#/.NET-ontwikkeling het Microsoft.Azure.Graphs-pakket of Gremlin.NET gebruiken?

Azure Cosmos DB voor Gremlin maakt gebruik van de opensource-stuurprogramma's als de belangrijkste connectors voor de service. Daarom is de aanbevolen optie om stuurprogramma's te gebruiken die worden ondersteund door Apache.

Hoe kan ik me beschermen tegen injectieaanvallen met gremlin-stuurprogramma's?

De meeste systeemeigen Apache Tinkerpop Gremlin-stuurprogramma's bieden de mogelijkheid om een woordenlijst met parameters op te geven voor het uitvoeren van query's. Dit is een voorbeeld van hoe u dit doet in Gremlin.Net en in Gremlin-Javascript.

Waarom krijg ik de fout 'Gremlin-querycompilatiefout: Kan geen methode vinden'?

Azure Cosmos DB voor Gremlin implementeert een subset van de functionaliteit die is gedefinieerd in het Gremlin-oppervlak. Zie het gremlin-ondersteuningsartikel voor ondersteunde stappen en meer informatie.

De beste tijdelijke oplossing is het herschrijven van de vereiste Gremlin-stappen met de ondersteunde functionaliteit, omdat alle essentiële Gremlin-stappen worden ondersteund door Azure Cosmos DB.

Waarom krijg ik de fout 'WebSocketException: De server heeft statuscode 200' geretourneerd wanneer de statuscode '101' werd verwacht?

Deze fout wordt waarschijnlijk gegenereerd wanneer het verkeerde eindpunt wordt gebruikt. Het eindpunt dat deze fout genereert, heeft het volgende patroon: https://<account-name>.documents.azure.com:443/

Dit is het eindpunt voor documenten voor uw grafiekdatabase. Het juiste eindpunt dat moet worden gebruikt, is het Gremlin-eindpunt, dat de volgende indeling heeft:

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

Waarom krijg ik de fout RequestRateIsTooLarge?

Deze fout betekent dat de toegewezen aanvraageenheden per seconde niet voldoende zijn om de query te verwerken. Deze fout wordt weergegeven wanneer u een query uitvoert waarmee alle hoekpunten worden verkregen:

// Query example:
g.V()

Met deze query worden alle hoekpunten uit de grafiek opgehaald. De kosten van deze query zijn dus gelijk aan ten minste het aantal hoekpunten in termen van RU's. De RU/s-instelling moet worden aangepast om deze query aan te pakken.

Waarom worden mijn Gremlin-stuurprogrammaverbindingen uiteindelijk verwijderd?

Er wordt een Gremlin-verbinding gemaakt via een WebSocket-verbinding. Hoewel WebSocket-verbindingen geen specifieke time to live hebben, beëindigt Azure Cosmos DB voor Gremlin niet-actieve verbindingen na 30 minuten inactiviteit.

Waarom kan ik geen Fluent API-aanroepen gebruiken in de systeemeigen Gremlin-stuurprogramma's?

Fluent API-aanroepen worden nog niet ondersteund door Azure Cosmos DB voor Gremlin. Fluent API-aanroepen vereisen een interne opmaakfunctie, ook wel bytecode-ondersteuning genoemd, die momenteel niet wordt ondersteund door Azure Cosmos DB voor Gremlin. Om dezelfde reden wordt het meest recente Gremlin-JavaScript-stuurprogramma momenteel ook niet ondersteund.

Volgende stap