Szybki Start: Tworzenie, wykonywanie zapytań i przechodzenie Azure Cosmos DB bazy danych grafów przy użyciu konsoli GremlinQuickstart: Create, query, and traverse an Azure Cosmos DB graph database using the Gremlin console

Azure Cosmos DB to rozproszona globalnie wielomodelowa usługa bazy danych firmy Microsoft.Azure Cosmos DB is Microsoft’s globally distributed multi-model database service. Dzięki wykorzystaniu dystrybucji globalnej i możliwości skalowania poziomego opartego na usłudze Azure Cosmos DB, można szybko tworzyć i za pomocą zapytań badać bazy danych dokumentów, par klucz/wartość i grafów.You can quickly create and query document, key/value, and graph databases, all of which benefit from the global distribution and horizontal scale capabilities at the core of Azure Cosmos DB.

Ten przewodnik Szybki Start przedstawia sposób Azure Cosmos DB tworzenia konta interfejsu API Gremlin , bazy danych i grafu (kontenera) przy użyciu Azure Portal, a następnie używania konsoli Gremlin z platformy Apache TinkerPop do pracy z danymi interfejsu API programu Gremlin.This quickstart demonstrates how to create an Azure Cosmos DB Gremlin API account, database, and graph (container) using the Azure portal and then use the Gremlin Console from Apache TinkerPop to work with Gremlin API data. W tym samouczku utworzysz wierzchołki i krawędzie oraz wykonasz względem nich zapytania, zaktualizujesz właściwość wierzchołka, przejdziesz graf i usuniesz wierzchołek.In this tutorial, you create and query vertices and edges, updating a vertex property, query vertices, traverse the graph, and drop a vertex.

Usługa Azure Cosmos DB w konsoli Apache Gremlin

Konsola Gremlin jest oparta na języku Groovy/Java i działa w systemach Linux, Mac i Windows.The Gremlin console is Groovy/Java based and runs on Linux, Mac, and Windows. Możesz ją pobrać z witryny Apache TinkerPop.You can download it from the Apache TinkerPop site.

Wymagania wstępnePrerequisites

Musisz dysponować subskrypcją platformy Azure, aby utworzyć konto usługi Azure Cosmos DB na potrzeby tego przewodnika Szybki start.You need to have an Azure subscription to create an Azure Cosmos DB account for this quickstart.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.If you don't have an Azure subscription, create a free account before you begin.

Należy również zainstalować konsolę Gremlin.You also need to install the Gremlin Console. Zalecana wersja to v 3.4.3 lub wcześniejsza.The recommended version is v3.4.3 or earlier. (Aby użyć konsoli Gremlin w systemie Windows, należy zainstalować środowisko uruchomieniowe języka Java).(To use Gremlin Console on Windows, you need to install Java Runtime).

