Bilder analysieren
In dieser Anleitung erfahren Sie, wie Sie durch die Einbindung von BigQuery ML in Gemini Informationen aus unstrukturierten Bilddaten gewinnen. In der Anleitung erstellen Sie ein Remote-Modell auf Basis von gemini-2.5-flash und verwenden die Funktion AI.GENERATE_TEXT, um automatisch Metadaten wie Titel und Erscheinungsjahr aus einer Sammlung von Filmplakaten zu extrahieren.
Ziele
- Erstellen Sie eine BigQuery-Objekttabelle für Bilddaten in einem Cloud Storage-Bucket.
- Erstellen Sie ein BigQuery ML-Remote-Modell, das auf das
gemini-2.5-flash-Modell der Gemini Enterprise Agent Platform ausgerichtet ist. - Verwenden Sie das Remote-Modell mit der Funktion
AI.GENERATE_TEXT, um die Filme zu identifizieren, die mit einer Reihe von Filmplakaten verknüpft sind.
Kosten
In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloudverwendet:
Mit dem Preisrechner können Sie eine Kostenschätzung Ihrer voraussichtlichen Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
-
Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Projekt von Google Cloud aus oder erstellen Sie eines.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Project Creator“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Informationen zum Zuweisen von Rollen
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud -Projekt aktiviert ist.
-
Aktivieren Sie die BigQuery API, die BigQuery Connection API und die Agent Platform API, falls sie noch nicht aktiviert sind.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen
Erforderliche Rollen
Zum Ausführen dieser Anleitung benötigen Sie die folgenden IAM-Rollen (Identity and Access Management):
- BigQuery-Datasets, -Verbindungen und -Modelle erstellen und verwenden: BigQuery-Administrator (
roles/bigquery.admin). - Dem Dienstkonto der Verbindung Berechtigungen gewähren: Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin).
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Ausführen der Aufgaben in diesem Dokument erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
- Dataset erstellen:
bigquery.datasets.create - Verbindung erstellen, delegieren und verwenden:
bigquery.connections.* - Legen Sie die Standardverbindung fest:
bigquery.config.* - Legen Sie die Dienstkontoberechtigungen fest:
resourcemanager.projects.getIamPolicyundresourcemanager.projects.setIamPolicy. - Objekttabelle erstellen:
bigquery.tables.createundbigquery.tables.update - Modell erstellen und Inferenz ausführen:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Umgebung vorbereiten
Wenn Sie BigQuery ML-Inferenzen für Objekttabellen mit gemini-2.5-flash ausführen möchten, müssen Sie Ihrem Projekt eine BigQuery-Reservierung zuweisen. Wenn Ihrem Projekt bereits eine Reservierung zugewiesen ist, können Sie diesen Schritt überspringen.
Reservierung erstellen
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Navigationsmenü auf Arbeitslastverwaltung.
Klicken Sie auf Reservierung erstellen.
Führen Sie auf der Seite Reservierung erstellen die folgenden Schritte aus:
- Geben Sie unter Name der Reservierung den Wert
bqml-tutorial-reservationein. - Wählen Sie unter Standort die Option USA (mehrere Regionen in den USA) aus.
- Lassen Sie alle anderen Standardeinstellungen unverändert und klicken Sie auf Speichern.
- Geben Sie unter Name der Reservierung den Wert
Reservierung zuweisen
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Navigationsmenü auf Arbeitslastverwaltung.
Suchen Sie in der Tabelle Slotreservierungen nach der Reservierung, die Sie Ihrem Projekt zuweisen möchten.
Klicken Sie auf Aktionen ansehen > Zuweisung erstellen.
Klicken Sie unter Zuweisung erstellen auf Durchsuchen und wählen Sie Ihr Projekt aus.
Wählen Sie als Jobtyp die Option QUERY aus. Durch diese Auswahl wird sichergestellt, dass Ihre SQL-Abfragen die Slots dieser Reservierung verwenden.
Klicken Sie auf Erstellen.
Dataset erstellen
Wählen Sie eine der folgenden Optionen aus, um ein BigQuery-Dataset zu erstellen:
Console
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im linken Bereich auf Explorer:

