Erste Schritte mit Spanner für generative KI-Anwendungen

In dieser Anleitung wird gezeigt, wie Sie eine generative KI-Anwendung mit Spanner und Vertex AI erstellen.

Mit dieser Anwendung können Sie eine Suche nach semantischer Ähnlichkeit durchführen und so Produkte finden, die einer Anfrage in natürlicher Sprache entsprechen. Dazu werden Einbettungen verwendet, also numerische Darstellungen von Text, die die Bedeutung und den Kontext von Wörtern erfassen. Sie verwenden ein Vertex AI-Modell, um diese Einbettungen zu generieren, und speichern und durchsuchen sie dann in Spanner. Dieser Ansatz ist besonders nützlich für Anwendungsfälle wie die Produktsuche, bei denen Nutzer möglicherweise in natürlicher Sprache beschreiben, was sie möchten, anstatt bestimmte Keywords zu verwenden.

In den folgenden Themen erfahren Sie, wie Sie:

  1. Google Cloud Projekt erstellen
  2. Spanner-Instanz erstellen
  3. Datenbank erstellen
  4. Einbettungsmodell erstellen
  5. Daten in Spanner laden
  6. Einbettungen für Daten generieren
  7. KNN-Vektorähnlichkeitssuche durchführen
  8. Vektorsuche mit einem Vektorindex skalieren
  9. Ressourcen bereinigen

Weitere Informationen zu den Preisen für Spanner finden Sie unter Spanner-Preise.

Informationen zum Ausprobieren eines Codelabs finden Sie unter Erste Schritte mit der Vektorsuche in Spanner.

Hinweise