Tworzenie konta bazy danychCreate a database account

  1. W nowym oknie przeglądarki zaloguj się do witryny Azure Portal.In a new browser window, sign in to the Azure portal.

  2. Kliknij kolejno pozycje Utwórz zasób > Bazy danych > Azure Cosmos DB.Click Create a resource > Databases > Azure Cosmos DB.

    Okienko „Bazy danych” w witrynie Azure Portal

  3. Na stronie Tworzenie konta usługi Azure Cosmos DB wprowadź ustawienia nowego konta usługi Azure Cosmos DB.In the Create Azure Cosmos DB Account page, enter the settings for the new Azure Cosmos DB account.

    UstawienieSetting WartośćValue OpisDescription
    SubscriptionSubscription Twoja subskrypcjaYour subscription Wybierz subskrypcję platformy Azure, której chcesz użyć dla tego konta usługi Azure Cosmos DB.Select the Azure subscription that you want to use for this Azure Cosmos DB account.
    Grupa zasobówResource Group Tworzenie nowego elementuCreate new

    Następnie wprowadź taką samą unikatową nazwę, która została podana jako identyfikatorThen enter the same unique name as provided in ID
    Wybierz pozycjęUtwórz nowy.Select Create new. Następnie wprowadź nazwę nowej grupy zasobów dla swojego konta.Then enter a new resource-group name for your account. Dla uproszczenia użyj takiej samej nazwy jak identyfikator.For simplicity, use the same name as your ID.
    Nazwa kontaAccount Name Podaj unikatową nazwęEnter a unique name Wprowadź unikatową nazwę do identyfikacji konta usługi Azure Cosmos DB.Enter a unique name to identify your Azure Cosmos DB account. Ponieważ adres documents.azure.com jest dołączany do podanego identyfikatora w celu utworzenia identyfikatora URI, użyj unikatowego identyfikatora.Because documents.azure.com is appended to the ID that you provide to create your URI, use a unique ID.

    Identyfikator może zawierać tylko małe litery, cyfry i znaki łącznika (-).The ID can use only lowercase letters, numbers, and the hyphen (-) character. Musi mieć długość od 3 do 31 znaków.It must be between 3 and 31 characters in length.
    interfejs APIAPI Gremlin (graf)Gremlin (graph) Interfejs API określa typ konta do utworzenia.The API determines the type of account to create. Usługa Azure Cosmos DB oferuje pięć interfejsów API: Core(SQL) dla baz danych dokumentów, Gremlin dla baz danych wykresów, MongoDB dla baz danych dokumentów, Azure Table i Cassandra.Azure Cosmos DB provides five APIs: Core(SQL) for document databases, Gremlin for graph databases, MongoDB for document databases, Azure Table, and Cassandra. Obecnie dla każdego interfejsu API należy utworzyć oddzielne konto.Currently, you must create a separate account for each API.

    Wybierz pozycję Gremlin (graf) , ponieważ w podręczniku Szybki start tworzysz tabelę, która współdziała z interfejsem API języka Gremlin.Select Gremlin (graph) because in this quickstart you are creating a table that works with the Gremlin API.

    Dowiedz się więcej o interfejsie API programu Graph.Learn more about the Graph API.
    LocationLocation Wybierz region najbliżej Twoich użytkownikówSelect the region closest to your users Wybierz lokalizację geograficzną, w której będzie hostowane konto usługi Azure Cosmos DB.Select a geographic location to host your Azure Cosmos DB account. Użyj lokalizacji znajdującej się najbliżej Twoich użytkowników, aby zapewnić im najszybszy dostęp do danych.Use the location that's closest to your users to give them the fastest access to the data.

    Wybierz pozycję Przeglądanie+tworzenie.Select Review+Create. Możesz pominąć sekcje Sieć i Tagi.You can skip the Network and Tags section.

    Sekcja nowe konto dla Azure Cosmos DB

  4. Tworzenie konta potrwa kilka minut.The account creation takes a few minutes. Poczekaj, aż w portalu zostanie wyświetlona strona Gratulacje! Konto usługi Azure Cosmos DB zostało utworzone.Wait for the portal to display the Congratulations! Your Azure Cosmos DB account was created page.

    Okienko Powiadomienia w witrynie Azure Portal

Dodawanie grafuAdd a graph

Teraz możesz użyć narzędzia Eksplorator danych w witrynie Azure Portal, aby utworzyć bazę danych grafów.You can now use the Data Explorer tool in the Azure portal to create a graph database.

  1. Wybierz pozycję Eksplorator danych > Nowy Graf.Select Data Explorer > New Graph.

    Obszar Dodaj graf jest wyświetlany po prawej stronie i konieczne może być przewinięcie w prawo w celu wyświetlenia go.The Add Graph area is displayed on the far right, you may need to scroll right to see it.

    Eksplorator danych witryny Azure Portal, strona Dodaj graf

  2. Na stronie Dodaj graf wprowadź ustawienia dla nowego grafu.In the Add graph page, enter the settings for the new graph.

    UstawienieSetting Sugerowana wartośćSuggested value OpisDescription
    Identyfikator bazy danychDatabase ID sample-databasesample-database Wprowadź sample-database jako nazwę nowej bazy danych.Enter sample-database as the name for the new database. Nazwy baz danych muszą zawierać od 1 do 255 znaków i nie mogą zawierać znaków / \ # ? ani mieć spacji na końcu.Database names must be between 1 and 255 characters, and cannot contain / \ # ? or a trailing space.
    PrzepływnośćThroughput 400 jednostek żądania400 RUs Zmień przepływność na 400 jednostek żądania na sekundę (RU/s).Change the throughput to 400 request units per second (RU/s). Jeśli chcesz zmniejszyć opóźnienie, możesz później przeskalować przepływność w górę.If you want to reduce latency, you can scale up the throughput later.
    Identyfikator grafuGraph ID sample-graphsample-graph Wprowadź sample-graph jako nazwę nowej kolekcji.Enter sample-graph as the name for your new collection. W przypadku nazw grafów obowiązują takie same wymagania dotyczące znaków jak dla identyfikatorów baz danych.Graph names have the same character requirements as database IDs.
    Klucz partycjiPartition Key /pk/pk Wszystkie konta Cosmos DB muszą mieć klucz partycji w poziomie.All Cosmos DB accounts need a partition key to horizontally scale. Dowiedz się, jak wybrać odpowiedni klucz partycji w artykule Partycjonowanie danych grafu.Learn how to select an appropriate partition key in the Graph Data Partitioning article.
  3. Po wypełnieniu formularza wybierz przycisk OK.Once the form is filled out, select OK.