Wenn der linke Bereich nicht angezeigt wird, klicken Sie auf Linken Bereich maximieren, um ihn zu öffnen.
Maximieren Sie im Explorer Ihr Projekt und klicken Sie dann auf Datasets.
Klicken Sie auf der Seite Datasets auf Dataset erstellen.
Führen Sie im Bereich Dataset erstellen die folgenden Schritte aus:
Geben Sie unter Dataset-ID
bqml_tutorialein.Wählen Sie unter Speicherort der Daten die Option USA aus.
Übernehmen Sie die anderen Standardeinstellungen.
Klicken Sie auf Dataset erstellen.
bq
Wenn Sie ein neues Dataset erstellen möchten, verwenden Sie den Befehl bq mk --dataset.
Erstellen Sie ein Dataset mit dem Namen
bqml_tutorialund dem DatenspeicherortUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Prüfen Sie, ob das Dataset erstellt wurde:
bq ls
API
Rufen Sie die Methode datasets.insert mit einer definierten Dataset-Ressource auf:
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Objekttabelle erstellen
Erstellen Sie eine Objekttabelle für die Bilder von Filmplakaten im öffentlichen Cloud Storage-Bucket. Mit der Objekttabelle können Sie die Bilder analysieren, ohne sie aus Cloud Storage zu verschieben.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor die folgende Abfrage aus, um die Objekttabelle zu erstellen:
CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.movie_posters` WITH CONNECTION DEFAULT OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters/*']);
Remote-Modell erstellen
Erstellen Sie ein Remote-Modell, das ein gemini-2.5-flash-Modell der Agent Platform darstellt:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor die folgende Abfrage aus, um das Remote-Modell zu erstellen:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini-vision` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.5-flash');
Es kann einige Minuten dauern, bis die Abfrage abgeschlossen ist. Das Modell
gemini-visionwird danach im Datasetbqml_tutorialim Bereich Explorer angezeigt. Da die Abfrage eineCREATE MODEL-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.
Filmposter analysieren
Mit dem Remote-Modell die Filmplakate analysieren und bestimmen, für welchen Film jedes Plakat steht, und diese Daten dann in eine Tabelle schreiben.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor die folgende Abfrage aus, um die Filmposterbilder zu analysieren:
CREATE OR REPLACE TABLE `bqml_tutorial.movie_posters_results` AS ( SELECT uri, result FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini-vision`, TABLE `bqml_tutorial.movie_posters`, STRUCT( 0.2 AS temperature, 'For the movie represented by this poster, what is the movie title and year of release? Answer in JSON format with two keys: title, year. title should be string, year should be integer.' AS PROMPT)));
Führen Sie im Abfrageeditor folgende Anweisung aus, um die Tabellendaten aufzurufen:
SELECT * FROM `bqml_tutorial.movie_posters_results`;
Die Ausgabe sieht in etwa so aus:
+--------------------------------------------+----------------------------------+ | uri | result | +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |
json | | management/datasets/classic-movie- | { | | posters/little_annie_rooney.jpg | "title": "Little Annie Rooney", | | | "year": 1912 | | | } | | || +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |json | | management/datasets/classic-movie- | { | | posters/mighty_like_a_mouse.jpg | "title": "Mighty Like a Moose", | | | "year": 1926 | | | } | | || +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |json | | management/datasets/classic-movie- | { | | posters/brown_of_harvard.jpeg | "title": "Brown of Harvard", | | | "year": 1926 | | | } | | || +--------------------------------------------+----------------------------------+
Modellausgabe formatieren
Formatieren Sie die vom Modell zurückgegebenen Daten, um den Filmtitel und die Jahresdaten besser lesbar zu machen.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor die folgende Abfrage aus, um die Daten zu formatieren:
CREATE OR REPLACE TABLE `bqml_tutorial.movie_posters_results_formatted` AS ( SELECT uri, JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.title") AS title, JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.year") AS year FROM `bqml_tutorial.movie_posters_results` results );
Führen Sie im Abfrageeditor folgende Anweisung aus, um die Tabellendaten aufzurufen:
SELECT * FROM `bqml_tutorial.movie_posters_results_formatted`;
Die Ausgabe sieht etwa so aus:
+--------------------------------------------+----------------------------+------+ | uri | title | year | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "Barque sortant du port" | 1895 | | management/datasets/classic-movie- | | | | posters/barque_sortant_du_port.jpeg | | | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "The Great Train Robbery" | 1903 | | management/datasets/classic-movie- | | | | posters/the_great_train_robbery.jpg | | | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "Little Annie Rooney" | 1912 | | management/datasets/classic-movie- | | | | posters/little_annie_rooney.jpg | | | +--------------------------------------------+----------------------------+------+
Projekt löschen
- Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
Einzelne Ressourcen löschen
Wenn Sie das Projekt wiederverwenden möchten, löschen Sie die für die Anleitung erstellten Ressourcen.
Dataset löschen
Console
Löschen Sie das gesamte Dataset bqml_tutorial und alle Inhalte mit dem folgenden SQL-Befehl:
DROP SCHEMA IF EXISTS `bqml_tutorial` CASCADE;
bq
Löschen Sie das gesamte Dataset bqml_tutorial und alle zugehörigen Inhalte:
bq rm -r bqml_tutorial
Reservierung löschen
Console
Wenn Sie im Rahmen dieser Anleitung eine BigQuery-Reservierung erstellt haben, sollten Sie sie entfernen, um weitere Slot-Gebühren zu vermeiden.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Navigationsmenü auf Arbeitslastverwaltung.
Suchen Sie in der Tabelle Slot-Reservierungen nach
bqml-tutorial-reservation.Klicken Sie auf Aktionen ansehen > Löschen.
bq
Wenn Sie eine BigQuery-Reservierung mit dem Namen bqml-tutorial-reservation am Standort us erstellt haben, verwenden Sie den folgenden Befehl, um sie zu entfernen:
bq rm --reservation --location=us bqml-tutorial-reservation
Verbindung löschen
Console
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im linken Bereich auf Explorer, suchen Sie nach Ihrem Projekt und klicken Sie dann auf Verbindungen.
Suchen Sie in der Tabelle nach Ihrer Verbindung.
Klicken Sie auf Aktionen ansehen > Löschen.
bq
Löschen Sie die Verbindung:
bq rm --connection --location=us CONNECTION_ID
Ersetzen Sie CONNECTION_ID durch die tatsächliche ID Ihrer Verbindung.
Nächste Schritte
- Weitere Informationen zu Funktionen für generative KI in BigQuery
- Modell optimieren und bewerten
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center