Ważne
Szukasz rozwiązania bazy danych dla scenariuszy o dużej skali z umową SLA gwarantującą poziom dostępności na poziomie 99,999%, natychmiastowym skalowaniem automatycznym i automatycznym przełączaniem awaryjnym między wieloma regionami? Rozważmy usługę Azure Cosmos DB dla noSQL.
Czy chcesz zaimplementować graf przetwarzania analitycznego online (OLAP) lub przeprowadzić migrację istniejącej aplikacji Apache Gremlin? Rozważ użycie programu Graph w usłudze Microsoft Fabric.
Zapytania języka Gremlin
Jak ocenić wydajność zapytań języka Gremlin
Krok wykonaniaProfile() w wersji zapoznawczej może służyć do przeprowadzenia analizy planu wykonywania zapytania. Ten krok należy dodać na końcu dowolnego zapytania Gremlin. Na przykład możesz dodać krok na końcu g.V('example').out('relationship') zapytania, co spowoduje g.V('example').out('relationship').executionProfile().
Dane wyjściowe profilu pokazują, ile czasu poświęca się na uzyskanie obiektów wierzchołków, obiektów krawędzi i rozmiaru roboczego zestawu danych. Te dane wyjściowe są powiązane ze standardowymi pomiarami kosztów zapytań usługi Azure Cosmos DB.
Inne często zadawane pytania
Jak są naliczane opłaty za jednostki RU/s podczas uruchamiania zapytań w grafowej bazie danych?
Wszystkie obiekty grafu, wierzchołki i krawędzie są wyświetlane jako dokumenty JSON w zapleczu. Zapytanie Gremlin może modyfikować jeden lub wiele obiektów grafu jednocześnie, a koszt zależy bezpośrednio od obiektów i krawędzi przetwarzanych przez zapytanie. Ten proces działa tak samo jak w przypadku wszystkich innych interfejsów API usługi Azure Cosmos DB.
Opłata RU zależy od roboczego zestawu danych procesu przetwarzania, a nie zestawu wyników. Rozważmy przykład, w którym zapytanie uzyskuje pojedynczy wierzchołek w wyniku, ale musi przechodzić przez kilka innych obiektów po drodze. W tym przykładzie koszt jest oparty na wszystkich obiektach grafu zaangażowanych w obliczanie wierzchołka wyniku.
Jaka jest maksymalna skala, jaką może mieć grafowa baza danych w usłudze Azure Cosmos DB dla języka Apache Gremlin?
Usługa Azure Cosmos DB używa partycjonowania poziomego do automatycznego skalowania magazynu i przepływności zgodnie z potrzebami. Liczba partycji w kontenerze określa maksymalną przepływność i pojemność magazynu. Aby uzyskać optymalną wydajność na dużą skalę, postępuj zgodnie z określonymi wytycznymi dotyczącymi interfejsu API dla kontenerów języka Gremlin. Aby dowiedzieć się więcej na temat partycjonowania i najlepszych rozwiązań, zobacz artykuł [partycjonowanie w usłudze Azure Cosmos DB.
Czy w przypadku programowania w języku C#/.NET należy użyć pakietu Microsoft.Azure.Graphs lub Gremlin.NET?
Usługa Azure Cosmos DB dla języka Apache Gremlin używa sterowników typu open source jako głównych łączników dla usługi. Dlatego zalecaną opcją jest użycie sterowników obsługiwanych przez platformę Apache.
Jak mogę chronić przed atakami polegającymi na wstrzyknięciu przy użyciu sterowników języka Gremlin?
Większość natywnych sterowników języka Apache Gremlin umożliwia udostępnienie słownika parametrów na potrzeby wykonywania zapytań. Ta funkcja jest obsługiwana zarówno w bibliotekach , jak Gremlin.Net i gremlin (Node.js).
Dlaczego otrzymuję błąd "Błąd kompilacji zapytań Gremlin: Nie można odnaleźć żadnej metody"?
Usługa Azure Cosmos DB dla języka Apache Gremlin obsługuje podzbiór obszaru powierzchni Języka Gremlin. Aby uzyskać szczegółowe informacje na temat obsługiwanych kroków, zobacz artykuł pomocy technicznej języka Gremlin .
Aby rozwiązać ten błąd, napisz ponownie zapytania Języka Gremlin, wykonując obsługiwane kroki, ponieważ usługa Azure Cosmos DB udostępnia wszystkie podstawowe funkcje języka Gremlin.
Dlaczego otrzymuję błąd "WebSocketException: Serwer zwrócił kod stanu "200", gdy oczekiwano kodu stanu "101"?
Ten błąd jest prawdopodobnie zgłaszany, gdy jest używany niewłaściwy punkt końcowy.
Punkt końcowy, który generuje ten błąd, ma następujący wzorzec: https://<account-name>.documents.azure.com:443/. Ten punkt końcowy jest w rzeczywistości punktem końcowym dokumentów dla grafowej bazy danych.
Prawidłowym punktem końcowym do użycia jest punkt końcowy Gremlin, który ma następujący format: https://<account-name>.gremlin.cosmosdb.azure.com:443/.
Dlaczego występuje błąd "RequestRateIsTooLarge"?
Ten błąd oznacza, że przydzielone jednostki żądań na sekundę nie są wystarczające do obsługi zapytania. Ten błąd jest wyświetlany podczas uruchamiania zapytania, które uzyskuje wszystkie wierzchołki:
g.V()
To zapytanie próbuje pobrać wszystkie wierzchołki z grafu. Dlatego koszt tego zapytania jest równy co najmniej liczbie wierzchołków w odniesieniu do jednostek żądania (RU). Ustawienie jednostek żądania na sekundę (RU/s) powinno zostać dostosowane w celu rozwiązania tego zapytania.
Dlaczego moje połączenia sterowników Gremlin zostaną ostatecznie porzucone?
Połączenie języka Gremlin odbywa się za pośrednictwem połączenia protokołu WebSocket. Mimo że połączenia protokołu WebSocket nie mają określonego czasu wygaśnięcia, usługa Azure Cosmos DB dla platformy Apache Gremlin zakończy bezczynne połączenia po 30 minutach braku aktywności.
Dlaczego nie mogę używać płynnych wywołań interfejsu API w natywnych sterownikach języka Gremlin?
Usługa Azure Cosmos DB dla języka Apache Gremlin nie obsługuje jeszcze płynnych wywołań interfejsu API. Wywołania interfejsu Fluent API opierają się na wewnętrznej funkcji formatowania, zwanej obsługą kodu bajtowego, której Azure Cosmos DB dla Apache Gremlin obecnie nie obsługuje. Z tego powodu najnowszy sterownik Gremlin-JavaScript również nie jest obsługiwany.
Jak mogę znaleźć opłatę za jednostkę żądania dla zapytania?
Opłaty za jednostkę żądania (RU) dla zapytania usługi Azure Cosmos DB dla języka Apache Gremlin można znaleźć przy użyciu jednej z kilku metod:
Korzystanie z witryny Azure Portal
Zaloguj się do witryny Azure Portal.
Utwórz nowe konto usługi Azure Cosmos DB dla języka Apache Gremlin i zaimkuj je danymi lub wybierz istniejące konto, które zawiera już dane.
Przejdź do okienka Eksplorator danych , a następnie wybierz kontener, nad którym chcesz pracować.
Wprowadź prawidłowe zapytanie, a następnie wybierz pozycję Wykonaj zapytanie Gremlin.
Wybierz Statystyki zapytania, aby wyświetlić rzeczywisty koszt żądania wykonanego.
Korzystanie z zestawu .NET Software Development Kit (SDK)
Uruchom zapytanie, aby uzyskać wynik jako obiekt typu
ResultSet<>:ResultSet<dynamic> results = client.SubmitAsync<dynamic>("g.V().count()").Result;Pobierz opłatę za żądanie z wyników przy użyciu tablicy
StatusAttributesi indeksatorax-ms-request-charge:double requestCharge = (double)results.StatusAttributes["x-ms-request-charge"];
Korzystanie z zestawu Java SDK
Uruchom zapytanie, aby uzyskać wynik jako obiekt typu
ResultSet:ResultSet results = client.submit("g.V().count()");Pobierz opłatę za żądanie z wyników przy użyciu
statusAttributesmetody ix-ms-request-chargeklucza:Map<String, Object> attributes = results.statusAttributes(); Double requestCharge = (Double) attributes.get("x-ms-request-charge");
Opłata za żądanie jest dostępna pod kluczem x-ms-request-charge w nagłówkach odpowiedzi zwracanych przez interfejs API dla języka Gremlin.