Łączenie z usługą aplikacjiConnect to your app service

  1. Przed uruchomieniem konsoli Gremlin utwórz lub zmodyfikuj plik konfiguracji remote-secure.yaml w katalogu apache-tinkerpop-gremlin-console-3.2.5/conf.Before starting the Gremlin Console, create or modify the remote-secure.yaml configuration file in the apache-tinkerpop-gremlin-console-3.2.5/conf directory.

  2. Wypełnij ustawienia konfiguracji host, port, username, password, connectionPool i serializer zgodnie z poniższą tabelą:Fill in your host, port, username, password, connectionPool, and serializer configurations as defined in the following table:

    UstawienieSetting Sugerowana wartośćSuggested value OpisDescription
    hostyhosts [nazwa konta. Gremlin. Cosmos.Azure.com][account-name.gremlin.cosmos.azure.com] Zobacz poniższy zrzut ekranu.See the following screenshot. Jest to wartość identyfikatora URI Gremlin na stronie Przegląd Azure Portal w nawiasach kwadratowych z końcowym: 443/usunięty.This is the Gremlin URI value on the Overview page of the Azure portal, in square brackets, with the trailing :443/ removed. Uwaga: Pamiętaj, aby użyć wartości Gremlin, a nie identyfikatora URI kończącego się na [account-name. Documents.Azure.com], co prawdopodobnie spowoduje, że "host nie odpowiedział w odpowiednim czasie" podczas próby wykonania zapytań Gremlin w późniejszym czasie.Note: Be sure to use the Gremlin value, and not the URI that ends with [account-name.documents.azure.com] which would likely result in a "Host did not respond in a timely fashion" exception when attempting to execute Gremlin queries later.
    portport 443443 Ustaw wartość 443.Set to 443.
    nazwa użytkownikausername Twoja nazwa użytkownikaYour username Zasób w postaci /dbs/<db>/colls/<coll>, gdzie <db> jest nazwą bazy danych, a <coll> oznacza nazwę kolekcji.The resource of the form /dbs/<db>/colls/<coll> where <db> is your database name and <coll> is your collection name.
    hasłopassword Twój klucz podstawowyYour primary key Zobacz drugi zrzut ekranu poniżej.See second screenshot below. To jest klucz podstawowy, który można pobrać ze strony Klucze w witrynie Azure Portal, z pola Klucz podstawowy.This is your primary key, which you can retrieve from the Keys page of the Azure portal, in the Primary Key box. Aby skopiować wartość, użyj przycisku kopiowania po lewej stronie pola.Use the copy button on the left side of the box to copy the value.
    connectionPoolconnectionPool {enableSsl: true}{enableSsl: true} Ustawienie puli połączeń protokołu SSL.Your connection pool setting for SSL.
    serializerserializer { className: org.apache.tinkerpop.gremlin.{ className: org.apache.tinkerpop.gremlin.
    Driver. SQL. GraphSONMessageSerializerV2d0,driver.ser.GraphSONMessageSerializerV2d0,
    config: { serializeResultToString: true }}config: { serializeResultToString: true }}
    Ustaw tę wartość i usuń wszystkie podziały wiersza \n podczas wklejania w wartości.Set to this value and delete any \n line breaks when pasting in the value.

    Jako wartość hostów skopiuj wartość Identyfikator URI Gremlin ze strony Przegląd: Wyświetl i skopiuj wartość identyfikatora URI Gremlin ze strony Przegląd w witrynie Azure PortalFor the hosts value, copy the Gremlin URI value from the Overview page: View and copy the Gremlin URI value on the Overview page in the Azure portal

    Jako wartość hasła skopiuj Klucz podstawowy ze strony Klucze: Wyświetl i skopiuj klucz podstawowy w witrynie Azure Portal, strona KluczeFor the password value, copy the Primary key from the Keys page: View and copy your primary key in the Azure portal, Keys page