Sie müssen ein Google Cloud Projekt erstellen, das mit einem Rechnungskonto verknüpft ist.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Die Spanner API sollte automatisch aktiviert werden. Ist das nicht der Fall, aktivieren Sie sie manuell:

    Spanner API aktivieren
  7. Die Vertex AI API sollte automatisch aktiviert werden. Ist das nicht der Fall, aktivieren Sie sie manuell:

    Vertex AI API aktivieren
    1. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud Spanner Admin (roles/spanner.admin) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Instanzen und Datenbanken benötigen.

    1. Wenn Sie nicht die Rolle „Cloud Spanner-Administrator“ haben, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud Spanner-Datenbankleser (roles/spanner.databaseReader) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Abfragen von Spanner-Diagrammen benötigen.

    Instanz erstellen

    Wenn Sie Spanner zum ersten Mal verwenden, müssen Sie eine Instanz erstellen. Dabei handelt es sich um eine Zuordnung von Ressourcen, die von Spanner-Datenbanken verwendet werden. In diesem Abschnitt wird gezeigt, wie Sie eine Instanz über die Google Cloud -Konsole erstellen.

    1. Rufen Sie in der Google Cloud Console die Seite Spanner auf.

      Spanner aufrufen

    2. Wählen Sie ein Google Cloud Projekt aus oder erstellen Sie eines, falls Sie dies noch nicht getan haben.

    3. Führen Sie einen der folgenden Schritte aus:

      1. Wenn Sie noch keine Spanner-Instanz erstellt haben, klicken Sie auf der Seite Willkommen bei Spanner auf Bereitgestellte Instanz erstellen.
      2. Wenn Sie eine Spanner-Instanz erstellt haben, klicken Sie auf der Seite Instanzen auf Instanz erstellen.
    4. Wählen Sie auf der Seite Version auswählen die Option Enterprise Plus oder Enterprise aus.

      Die Vektorsuche in Spanner ist nur in der Enterprise- oder Enterprise Plus-Version verfügbar. Wenn Sie die verschiedenen Versionen vergleichen möchten, klicken Sie auf Versionen vergleichen. Weitere Informationen finden Sie in der Übersicht über Spanner-Editionen.

    5. Klicken Sie auf Weiter.

    6. Geben Sie unter Instanzname einen Instanznamen ein, z. B. test-instance.

    7. Behalten Sie die Instanz-ID bei oder ändern Sie sie im Feld Instanz-ID. Die Instanz-ID entspricht standardmäßig dem Instanznamen, Sie können sie aber ändern. Der Instanzname und die Instanz-ID können identisch sein oder sich unterscheiden.

    8. Klicken Sie auf Weiter.

    9. Führen Sie unter Konfiguration auswählen die folgenden Schritte aus:

      1. Lassen Sie Regional ausgewählt.
      2. Wählen Sie unter Konfiguration auswählen eine Region aus. Die ausgewählte Region ist der Ort, an dem Ihre Instanzen gespeichert und repliziert werden.
      3. Klicken Sie auf Weiter.
    10. Führen Sie unter Rechenkapazität konfigurieren die folgenden Schritte aus:

      1. Wählen Sie unter Einheit auswählen die Option Verarbeitungseinheiten aus.
      2. Lassen Sie unter Skalierungsmodus auswählen die Option Manuelle Zuordnung ausgewählt und behalten Sie unter Menge 1.000 Verarbeitungseinheiten bei.
    11. Klicken Sie auf Erstellen. In der Google Cloud Console wird die Seite Übersicht für die erstellte Instanz angezeigt.

    Datenbank erstellen

    Nachdem Ihre Instanz ausgeführt wird, können Sie Ihre Datenbank erstellen. Sie definieren Ihr Schema in der Datenbank .

    1. Rufen Sie in der Google Cloud Console die Seite Spanner-Instanzen auf.

      Cloud Spanner-Instanzen aufrufen

    2. Klicken Sie auf die erstellte Instanz, z. B. test-instance.

    3. Klicken Sie unter Übersicht unter dem Namen Ihrer Instanz auf Datenbank erstellen.

    4. Geben Sie unter Datenbankname einen Datenbanknamen ein. Beispiel: example-db.

    5. Wählen Sie unter Datenbankdialekt auswählen die Option „Google Standard-SQL“ aus.

      Die Spanner-Vektorsuche ist im PostgreSQL-Dialekt nicht verfügbar.

    6. Kopieren Sie das folgende Schema und fügen Sie es in den Editor-Tab DDL-Vorlagen ein. Das Schema definiert eine Tabelle Products.

        CREATE TABLE products (
          categoryId INT64 NOT NULL,
          productId INT64 NOT NULL,
          productName STRING(MAX) NOT NULL,
          productDescription STRING(MAX) NOT NULL,
          productDescriptionEmbedding ARRAY<FLOAT32>,
          createTime TIMESTAMP NOT NULL OPTIONS (
          allow_commit_timestamp = true
          ), inventoryCount INT64 NOT NULL,
          priceInCents INT64,
        ) PRIMARY KEY(categoryId, productId);
      
    7. Nehmen Sie keine Änderungen unter Verschlüsselungsoptionen anzeigen vor.

    8. Klicken Sie auf Erstellen. Google Cloud In der Console wird die Seite Übersicht für die von Ihnen erstellte Datenbank angezeigt.

    Einbettungsmodell erstellen

    Wenn Sie die DDL-Anweisung CREATE MODEL in Spanner verwenden, registrieren Sie einen Verweis auf den Endpunkt des Vertex AI-Modells aus Ihrer Datenbank. Nachdem Sie das Modell registriert haben, können Sie mit der Funktion ML.PREDICT in Ihren Abfragen darauf zugreifen.

    Im folgenden Beispiel wird gezeigt, wie Sie ein Vertex AI-Modell für Texteinbettungen registrieren, das dann für die Ähnlichkeitssuche verwendet wird, um ähnliche Produkte in einer Datenbank zu finden.

    1. Klicken Sie auf der Seite Übersicht der Datenbank auf Spanner Studio.
    2. Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den leeren Editor-Tab.
    3. Geben Sie Folgendes ein:

      CREATE MODEL EmbeddingsModel INPUT(
      content STRING(MAX),
      ) OUTPUT(
      embeddings STRUCT<values ARRAY<FLOAT32>>,
      ) REMOTE OPTIONS (
      endpoint = '//aiplatform.googleapis.com/projects/PROJECT_ID/locations/us-central1/publishers/google/models/TEXT_EMBEDDING_MODEL'
      );
      

      Ersetzen Sie Folgendes:

      • PROJECT_ID: Eine permanente Kennung, die für IhrGoogle Cloud -Projekt eindeutig ist.
      • TEXT_EMBEDDING_MODEL ist der Name des Modelle für Texteinbettungen. Eine Liste der Vertex AI-Modelle zur Texteinbettung finden Sie unter Unterstützte Modelle.
    4. Klicken Sie auf Ausführen, um das Modell zu erstellen.

      Nachdem das Modell erfolgreich hinzugefügt wurde, wird es im Bereich Explorer angezeigt.

    Daten laden

    So laden Sie die Cymbal-Beispieldaten in die Tabelle products:

    1. Kopieren Sie in einem neuen Tab in Spanner Studio die folgende INSERT-Anweisung und fügen Sie sie ein:

      INSERT INTO products (categoryId, productId, productName, productDescription, createTime, inventoryCount, priceInCents)
      VALUES (1, 1, "Cymbal Helios Helmet", "Safety meets style with the Cymbal children's bike helmet. Its lightweight design, superior ventilation, and adjustable fit ensure comfort and protection on every ride. Stay bright and keep your child safe under the sun with Cymbal Helios!", PENDING_COMMIT_TIMESTAMP(), 100, 10999),
            (1, 2, "Cymbal Sprout", "Let their cycling journey begin with the Cymbal Sprout, the ideal balance bike for beginning riders ages 2-4 years. Its lightweight frame, low seat height, and puncture-proof tires promote stability and confidence as little ones learn to balance and steer. Watch them sprout into cycling enthusiasts with Cymbal Sprout!", PENDING_COMMIT_TIMESTAMP(), 10, 13999),
            (1, 3, "Cymbal Spark Jr.", "Light, vibrant, and ready for adventure, the Spark Jr. is the perfect first bike for young riders (ages 5-8). Its sturdy frame, easy-to-use brakes, and puncture-resistant tires inspire confidence and endless playtime. Let the spark of cycling ignite with Cymbal!", PENDING_COMMIT_TIMESTAMP(), 34, 13900),
            (1, 4, "Cymbal Summit", "Conquering trails is a breeze with the Summit mountain bike. Its lightweight aluminum frame, responsive suspension, and powerful disc brakes provide exceptional control and comfort for experienced bikers navigating rocky climbs or shredding downhill. Reach new heights with Cymbal Summit!", PENDING_COMMIT_TIMESTAMP(), 0, 79999),
            (1, 5, "Cymbal Breeze", "Cruise in style and embrace effortless pedaling with the Breeze electric bike. Its whisper-quiet motor and long-lasting battery let you conquer hills and distances with ease. Enjoy scenic rides, commutes, or errands with a boost of confidence from Cymbal Breeze!", PENDING_COMMIT_TIMESTAMP(), 72, 129999),
            (1, 6, "Cymbal Trailblazer Backpack", "Carry all your essentials in style with the Trailblazer backpack. Its water-resistant material, multiple compartments, and comfortable straps keep your gear organized and accessible, allowing you to focus on the adventure. Blaze new trails with Cymbal Trailblazer!", PENDING_COMMIT_TIMESTAMP(), 24, 7999),
            (1, 7, "Cymbal Phoenix Lights", "See and be seen with the Phoenix bike lights. Powerful LEDs and multiple light modes ensure superior visibility, enhancing your safety and enjoyment during day or night rides. Light up your journey with Cymbal Phoenix!", PENDING_COMMIT_TIMESTAMP(), 87, 3999),
            (1, 8, "Cymbal Windstar Pump", "Flat tires are no match for the Windstar pump. Its compact design, lightweight construction, and high-pressure capacity make inflating tires quick and effortless. Get back on the road in no time with Cymbal Windstar!", PENDING_COMMIT_TIMESTAMP(), 36, 24999),
            (1, 9,"Cymbal Odyssey Multi-Tool","Be prepared for anything with the Odyssey multi-tool. This handy gadget features essential tools like screwdrivers, hex wrenches, and tire levers, keeping you ready for minor repairs and adjustments on the go. Conquer your journey with Cymbal Odyssey!", PENDING_COMMIT_TIMESTAMP(), 52, 999),
            (1, 10,"Cymbal Nomad Water Bottle","Stay hydrated on every ride with the Nomad water bottle. Its sleek design, BPA-free construction, and secure lock lid make it the perfect companion for staying refreshed and motivated throughout your adventures. Hydrate and explore with Cymbal Nomad!", PENDING_COMMIT_TIMESTAMP(), 42, 1299);
      
    2. Klicken Sie auf Ausführen, um die Daten einzufügen.

    Vektoreinbettungen generieren

    Nachdem Sie ein Modell registriert und Daten in Spanner geladen haben, können Sie Vektoreinbettungen mit den Produktbeschreibungen aus Ihren Daten generieren. Bei Vektoreinbettungen werden Textdaten in einen numerischen Wert umgewandelt, der die Bedeutung und den Kontext von Wörtern erfasst. Diese Transformation ist für die Durchführung einer semantischen Suche unerlässlich.

    In diesem Schritt füllen Sie die Spalte productDescriptionEmbedding, indem Sie mit ML.PREDICT Einbettungen aus der Spalte productDescription generieren. So können Sie im nächsten Schritt eine Suche nach Vektorähnlichkeiten durchführen.

    1. Kopieren Sie in einem neuen Tab in Spanner Studio die folgende UPDATE-Anweisung und fügen Sie sie ein:

      UPDATE products p1
      SET productDescriptionEmbedding =
        (SELECT embeddings.values
          FROM ML.PREDICT(MODEL EmbeddingsModel,
            (SELECT p1.productDescription as content)
          )
        )
      WHERE categoryId=1;
      
    2. Klicken Sie auf Ausführen, um die Einbettungen zu generieren.

    Im folgenden Beispiel stellen Sie eine Suchanfrage in natürlicher Sprache mit einer SQL-Abfrage. Mit der SQL-Abfrage wird eine Suche nach Vektorähnlichkeiten mit den zuvor generierten Vektoreinbettungen durchgeführt. Die Suche wird mit der folgenden Abfrage durchgeführt:

    • ML.PREDICT wird verwendet, um ein Embedding für die angegebene Suchanfrage („Ich möchte ein Laufrad für mein 3-jähriges Kind kaufen“) zu generieren.
    • Berechnet die COSINE_DISTANCE zwischen diesem Anfrage-Embedding und dem productDescriptionEmbedding jedes Produkts in der Produkttabelle, um ähnliche Ergebnisse in Ihrem Cymbal-Shop zu finden.
    • Filtert die Ergebnisse, sodass nur Produkte mit einem inventoryCount größer als 0 berücksichtigt werden.
    • Die Ergebnisse werden nach der berechneten Distanz sortiert und die fünf am nächsten liegenden Übereinstimmungen werden zusammen mit productName, productDescription und inventoryCount zurückgegeben.
    1. Kopieren Sie die folgende Abfrage und fügen Sie sie in einen neuen Tab in Spanner Studio ein:

      SELECT productName, productDescription, inventoryCount,
        COSINE_DISTANCE(
          productDescriptionEmbedding,
          (
            SELECT embeddings.values
            FROM
              ML.PREDICT(
                MODEL EmbeddingsModel,
                (SELECT "I'd like to buy a starter bike for my 3 year old child" AS content))
          )) AS distance
      FROM products
      WHERE inventoryCount > 0
      ORDER BY distance
      LIMIT 5;
      
    2. Klicken Sie auf Ausführen, um die Produkte zurückzugeben, die am besten mit Ihrem Suchtext übereinstimmen.

      Beispielausgabe:

      /*-----------------+--------------------+----------------+--------------------*
      | productName      | productDescription | inventoryCount | distance           |
      +------------------+--------------------+----------------+--------------------+
      | Cymbal Sprout    | Let their cycling  | 10             | 0.3094387191860244 |
      |                  | journey begin with |                |                    |
      |                  | the Cymbal Sprout, |                |                    |
      |                  | the ideal balance  |                |                    |
      |                  | bike for beginning |                |                    |
      |                  | riders ages 2-4    |                |                    |
      |                  | years...           |                |                    |
      | Cymbal Spark Jr  | Light, vibrant,    | 34             | 0.3412342902117166 |
      |                  | and ready for      |                |                    |
      |                  | adventure, the     |                |                    |
      |                  | Spark Jr. is the   |                |                    |
      |                  | perfect first bike |                |                    |
      |                  | for young riders   |                |                    |
      |                  | (ages 5-8)...      |                |                    |
      | Cymbal Helios    | Safety meets style | 100            | 0.4197863319656684 |
      | Helmet           | with the Cymbal    |                |                    |
      |                  | children's bike    |                |                    |
      |                  | helmet...          |                |                    |
      | Cymbal Breeze    | Cruise in style and| 72             | 0.485231776523978  |
      |                  | embrace effortless |                |                    |
      |                  | pedaling with the  |                |                    |
      |                  | Breeze electric    |                |                    |
      |                  | bike...            |                |                    |
      | Cymbal Phoenix   | See and be seen    | 87             | 0.525101413779242  |
      | Lights           | with the Phoenix   |                |                    |
      |                  | bike lights...     |                |                    |
      *------------------+--------------------+----------------+--------------------*/
      

    Im vorherigen Beispiel für die Vektorsuche wird die exakte KNN-Vektorsuche (K-Nearest Neighbor) verwendet. Die KNN-Vektordistanzfunktionen (Kosinusdistanz, euklidische Distanz und Punktprodukt) sind hilfreich, wenn Sie eine bestimmte Teilmenge Ihrer Spanner-Daten abfragen können. Da bei der KNN-Suche die genaue Distanz zwischen einem Anfragevektor und allen Vektoren in der Datenbank berechnet wird, ist sie effizient, wenn Sie die Daten partitionieren können. Wenn in Ihrer Abfrage der Abfragevektor ohne bestimmte Filter mit allen Vektoren in Ihrer Datenbank verglichen werden muss und Sie die Abfrage nicht in unabhängige Unterabfragen aufteilen können, kann es bei Verwendung von KNN zu Leistungsengpässen kommen. In diesen Situationen ist die ANN-Vektorsuche (Approximate Nearest Neighbors) nützlich. Weitere Informationen finden Sie unter Ungefähre nächste Nachbarn finden.

    Wenn Ihre Arbeitslasten nicht partitionierbar sind und Sie eine große Menge an Daten haben, können Sie die ANN-Vektorsuche verwenden, um die Abfrageleistung für größere Datasets zu steigern.

    So skalieren und verwenden Sie die ANN-Vektorsuche in Cloud Spanner:

    Vektorindex erstellen

    Spanner beschleunigt ANN-Vektorsuchen mithilfe eines speziellen Vektorindex, der Scalable Nearest Neighbor (ScaNN) von Google Research nutzt.

    Wenn Sie einen Vektorindex in Ihrem Dataset erstellen möchten, müssen Sie die Spalte productDescriptionEmbeddings ändern, um eine vector_length-Annotation zu definieren. Die Annotation vector_length gibt die Dimension jedes Vektors an. Mit den folgenden DDL-Anweisungen wird die Spalte productDescriptionEmbedding gelöscht und mit vector_length neu erstellt. Die maximale Länge (Dimension) des Vektors hängt vom ausgewählten Embedding-Modell ab.

    1. Kopieren Sie in einem neuen Tab in Spanner Studio die folgende DDL-Anweisung und fügen Sie sie ein, um die Spalte productDescriptionEmbedding neu zu erstellen:

      ALTER TABLE products DROP COLUMN productDescriptionEmbedding;
      ALTER TABLE products
        ADD COLUMN productDescriptionEmbedding ARRAY<FLOAT32>(vector_length=>VECTOR_LENGTH_VALUE);
      

      Ersetzen Sie VECTOR_LENGTH_VALUE durch die maximalen Ausgabedimensionen des von Ihnen ausgewählten Einbettungsmodells.

    2. Klicken Sie auf Ausführen.

    3. Kopieren Sie die folgende Einfügeanweisung und fügen Sie sie ein, um die Vektoreinbettungen neu zu generieren:

      UPDATE products p1
      SET productDescriptionEmbedding =
      (SELECT embeddings.values from ML.PREDICT(MODEL EmbeddingsModel,
      (SELECT p1.productDescription as content)))
      WHERE categoryId=1;
      
    4. Klicken Sie auf Ausführen.

    5. Kopieren Sie die folgende DDL-Anweisung und fügen Sie sie ein, um den Vektorindex zu erstellen:

      CREATE VECTOR INDEX ProductDescriptionEmbeddingIndex
          ON products(productDescriptionEmbedding)
          WHERE productDescriptionEmbedding IS NOT NULL
      OPTIONS (
      distance_type = 'COSINE'
      );
      
    6. Klicken Sie auf Ausführen.

    ANN-Funktion für Vektorentfernung verwenden

    Wenn Sie die ANN-Vektorsuche in Spanner verwenden möchten, müssen Sie in Ihrer SQL-Abfrage Folgendes ändern:

    • Generieren Sie das Prompt-Embedding separat und nicht innerhalb der SQL-Abfrage.
    • Kopieren Sie die Ergebnisse der Einbettungen in die Abfrage.
    • Verwenden Sie den Hinweis FORCE_INDEX, um auf den neuen Vektorindex zu verweisen: @{force_index=ProductDescriptionEmbeddingIndex}
    • Verwenden Sie die Vektordistanzfunktion APPROX_COSINE_DISTANCE anstelle von COSINE_DISTANCE. Die Option JSON '{"num_leaves_to_search": num_leaves}' ist erforderlich.
    1. Kopieren Sie die folgende Abfrage in einen neuen Tab in Spanner Studio und fügen Sie sie ein, um das Prompt-Embedding zu generieren:

      -- Generate the prompt embedding
      SELECT embeddings.values
      FROM ML.PREDICT(
        MODEL EmbeddingsModel,
        (SELECT "I'd like to buy a starter bike for my 3 year old child" as content)
        );
      
    2. Klicken Sie auf Ausführen.

    3. Kopieren Sie das Ergebnis embeddings.values.

    4. Ersetzen Sie embedding in der folgenden Abfrage durch das Einbettungsergebnis, das Sie im vorherigen Schritt kopiert haben.

      -- Update embedding query using the vector index
      SELECT productName, productDescription, inventoryCount,
        (APPROX_COSINE_DISTANCE(productDescriptionEmbedding,
        array<float32>[embedding],
        options => JSON '{\"num_leaves_to_search\": 10}')) as distance
      FROM products @{force_index=ProductDescriptionEmbeddingIndex}
      WHERE productDescriptionEmbedding IS NOT NULL AND inventoryCount > 0
      ORDER BY distance
      LIMIT 5;
      

      Die neue SQL-Abfrage sieht in etwa so aus:

      SELECT productName, productDescription, count,
        (APPROX_COSINE_DISTANCE(productDescriptionEmbedding,
          array<float32>[-0.00457216799,-0.0771846101,-0.0319350846,0.0352052487,-0.0457422845,0.0183265656...],
          options => JSON '{\"num_leaves_to_search\": 10}')) as distance
      FROM products @{force_index=ProductDescriptionEmbeddingIndex}
      WHERE productDescriptionEmbedding IS NOT NULL AND inventoryCount > 0
      ORDER BY distance
      LIMIT 5;
      

      Beispielausgabe:

      /*-----------------+--------------------+----------------+--------------------*
      | productName      | productDescription | inventoryCount | distance           |
      +------------------+--------------------+----------------+--------------------+
      | Cymbal Sprout    | Let their cycling  | 10             | 0.30935457151661594|
      |                  | journey begin with |                |                    |
      |                  | the Cymbal Sprout, |                |                    |
      |                  | the ideal balance  |                |                    |
      |                  | bike for beginning |                |                    |
      |                  | riders ages 2-4    |                |                    |
      |                  | years...           |                |                    |
      | Cymbal Spark Jr  | Light, vibrant,    | 34             | 0.34116496551593656|
      |                  | and ready for      |                |                    |
      |                  | adventure, the     |                |                    |
      |                  | Spark Jr. is the   |                |                    |
      |                  | perfect first bike |                |                    |
      |                  | for young riders   |                |                    |
      |                  | (ages 5-8)...      |                |                    |
      | Cymbal Helios    | Safety meets style | 100            | 0.4198014303921187 |
      | Helmet           | with the Cymbal    |                |                    |
      |                  | children's bike    |                |                    |
      |                  | helmet...          |                |                    |
      | Cymbal Breeze    | Cruise in style and| 72             | 0.4850674854267337 |
      |                  | embrace effortless |                |                    |
      |                  | pedaling with the  |                |                    |
      |                  | Breeze electric    |                |                    |
      |                  | bike...            |                |                    |
      | Cymbal Phoenix   | See and be seen    | 87             | 0.525101413779242  |
      | Lights           | with the Phoenix   |                |                    |
      |                  | bike lights...     |                |                    |
      *------------------+--------------------+----------------+--------------------*/
      

      Der Cymbal Sprout mit einem APPROX_COSINE_DISTANCE von 0,30935457151661594 hat die höchste Ähnlichkeit mit der ursprünglichen Anfrage.

      Weitere Informationen zum Interpretieren der Beziehung zwischen Vektorfunktionen und Ähnlichkeit finden Sie unter Vektordistanzfunktionen zum Messen der Ähnlichkeit von Vektoreinbettungen auswählen.

    Bereinigen

    In diesem Abschnitt erfahren Sie, wie Sie die Google Cloud -Konsole verwenden, um Ihre Ressourcen zu bereinigen. Löschen Sie die Datenbank und die Instanz, die Sie bei der Einrichtung erstellt haben, um zusätzliche Kosten für Ihr Cloud-Rechnungskonto zu vermeiden. Beim Löschen einer Instanz werden alle in der Instanz erstellten Datenbanken gelöscht.

    Datenbank löschen

    1. Rufen Sie in der Google Cloud Console die Seite Spanner-Instanzen auf.

      Cloud Spanner-Instanzen aufrufen

    2. Klicken Sie auf den Namen der Instanz, die die Datenbank enthält, die Sie löschen möchten, z. B. test-instance.

    3. Klicken Sie auf den Namen der Datenbank, die Sie löschen möchten, z. B. example-db.

    4. Klicken Sie auf der Seite Datenbankübersicht auf „Löschen“ Datenbank löschen.

    5. Bestätigen Sie, dass Sie die Datenbank löschen möchten, indem Sie den Datenbanknamen eingeben und auf Löschen klicken.

    Instanz löschen

    kostenlose Testinstanz pro Projektlebenszyklus erstellen.
    1. Rufen Sie in der Google Cloud Console die Seite Spanner-Instanzen auf.

      Cloud Spanner-Instanzen aufrufen

    2. Klicken Sie auf den Namen der Instanz, die Sie löschen möchten, z. B. test-instance.

    3. Klicken Sie auf Instanz löschen.

    4. Bestätigen Sie, dass Sie die Instanz löschen möchten, indem Sie den Instanznamen eingeben und auf Löschen klicken.

    Nächste Schritte