Remote-Funktionen und Translation API – Anleitung
In dieser Anleitung wird beschrieben, wie Sie eine BigQuery-Remote-Funktion erstellen, die Cloud Translation API aufrufen und Inhaltsübersetzungen von jeder Sprache ins Spanische mithilfe von SQL und Python durchführen.
Anwendungsfälle für diese Funktion:
- Nutzerkommentare auf einer Website in eine lokale Sprache übersetzen
- Supportanfragen aus vielen Sprachen in eine gemeinsame Sprache für Supportfall-Mitarbeiter übersetzen
Lernziele
- Weisen Sie Ihrem Konto die erforderlichen Rollen zu.
- Cloud Functions-Funktion erstellen.
- BigQuery-Dataset erstellen
- BigQuery-Verbindung und ein Dienstkonto erstellen.
- Gewähren Sie dem BigQuery-Dienstkonto Berechtigungen.
- Erstellen Sie eine BigQuery-Remote-Funktion.
- Rufen Sie die BigQuery-Remote-Funktion auf.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Hinweis
Wir empfehlen Ihnen, für diese Anleitung ein Google Cloud-Projekt zu erstellen. Prüfen Sie außerdem, ob Sie die erforderlichen Rollen für diese Anleitung haben.
Google Cloud-Projekt einrichten
Führen Sie die folgenden Schritte aus, um ein Google Cloud-Projekt für diese Anleitung einzurichten:
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
BigQuery, BigQuery Connection, Cloud Translation, Cloud Functions, Cloud Build, Cloud Logging, Cloud Pub/Sub, Artifact Registry und Cloud Run-Administrator APIs aktivieren.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
BigQuery, BigQuery Connection, Cloud Translation, Cloud Functions, Cloud Build, Cloud Logging, Cloud Pub/Sub, Artifact Registry und Cloud Run-Administrator APIs aktivieren.
Erforderliche Rollen für Ihr Konto
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen der Aufgaben in dieser Anleitung benötigen:
-
BigQuery-Dateninhaber (
roles/bigquery.dataOwner
) -
BigQuery Connection Admin (
roles/bigquery.connectionAdmin
) -
Cloud Functions Developer (
roles/cloudfunctions.developer
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
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
Die folgenden Berechtigungen sind für die Aufgaben in dieser Anleitung erforderlich:
-
bigquery.datasets.create
-
bigquery.connections.create
-
bigquery.connections.get
-
cloudfunctions.functions.create
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Erforderliche Rollen für das Compute Engine-Standarddienstkonto
Beim Aktivieren der API für Cloud Functions wurde ein Compute Engine-Standarddienstkonto erstellt. Zum Ausführen dieser Anleitung müssen Sie diesem Standarddienstkonto die Rolle „Cloud Translation API-Nutzer“ zuweisen.
Kopieren Sie Ihr Compute Engine-Standarddienstkonto. Ihr Standarddienstkonto sieht so aus:
PROJECT_NUMBER[email protected]
Ersetzen Sie
PROJECT_NUMBER
durch Ihre Projekt-ID.Öffnen Sie in der Google Cloud Console die Seite IAM.
Wählen Sie Ihr Projekt aus.
Klicken Sie auf
Zugriff gewähren und fügen Sie im Feld Neue Hauptkonten das zuvor kopierte Compute Engine-Standarddienstkonto ein.Suchen Sie in der Liste Rollen zuweisen nach Cloud Translation API-Nutzer und wählen Sie sie aus.
Klicken Sie auf Speichern.
Cloud Functions-Funktion erstellen
Erstellen Sie mit Cloud Functions eine Funktion, die Eingabetext ins Spanische übersetzt.
Erstellen Sie eine Cloud Functions-Funktion mit den folgenden Spezifikationen:
- Wählen Sie für Umgebung 2. Generation aus.
- Geben Sie als Funktionsname
translation-handler
ein. - Wählen Sie als Region die Option us-central1 aus.
Geben Sie für Maximale Anzahl von Instanzen den Wert
10
ein.Diese Einstellung befindet sich im Abschnitt Laufzeit, Build, Verbindungen und Sicherheitseinstellungen.
In dieser Anleitung verwenden wir einen niedrigeren Wert als den Standardwert, um die an Translation gesendete Anfragerate zu steuern.
Wählen Sie als Laufzeit Python 3.10.
Geben Sie als Einstiegspunkt
handle_translation
ein.
Wählen Sie in der Dateiliste main.py aus und fügen Sie den folgenden Code ein.
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Aktualisieren
<your location>
mitus-central1
.Wählen Sie in der Dateiliste requirements.txt aus und fügen Sie den folgenden Text ein:
Klicken Sie auf Bereitstellen und warten Sie, bis die Funktion bereitgestellt wurde.
Klicken Sie auf den Tab Trigger.
Kopieren Sie den Wert für die Trigger-URL und speichern Sie ihn für später. Sie müssen diese URL verwenden, wenn Sie eine BigQuery-Remote-Funktion erstellen.
Erstellen Sie ein BigQuery-Dataset
Erstellen Sie ein BigQuery-Dataset, das die Remote-Funktion enthalten soll. Geben Sie beim Erstellen des Datasets die folgenden Spezifikationen an:
- Geben Sie unter Dataset-ID
remote_function_test
ein. - Wählen Sie unter Standorttyp die Option Mehrere Regionen aus.
- Wählen Sie für Mehrere Regionen die Option US (mehrere Regionen in den USA) aus.
BigQuery-Verbindung und -Dienstkonto erstellen
Erstellen Sie eine BigQuery-Verbindung, damit Sie eine Remote-Funktion mit allen unterstützten Sprachen in Cloud Functions und Cloud Run implementieren können. Wenn Sie eine Verbindung herstellen, wird ein Dienstkonto für diese Verbindung erstellt.
Erstellen Sie eine Google Cloud-Ressourcenverbindung mit den folgenden Spezifikationen:
- Wählen Sie als Verbindungstyp die Option BigLake und Remotefunktionen (Cloud Resource) aus.
- Geben Sie als Verbindungs-ID
remote-function-connection
ein. - Wählen Sie unter Standorttyp die Option Mehrere Regionen aus.
- Wählen Sie für Mehrere Regionen die Option US (mehrere Regionen in den USA) aus.
Öffnen Sie die Liste Externe Verbindungen und wählen Sie
us.remote-function-connection
aus.Kopieren Sie die Dienstkonto-ID und speichern Sie sie für später. Sie müssen dieser ID im nächsten Schritt Berechtigungen erteilen.
Berechtigungen für das BigQuery-Dienstkonto gewähren
Das im vorherigen Schritt erstellte Dienstkonto benötigt die Berechtigung zur Verwendung von Cloud Run, damit die BigQuery-Remote-Funktion die Cloud Functions-Funktion verwenden kann. Führen Sie die folgenden Schritte aus, um dem Dienstkonto Berechtigungen zu erteilen:
Zur Seite „Cloud Run“
Wählen Sie Ihr Projekt aus.
Klicken Sie das Kästchen neben
translation-handler
an.Klicken Sie im Bereich Berechtigungen auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten die Dienstkonto-ID ein, die Sie zuvor kopiert haben.
Suchen Sie in der Liste Rollen zuweisen nach Cloud Run Invoker und wählen Sie es aus.
Klicken Sie auf Speichern.
BigQuery-Remote-Funktion erstellen
Gehen Sie folgendermaßen vor, um die Cloud Functions-Funktion, die Text ins Spanische übersetzt, mit einer BigQuery-Remote-Funktion zu verwenden.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Geben Sie im Abfrageeditor die folgende Abfrage ein:
CREATE OR REPLACE FUNCTION `remote_function_test.translate_text`(x STRING) RETURNS STRING REMOTE WITH CONNECTION `us.remote-function-connection` OPTIONS ( endpoint = 'TRIGGER_URL', max_batching_rows = 10);
Ersetzen Sie
TRIGGER_URL
durch die Trigger-URL, die Sie beim Erstellen einer Cloud Functions-Funktion zuvor gespeichert haben.Klicken Sie auf Ausführen. Eine Meldung ähnlich der folgenden wird angezeigt:
This statement created a new function named your_project.remote_function_test.translate_text.
BigQuery-Remote-Funktion aufrufen
Nachdem Sie Ihre Remote-Funktion erstellt haben, testen Sie sie, damit sichergestellt ist, dass sie mit der Cloud Functions-Funktion verknüpft ist und die erwarteten Ergebnisse auf Spanisch liefert.
Geben Sie im BigQuery-Abfrageeditor die folgende Abfrage ein und klicken Sie dann auf Ausführen.
SELECT remote_function_test.translate_text('This new feature is fantastic!') AS translated_text;
Die Richtlinien sehen in etwa so aus:
+-------------------------------------------+ | translated_text | +-------------------------------------------+ | ¡Esta nueva característica es fantástica! | +-------------------------------------------+
Optional: Geben Sie die folgende Abfrage ein und klicken Sie auf Ausführen, um die Remote-Funktion für ein öffentliches Dataset zu testen. Verwenden Sie die Klausel
LIMIT
, um die zurückgegebenen Ergebnisse zu begrenzen.SELECT text, remote_function_test.translate_text(text) AS translated_text FROM (SELECT text FROM `bigquery-public-data.hacker_news.full` LIMIT 3);
Die Richtlinien sehen in etwa so aus:
+---------------------------------------------------------------------------+ | text | translated_text | +---------------------------------------------------------------------------+ | These benchmarks look good. | Estos puntos de referencia se ven bien. | | Who is using Java? | ¿Quién está usando Java? | | You need more database storage. | Necesitas más almacenamiento. | +---------------------------------------------------------------------------+
Ressourcen löschen
Wenn Sie diese Funktionen nicht in diesem Projekt verwenden möchten, können Sie zusätzliche Kosten vermeiden, indem Sie das Projekt löschen. Dadurch werden alle mit dem Projekt verknüpften Ressourcen endgültig gelöscht.
- 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.
Nächste Schritte
- Weitere Informationen zur Verwendung von Remote-Funktionen in BigQuery.
- Weitere Informationen zu Translation.
- Weitere Informationen zu Cloud Functions.
- Weitere Informationen zu Cloud Run.