Zdalny plik secure.yaml powinien wyglądać następująco:Your remote-secure.yaml file should look like this:

hosts: [your_database_server.gremlin.cosmos.azure.com] 
port: 443
username: /dbs/your_database_account/colls/your_collection
password: your_primary_key
connectionPool: {
  enableSsl: true
}
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV2d0, config: { serializeResultToString: true }}

pamiętaj, aby wartość parametru hosta umieścić w nawiasach kwadratowych [].make sure to wrap the value of hosts parameter within brackets [].

  1. W terminalu uruchom bin/gremlin.bat lub bin/gremlin.sh, aby uruchomić Konsolę Gremlin.In your terminal, run bin/gremlin.bat or bin/gremlin.sh to start the Gremlin Console.

  2. W terminalu uruchom :remote connect tinkerpop.server conf/remote-secure.yaml w celu nawiązania połączenia z usługą aplikacji.In your terminal, run :remote connect tinkerpop.server conf/remote-secure.yaml to connect to your app service.

    Porada

    Jeśli zostanie wyświetlony błąd No appenders could be found for logger, upewnij się, że zaktualizowano wartość serializatora w pliku remote-secure.yaml, zgodnie z opisem w kroku 2.If you receive the error No appenders could be found for logger ensure that you updated the serializer value in the remote-secure.yaml file as described in step 2. Jeśli konfiguracja jest poprawna, to ostrzeżenie można bezpiecznie zignorować, ponieważ nie ma to wpływu na korzystanie z konsoli programu.If your configuration is correct, then this warning can be safely ignored as it should not impact the use of the console.

  3. Następnie uruchom :remote console, aby przekierować wszystkie polecenia konsoli na serwer zdalny.Next run :remote console to redirect all console commands to the remote server.

    Uwaga

    Jeśli nie uruchomisz polecenia :remote console, ale chcesz przekierować wszystkie polecenia konsoli na serwer zdalny, dodaj do polecenia prefiks :>, na przykład uruchom polecenie jako :> g.V().count().If you don't run the :remote console command but would like to redirect all console commands to the remote server, you should prefix the command with :>, for example you should run the command as :> g.V().count(). Ten prefiks jest częścią polecenia i jest to ważne, gdy konsola Gremlin jest używana z usługą Azure Cosmos DB.This prefix is a part of the command and it is important when using the Gremlin console with Azure Cosmos DB. Pominięcie tego prefiksu oznacza, że konsola ma wykonać polecenia lokalnie, często względem grafu w pamięci.Omitting this prefix instructs the console to execute the command locally, often against an in-memory graph. Użycie tego prefiksu :> powoduje wykonanie polecenia zdalnego przez konsolę, w tym przypadku względem usługi Azure Cosmos DB (emulatora localhost lub wystąpienia platformy Azure).Using this prefix :> tells the console to execute a remote command, in this case against Azure Cosmos DB (either the localhost emulator, or an Azure instance).

Wspaniale!Great! Teraz, po zakończeniu konfigurowania, zacznijmy uruchamianie poleceń konsoli.Now that we finished the setup, let's start running some console commands.

Wypróbujmy proste polecenie count().Let's try a simple count() command. Wpisz następujący tekst w wierszu polecenia konsoli:Type the following into the console at the prompt:

g.V().count()

Tworzenie wierzchołków i krawędziCreate vertices and edges

Zacznijmy od dodania wierzchołków dla pięciu osób: Thomas, Mary Kay, Robin, Ben i Jack.Let's begin by adding five person vertices for Thomas, Mary Kay, Robin, Ben, and Jack.

Dane wejściowe (Thomas):Input (Thomas):

g.addV('person').property('firstName', 'Thomas').property('lastName', 'Andersen').property('age', 44).property('userid', 1).property('pk', 'pk')

Dane wyjściowe:Output:

==>[id:796cdccc-2acd-4e58-a324-91d6f6f5ed6d,label:person,type:vertex,properties:[firstName:[[id:f02a749f-b67c-4016-850e-910242d68953,value:Thomas]],lastName:[[id:f5fa3126-8818-4fda-88b0-9bb55145ce5c,value:Andersen]],age:[[id:f6390f9c-e563-433e-acbf-25627628016e,value:44]],userid:[[id:796cdccc-2acd-4e58-a324-91d6f6f5ed6d|userid,value:1]]]]

Dane wejściowe (Mary Kay):Input (Mary Kay):

g.addV('person').property('firstName', 'Mary Kay').property('lastName', 'Andersen').property('age', 39).property('userid', 2).property('pk', 'pk')

Dane wyjściowe:Output:

==>[id:0ac9be25-a476-4a30-8da8-e79f0119ea5e,label:person,type:vertex,properties:[firstName:[[id:ea0604f8-14ee-4513-a48a-1734a1f28dc0,value:Mary Kay]],lastName:[[id:86d3bba5-fd60-4856-9396-c195ef7d7f4b,value:Andersen]],age:[[id:bc81b78d-30c4-4e03-8f40-50f72eb5f6da,value:39]],userid:[[id:0ac9be25-a476-4a30-8da8-e79f0119ea5e|userid,value:2]]]]

Dane wejściowe (Robin):Input (Robin):

g.addV('person').property('firstName', 'Robin').property('lastName', 'Wakefield').property('userid', 3).property('pk', 'pk')

Dane wyjściowe:Output:

==>[id:8dc14d6a-8683-4a54-8d74-7eef1fb43a3e,label:person,type:vertex,properties:[firstName:[[id:ec65f078-7a43-4cbe-bc06-e50f2640dc4e,value:Robin]],lastName:[[id:a3937d07-0e88-45d3-a442-26fcdfb042ce,value:Wakefield]],userid:[[id:8dc14d6a-8683-4a54-8d74-7eef1fb43a3e|userid,value:3]]]]

Dane wejściowe (Ben):Input (Ben):

g.addV('person').property('firstName', 'Ben').property('lastName', 'Miller').property('userid', 4).property('pk', 'pk')

Dane wyjściowe:Output:

==>[id:ee86b670-4d24-4966-9a39-30529284b66f,label:person,type:vertex,properties:[firstName:[[id:a632469b-30fc-4157-840c-b80260871e9a,value:Ben]],lastName:[[id:4a08d307-0719-47c6-84ae-1b0b06630928,value:Miller]],userid:[[id:ee86b670-4d24-4966-9a39-30529284b66f|userid,value:4]]]]

Dane wejściowe (Jack):Input (Jack):

g.addV('person').property('firstName', 'Jack').property('lastName', 'Connor').property('userid', 5).property('pk', 'pk')

Dane wyjściowe:Output:

==>[id:4c835f2a-ea5b-43bb-9b6b-215488ad8469,label:person,type:vertex,properties:[firstName:[[id:4250824e-4b72-417f-af98-8034aa15559f,value:Jack]],lastName:[[id:44c1d5e1-a831-480a-bf94-5167d133549e,value:Connor]],userid:[[id:4c835f2a-ea5b-43bb-9b6b-215488ad8469|userid,value:5]]]]

Następnie dodajmy krawędzie dla relacji między tymi osobami.Next, let's add edges for relationships between our people.

Dane wejściowe (Thomas -> Mary Kay):Input (Thomas -> Mary Kay):

g.V().hasLabel('person').has('firstName', 'Thomas').addE('knows').to(g.V().hasLabel('person').has('firstName', 'Mary Kay'))

Dane wyjściowe:Output:

==>[id:c12bf9fb-96a1-4cb7-a3f8-431e196e702f,label:knows,type:edge,inVLabel:person,outVLabel:person,inV:0d1fa428-780c-49a5-bd3a-a68d96391d5c,outV:1ce821c6-aa3d-4170-a0b7-d14d2a4d18c3]

Dane wejściowe (Thomas -> Robin):Input (Thomas -> Robin):

g.V().hasLabel('person').has('firstName', 'Thomas').addE('knows').to(g.V().hasLabel('person').has('firstName', 'Robin'))

Dane wyjściowe:Output:

==>[id:58319bdd-1d3e-4f17-a106-0ddf18719d15,label:knows,type:edge,inVLabel:person,outVLabel:person,inV:3e324073-ccfc-4ae1-8675-d450858ca116,outV:1ce821c6-aa3d-4170-a0b7-d14d2a4d18c3]

Dane wejściowe (Robin -> Ben):Input (Robin -> Ben):

g.V().hasLabel('person').has('firstName', 'Robin').addE('knows').to(g.V().hasLabel('person').has('firstName', 'Ben'))

Dane wyjściowe:Output:

==>[id:889c4d3c-549e-4d35-bc21-a3d1bfa11e00,label:knows,type:edge,inVLabel:person,outVLabel:person,inV:40fd641d-546e-412a-abcc-58fe53891aab,outV:3e324073-ccfc-4ae1-8675-d450858ca116]

Aktualizowanie wierzchołkaUpdate a vertex

Zaktualizujmy wierzchołek Thomas, podając nowy wiek: 45.Let's update the Thomas vertex with a new age of 45.

Dane wejściowe:Input:

g.V().hasLabel('person').has('firstName', 'Thomas').property('age', 45)

Dane wyjściowe:Output:

==>[id:ae36f938-210e-445a-92df-519f2b64c8ec,label:person,type:vertex,properties:[firstName:[[id:872090b6-6a77-456a-9a55-a59141d4ebc2,value:Thomas]],lastName:[[id:7ee7a39a-a414-4127-89b4-870bc4ef99f3,value:Andersen]],age:[[id:a2a75d5a-ae70-4095-806d-a35abcbfe71d,value:45]]]]

Wykonywanie zapytania względem grafuQuery your graph

Teraz uruchommy różne zapytania względem grafu.Now, let's run a variety of queries against your graph.

Najpierw wypróbujmy zapytanie z filtrem, aby zwrócić tylko te osoby, które mają więcej niż 40 lat.First, let's try a query with a filter to return only people who are older than 40 years old.

Dane wejściowe (zapytanie filtru):Input (filter query):

g.V().hasLabel('person').has('age', gt(40))

Dane wyjściowe:Output:

==>[id:ae36f938-210e-445a-92df-519f2b64c8ec,label:person,type:vertex,properties:[firstName:[[id:872090b6-6a77-456a-9a55-a59141d4ebc2,value:Thomas]],lastName:[[id:7ee7a39a-a414-4127-89b4-870bc4ef99f3,value:Andersen]],age:[[id:a2a75d5a-ae70-4095-806d-a35abcbfe71d,value:45]]]]

Następnie wyświetlmy imiona osób, które mają więcej niż 40 lat.Next, let's project the first name for the people who are older than 40 years old.

Dane wejściowe (zapytanie filtru i projekcji):Input (filter + projection query):

g.V().hasLabel('person').has('age', gt(40)).values('firstName')

Dane wyjściowe:Output:

==>Thomas

Przechodzenie grafuTraverse your graph

Przejdźmy graf w celu zwrócenia wszystkich znajomych Thomasa.Let's traverse the graph to return all of Thomas's friends.

Dane wejściowe (znajomi Thomasa):Input (friends of Thomas):

g.V().hasLabel('person').has('firstName', 'Thomas').outE('knows').inV().hasLabel('person')

Dane wyjściowe:Output:

==>[id:f04bc00b-cb56-46c4-a3bb-a5870c42f7ff,label:person,type:vertex,properties:[firstName:[[id:14feedec-b070-444e-b544-62be15c7167c,value:Mary Kay]],lastName:[[id:107ab421-7208-45d4-b969-bbc54481992a,value:Andersen]],age:[[id:4b08d6e4-58f5-45df-8e69-6b790b692e0a,value:39]]]]
==>[id:91605c63-4988-4b60-9a30-5144719ae326,label:person,type:vertex,properties:[firstName:[[id:f760e0e6-652a-481a-92b0-1767d9bf372e,value:Robin]],lastName:[[id:352a4caa-bad6-47e3-a7dc-90ff342cf870,value:Wakefield]]]]

Następnie uzyskajmy kolejną warstwę wierzchołków.Next, let's get the next layer of vertices. Przejdźmy graf w celu zwrócenia wszystkich osób będących znajomymi znajomych Thomasa.Traverse the graph to return all the friends of Thomas's friends.

Dane wejściowe (znajomi znajomych Thomasa):Input (friends of friends of Thomas):

g.V().hasLabel('person').has('firstName', 'Thomas').outE('knows').inV().hasLabel('person').outE('knows').inV().hasLabel('person')

Dane wyjściowe:Output:

==>[id:a801a0cb-ee85-44ee-a502-271685ef212e,label:person,type:vertex,properties:[firstName:[[id:b9489902-d29a-4673-8c09-c2b3fe7f8b94,value:Ben]],lastName:[[id:e084f933-9a4b-4dbc-8273-f0171265cf1d,value:Miller]]]]

Usuwanie wierzchołkaDrop a vertex

Usuńmy teraz wierzchołek z bazy danych grafu.Let's now delete a vertex from the graph database.

Dane wejściowe (usunięcie wierzchołka Jacka):Input (drop Jack vertex):

g.V().hasLabel('person').has('firstName', 'Jack').drop()

Czyszczenie grafuClear your graph

Na koniec usuńmy z bazy danych wszystkie wierzchołki i krawędzie.Finally, let's clear the database of all vertices and edges.

Dane wejściowe:Input:

g.E().drop()
g.V().drop()

Gratulacje!Congratulations! Pomyślnie ukończono samouczek interfejsu API języka Gremlin w usłudze Azure Cosmos DB!You've completed this Azure Cosmos DB: Gremlin API tutorial!

Przeglądanie umów SLA w witrynie Azure PortalReview SLAs in the Azure portal

Azure Portal monitoruje przepływność, magazyn, dostępność, opóźnienia i spójność konta Cosmos DB.The Azure portal monitors your Cosmos DB account throughput, storage, availability, latency, and consistency. Wykresy dla metryk skojarzonych z Umowa dotycząca poziomu usług Azure Cosmos dB (SLA) pokazują wartość SLA w porównaniu z rzeczywistą wydajnością.Charts for metrics associated with an Azure Cosmos DB Service Level Agreement (SLA) show the SLA value compared to actual performance. Ten pakiet metryk pozwala monitorować umowy SLA przezroczyste.This suite of metrics makes monitoring your SLAs transparent.

Aby przejrzeć metryki i umowy SLA:To review metrics and SLAs:

  1. Wybierz pozycję metryki w menu nawigacji konta Cosmos DB.Select Metrics in your Cosmos DB account's navigation menu.

  2. Wybierz kartę, na przykład opóźnienie, a następnie wybierz przedział czasu po prawej stronie.Select a tab such as Latency, and select a timeframe on the right. Porównaj wiersze rzeczywiste i SLA na wykresach.Compare the Actual and SLA lines on the charts.

    Zestaw metryk w usłudze Azure Cosmos DB

  3. Przejrzyj metryki na innych kartach.Review the metrics on the other tabs.

Oczyszczanie zasobówClean up resources

Gdy skończysz korzystanie z aplikacji sieci Web i konta Azure Cosmos DB, możesz usunąć utworzone zasoby platformy Azure, aby nie nawiązać dodatkowych opłat.When you're done with your web app and Azure Cosmos DB account, you can delete the Azure resources you created so you don't incur more charges. Aby usunąć zasoby:To delete the resources:

  1. W witrynie Azure Portal na końcu z lewej strony wybierz pozycję Grupy zasobów.In the Azure portal, select Resource groups on the far left. Jeśli menu po lewej stronie jest zwinięte, wybierz przycisk rozwiń, aby je rozwinąć.If the left menu is collapsed, select Expand button to expand it.

  2. Wybierz grupę zasobów utworzoną dla tego przewodnika Szybki Start.Select the resource group you created for this quickstart.

    Wybierz grupę zasobów do usunięcia

  3. W nowym oknie wybierz pozycję Usuń grupę zasobów.In the new window, select Delete resource group.

    Usuwanie grupy zasobów

  4. W następnym oknie wprowadź nazwę grupy zasobów do usunięcia, a następnie wybierz pozycję Usuń.In the next window, enter the name of the resource group to delete, and then select Delete.

Następne krokiNext steps

W tym przewodniku Szybki start wyjaśniono, jak utworzyć konto usługi Azure Cosmos DB, jak utworzyć graf za pomocą Eksploratora danych oraz jak utworzyć wierzchołki i krawędzie, a także jak przejść graf za pomocą konsoli Gremlin.In this quickstart, you've learned how to create an Azure Cosmos DB account, create a graph using the Data Explorer, create vertices and edges, and traverse your graph using the Gremlin console. Teraz możesz tworzyć bardziej złożone zapytania i implementować zaawansowaną logikę przechodzenia grafu za pomocą języka Gremlin.You can now build more complex queries and implement powerful graph traversal logic using Gremlin.