Abfragen mit dem interaktiven SQL-Übersetzer übersetzen
In diesem Dokument wird beschrieben, wie Sie eine Abfrage mit einem interaktiven SQL-Übersetzer in einen Google SQL-Abfragejob von BigQuery in eine Google SQL-Abfrage übersetzen. Der interaktive SQL-Übersetzer kann den Zeit- und Arbeitsaufwand für die Migration von Arbeitslasten zu BigQuery reduzieren. Dieses Dokument richtet sich an Nutzer, die mit der Google Cloud Console vertraut sind.
Mit dem Feature für Übersetzungsregeln können Sie anpassen, wie der interaktive SQL-Übersetzer SQL übersetzt.
Eine Liste der von diesem SQL-Übersetzer unterstützten SQL-Dialekte finden Sie unter Unterstützte SQL Dialekte.
Eine Liste der unterstützten Verarbeitungsstandorte finden Sie unter Standorte.
Hinweis
Führen Sie die folgenden Schritte aus, bevor Sie einen Übersetzungsjob senden.
SQL-Übersetzungen aktivieren
Aktivieren Sie die erforderliche API und rufen Sie die Berechtigungen ab, die für die Verwendung eines BigQuery-SQL-Übersetzers erforderlich sind. Weitere Informationen finden Sie unter SQL Übersetzungen aktivieren.
Erforderliche Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die
folgenden IAM-Rollen für die parent Ressource zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Übersetzungsjobs mit dem interaktiven Übersetzer, der Übersetzungs-API oder dem Batch-SQL-Übersetzer benötigen:
-
Migrationsjobs ansehen und überwachen:
MigrationWorkflow-Betrachter (
roles/bigquerymigration.viewer) -
Migrationsjobs senden:
MigrationWorkflow-Bearbeiter (
roles/bigquerymigration.editor) -
Auf die Cloud Storage-Buckets für Eingabe- und Ausgabedateien zugreifen:
Storage-Objektadministrator (
roles/storage.objectAdmin) für den Quell- und Ziel-Cloud Storage-Bucket.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen von Übersetzungsjobs mit dem interaktiven Übersetzer, der Übersetzungs-API oder dem Batch-SQL-Übersetzer erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Übersetzungsjobs mit dem interaktiven Übersetzer, der Übersetzungs-API oder dem Batch-SQL-Übersetzer zu erstellen:
-
bigquerymigration.workflows.create -
bigquerymigration.workflows.get -
bigquerymigration.workflows.list -
bigquerymigration.workflows.delete -
bigquerymigration.subtasks.get -
bigquerymigration.subtasks.list -
storage.objects.get -
storage.objects.list -
storage.objects.create
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Umgang mit nicht unterstützten SQL-Funktionen mit Helper-UDFs
Beim Übersetzen von SQL aus einem Quelldialekt in BigQuery gibt es möglicherweise keine direkte Entsprechung für einige Funktionen. Um dieses Problem zu beheben, stellt der BigQuery Migration Service (und die breitere BigQuery-Community) benutzerdefinierte Helper-Funktionen (User-Defined Functions, UDFs) bereit, die das Verhalten dieser nicht unterstützten Funktionen des Quelldialekts nachbilden.
Diese UDFs befinden sich häufig im bqutil öffentlichen Dataset, sodass übersetzte
Abfragen zunächst mit dem Format
bqutil.<dataset>.<function>() darauf verweisen können. Beispiel: bqutil.fn.cw_count().
Wichtige Überlegungen für Produktionsumgebungen:
bqutil bietet zwar einen praktischen Zugriff auf diese Helper-UDFs für die erste Übersetzung und das Testen, die direkte Verwendung von bqutil für Produktionsarbeitslasten wird jedoch aus mehreren Gründen nicht empfohlen:
- Versionsverwaltung: Das
bqutil-Projekt hostet die neueste Version dieser UDFs. Das bedeutet, dass sich ihre Definitionen im Laufe der Zeit ändern können. Wenn Sie sich direkt aufbqutilverlassen, kann dies zu unerwartetem Verhalten oder zu Breaking Changes in Ihren Produktionsabfragen führen, wenn die Logik einer UDF aktualisiert wird. - Isolierung von Abhängigkeiten: Wenn Sie UDFs in Ihrem eigenen Projekt bereitstellen, wird Ihre Produktionsumgebung von externen Änderungen isoliert.
- Anpassung: Möglicherweise müssen Sie diese UDFs ändern oder optimieren, um sie besser an Ihre spezifische Geschäftslogik oder Leistungsanforderungen anzupassen. Das ist nur möglich, wenn sie sich in Ihrem eigenen Projekt befinden.
- Sicherheit und Governance: Die Sicherheitsrichtlinien Ihrer Organisation können den direkten Zugriff auf öffentliche Datasets wie
bqutilfür die Verarbeitung von Produktionsdaten einschränken. Das Kopieren von UDFs in Ihre kontrollierte Umgebung entspricht diesen Richtlinien.
Helper-UDFs in Ihrem Projekt bereitstellen:
Für eine zuverlässige und stabile Verwendung in der Produktion sollten Sie diese Helper-UDFs in Ihrem eigenen Projekt und Dataset bereitstellen. So haben Sie die vollständige Kontrolle über Version, Anpassung und Zugriff. Eine detaillierte Anleitung zum Bereitstellen dieser UDFs finden Sie im Bereitstellungsleitfaden für UDFs auf GitHub. In dieser Anleitung finden Sie die erforderlichen Skripts und Schritte zum Kopieren der UDFs in Ihre Umgebung.
Standorte
Der interaktive SQL-Übersetzer ist nur an ausgewählten Verarbeitungsstandorten verfügbar. Weitere Informationen finden Sie unter Standorte.
Auf Gemini basierende Übersetzungskonfigurationen sind nur an bestimmten Verarbeitungsstandorten verfügbar. Weitere Informationen finden Sie unter Standorte von Google-Modellendpunkten.
Abfrage in Google SQL übersetzen
Führen Sie diese Schritte aus, um eine Abfrage in Google SQL zu übersetzen:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Bereich Editor auf Tools > Übersetzungseinstellungen.
Wählen Sie unter Quelldialekt den SQL-Dialekt aus, den Sie übersetzen möchten.
Optional. Wählen Sie unter Verarbeitungsort den Ort aus, an dem der Übersetzungsjob ausgeführt werden soll. Wenn Sie sich beispielsweise in Europa befinden und Ihre Daten keine Standortgrenzen überschreiten möchten, wählen Sie die Region
euaus.Klicken Sie auf Speichern.
Klicken Sie im Bereich Editor auf Tools > SQL Übersetzung aktivieren.
Der Bereich Editor wird in zwei Bereiche unterteilt.
Geben Sie im linken Bereich die Abfrage ein, die übersetzt werden soll.
Klicken Sie auf Übersetzen.
BigQuery übersetzt Ihre Abfrage in Google SQL und zeigt sie im rechten Bereich an. Der folgende Screenshot zeigt beispielsweise übersetzte Teradata SQL:

Optional: Klicken Sie auf Ausführen, um die übersetzte Google SQL-Abfrage auszuführen.
Optional: Klicken Sie auf Mehr > SQL-Übersetzung deaktivieren, um zum SQL-Editor zurückzukehren.
Im Bereich Editor ist wieder ein einzelnes Feld zu sehen.
Gemini mit dem interaktiven SQL-Übersetzer verwenden
Sie können den interaktiven SQL-Übersetzer so konfigurieren, dass er die Übersetzung Ihres Quell-SQL-Codes anpasst. Dazu können Sie eigene Regeln für die Verwendung mit Gemini in einer YAML-Konfigurationsdatei angeben oder eine Konfigurations-YAML-Datei mit SQL-Objektmetadaten oder Informationen zur Objektzuordnung bereitstellen.
Gemini-optimierte Übersetzungsregeln erstellen und anwenden
Sie können die Art und Weise anpassen, wie der interaktive SQL-Übersetzer SQL übersetzt, indem Sie Übersetzungsregeln erstellen. Der interaktive SQL-Übersetzer passt seine Übersetzungen an alle Gemini-optimierten SQL-Übersetzungsregeln an, die Sie ihm zuweisen. So können Sie die Übersetzungsergebnisse an Ihre Migrationsanforderungen anpassen.
Wenn Sie eine Gemini-optimierte SQL-Übersetzungsregel erstellen möchten, können Sie sie entweder in der Console erstellen oder eine Konfigurations-YAML-Datei erstellen und in Cloud Storage hochladen.
Console
Wenn Sie eine Gemini-optimierte SQL-Übersetzungsregel für das Eingabe-SQL erstellen möchten, schreiben Sie eine SQL-Abfrage im Abfrageeditor, klicken Sie dann auf ASSIST > Anpassen. (Vorschau)
Wenn Sie eine Gemini-optimierte SQL-Übersetzungsregel für das Ausgabe-SQL erstellen möchten, führen Sie eine interaktive Übersetzung aus und klicken Sie dann auf ASSIST > Diese Übersetzung anpassen.
Wenn das Menü Anpassen angezeigt wird, fahren Sie mit den folgenden Schritten fort.
Verwenden Sie einen oder beide der folgenden Prompts, um eine Übersetzungsregel zu erstellen:
Geben Sie in der Eingabeaufforderung Muster suchen und ersetzen im Feld Ersetzen ein SQL-Muster sowie ein zu ersetzendes SQL-Muster an. Geben Sie es im Feld Mit ein.
Ein SQL-Muster kann eine beliebige Anzahl von Anweisungen, Klauseln oder Funktionen in einem SQL-Skript enthalten. Wenn Sie mit dieser Eingabeaufforderung eine Regel erstellen, werden mit der Gemini-optimierten SQL-Übersetzung alle Instanzen dieses SQL-Musters in der SQL-Abfrage identifiziert und dynamisch durch ein anderes SQL-Muster ersetzt. Sie können diese Eingabeaufforderung beispielsweise verwenden, um eine Regel zu erstellen, die alle Vorkommen von
months_between (X,Y)durchdate_diff(X,Y,MONTH)ersetzt.Geben Sie im Feld Änderung an der Ausgabe beschreiben eine Änderung an der SQL-Übersetzungsausgabe in natürlicher Sprache ein.
Wenn Sie mit dieser Eingabeaufforderung eine Regel erstellen, wird mit der Gemini-optimierten SQL-Übersetzung die Anfrage identifiziert und die angegebene Änderung an der SQL-Abfrage vorgenommen.
Klicken Sie auf Vorschau.
Sehen Sie sich im Dialogfeld Von Gemini generierte Vorschläge die Änderungen an, die mit der Gemini-optimierten SQL-Übersetzung basierend auf Ihrer Regel an der SQL-Abfrage vorgenommen wurden.
Optional: Wenn Sie diese Regel für zukünftige Übersetzungen verwenden möchten, klicken Sie das Diesen Prompt speichern... Kästchen an.
Regeln werden in der Standard-YAML-Konfigurationsdatei oder
__default.ai_config.yamlgespeichert. Diese YAML-Konfigurationsdatei wird im Cloud Storage-Ordner gespeichert, wie im Feld Speicherort der Übersetzungskonfiguration in den Übersetzungseinstellungen angegeben. Wenn der Speicherort der Übersetzungskonfiguration noch nicht festgelegt ist, wird ein Ordnerbrowser angezeigt, in dem Sie einen auswählen können. Für eine Konfigurations-YAML Datei gelten Größenbeschränkungen für Konfigurationsdateien.Klicken Sie auf Übernehmen, um die vorgeschlagenen Änderungen auf die SQL-Abfrage anzuwenden.
YAML
Wenn Sie eine Gemini-optimierte SQL-Übersetzungsregel erstellen möchten, können Sie eine auf Gemini basierende Konfigurations-YAML-Datei erstellen und in Cloud Storage hochladen. Weitere Informationen finden Sie unter Auf Gemini basierende Konfigurations-YAML-Datei erstellen.
Nachdem Sie eine Gemini-optimierte SQL-Übersetzungsregel in Cloud Storage hochgeladen haben, können Sie sie so anwenden:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Abfrageeditor auf Tools > Übersetzungseinstellungen.
Geben Sie im Feld Speicherort der Übersetzungskonfiguration den Pfad zur auf Gemini basierenden YAML-Datei an, die in einem Cloud Storage Ordner gespeichert ist.
Klicken Sie auf Speichern.
Führen Sie nach dem Speichern eine interaktive Übersetzung aus. Der interaktive Übersetzer schlägt Änderungen an Ihren Übersetzungen vor, die auf den Regeln in Ihrer YAML-Konfigurationsdatei basieren, sofern eine verfügbar ist.
Wenn basierend auf Ihrer Regel ein Gemini-Vorschlag für die Eingabe verfügbar ist, wird das Dialogfeld Vorgeschlagene Änderungen in der Vorschau ansehen angezeigt und zeigt mögliche Änderungen an der Übersetzungseingabe. (Vorschau)
Wenn basierend auf Ihrer Regel ein Gemini-Vorschlag für die Ausgabe verfügbar ist, wird im Codeeditor ein Benachrichtigungsbanner angezeigt. So sehen Sie sich diese Vorschläge an und übernehmen sie:
Klicken Sie auf einer der beiden Seiten des Codeeditors auf Assist > Vorschläge ansehen, um die vorgeschlagenen Änderungen an der entsprechenden Abfrage noch einmal aufzurufen.
Sehen Sie sich im Dialogfeld Von Gemini generierte Vorschläge die Änderungen an, die von Gemini basierend auf Ihrer Übersetzungsregel an der SQL-Abfrage vorgenommen wurden.
Klicken Sie auf Übernehmen, um die vorgeschlagenen Änderungen auf die Übersetzungsausgabe anzuwenden.
Auf Gemini basierende Konfigurations-YAML-Datei aktualisieren
So aktualisieren Sie eine vorhandene Konfigurations-YAML-Datei:
Klicken Sie im Dialogfeld In Gemini generierte Vorschläge auf Konfigurationsdatei für Gemini-Regeln anzeigen.
Wenn der Konfigurationseditor angezeigt wird, wählen Sie die Konfigurations-YAML-Datei aus, die Sie bearbeiten möchten.
Nehmen Sie die gewünschten Änderungen vor und klicken Sie auf Speichern.
Klicken Sie auf Fertig , um den YAML-Editor zu schließen.
Führen Sie eine interaktive Übersetzung aus, um die aktualisierte Regel anzuwenden.
Übersetzung erklären
Nachdem Sie eine interaktive Übersetzung ausgeführt haben, können Sie eine von Gemini generierte Texterklärung anfordern. Der generierte Text enthält eine Zusammenfassung der übersetzten SQL-Abfrage. Gemini identifiziert auch Übersetzungsunterschiede und Inkonsistenzen zwischen der Quell-SQL-Abfrage und der übersetzten Google SQL-Abfrage.
So erhalten Sie eine von Gemini generierte Erklärung zur SQL-Übersetzung:
Wenn Sie eine von Gemini generierte Erklärung zur SQL-Übersetzung erstellen möchten, klicken Sie auf Assist und dann auf Diese Übersetzung erklären.
Mit einer Batchübersetzungskonfigurations-ID übersetzen
Sie können eine interaktive Abfrage mit denselben Übersetzungskonfigurationen wie ein Batchübersetzungsjob ausführen, indem Sie eine Batchübersetzungskonfigurations-ID angeben.
- Klicken Sie im Abfrageeditor auf Tools > Übersetzungseinstellungen.
Geben Sie im Feld Übersetzungskonfigurations-ID eine Batchübersetzungskonfigurations-ID an, um dieselbe Übersetzungskonfiguration aus einem abgeschlossenen BigQuery-Batch-Migrationsjob anzuwenden.
Wählen Sie auf der Seite SQL-Übersetzung einen Batchübersetzungsjob aus und klicken Sie dann auf den Tab Übersetzungskonfiguration, um die Batch-Konfigurations-ID eines Jobs zu ermitteln. Die Konfigurations-ID für die Batchübersetzung wird als Ressourcenname aufgeführt.
Klicken Sie auf Speichern.
Mit zusätzlichen Konfigurationen übersetzen
Sie können eine interaktive Abfrage mit zusätzlichen Übersetzungskonfigurationen ausführen, indem Sie Konfigurations-YAML-Dateien angeben, die in einem Cloud Storage-Ordner gespeichert sind. Übersetzungskonfigurationen können SQL-Objektmetadaten oder Informationen zur Objektzuordnung aus der Quelldatenbank enthalten, die die Übersetzungsqualität verbessern können. Nehmen Sie beispielsweise DDL-Informationen oder -Schemas aus der Quelldatenbank auf, um die Qualität der interaktiven SQL-Übersetzung zu verbessern.
So geben Sie Übersetzungskonfigurationen an, indem Sie einen Speicherort für die Quelldateien der Übersetzungskonfiguration angeben:
- Klicken Sie im Abfrageeditor auf Tools > Übersetzungseinstellungen.
Geben Sie im Feld Speicherort der Übersetzungskonfiguration den Pfad zu den Konfigurationsdateien für die Übersetzung an, die in einem Cloud Storage-Ordner gespeichert ist.
Der interaktive BigQuery-SQL-Übersetzer unterstützt ZIP-Dateien mit Metadaten, die Übersetzungsmetadaten und Objektnamenzuordnung enthalten. Informationen zum Hochladen von Dateien in Cloud Storage finden Sie unter Objekte aus einem Dateisystem hochladen.
Klicken Sie auf Speichern.
Größenbeschränkungen für Konfigurationsdateien
Wenn Sie eine Konfigurationsdatei für die Übersetzung mit dem interaktiven BigQuery-SQL-Übersetzer verwenden, muss die komprimierte Metadatendatei oder YAML-Konfigurationsdatei kleiner als 50 MB sein. Wenn die Datei größer als 50 MB ist, überspringt der interaktive Übersetzer diese Konfigurationsdatei während der Übersetzung und erstellt eine Fehlermeldung wie die folgende:
CONFIG ERROR: Skip reading file "gs://metadata-file.zip". File size (150,000,000 bytes)
exceeds limit (50 MB).
Eine Methode zur Reduzierung der Größe der Metadatendatei besteht darin, mit den Flags --database oder --schema nur Metadaten für Datenbanken oder Schemas zu extrahieren, die für die Abfragen der Übersetzungseingabe relevant sind. Weitere Informationen zur Verwendung dieser Flags beim Generieren von Metadatendateien finden Sie unter Globale Flags.
Übersetzungsfehler beheben
Die folgenden Fehler treten häufig bei der Verwendung des interaktiven SQL-Übersetzers auf.
Übersetzungsprobleme RelationNotFound oder AttributeNotFound
Nachdem Sie eine Abfrage mit dem interaktiven SQL-Übersetzer übersetzt haben, kann es zu einer fehlgeschlagenen Übersetzung mit dem RelationNotFound oder AttributeNotFound Fehler kommen.
Sie finden fehlgeschlagene Übersetzungen auf der Seite Übersetzungsdetails auf dem Tab Logmeldungen.
Geben Sie die Anweisungen zur Datendefinitionssprache (Data Definition Language, DDL) für alle Tabellen ein, die in einer Abfrage vor der Abfrage selbst verwendet wurden, um eine möglichst genaue Übersetzung zu gewährleisten. Wenn Sie beispielsweise die Amazon Redshift-Abfrage select table1.field1, table2.field1
from table1, table2 where table1.id = table2.id; übersetzen möchten, geben Sie die folgenden SQL-Anweisungen in den interaktiven SQL-Übersetzer ein:
create table schema1.table1 (id int, field1 int, field2 varchar(16));
create table schema1.table2 (id int, field1 varchar(30), field2 date);
select table1.field1, table2.field1
from table1, table2
where table1.id = table2.id;
Übersetzungsprobleme mit Gemini beheben
Um fehlgeschlagene Übersetzungsjobs mit den Fehlern RelationNotFound oder AttributeNotFound zu beheben, können Sie auch versuchen, diese Probleme mit Gemini zu beheben. Gehen Sie dazu so vor:
Rufen Sie die Seite Übersetzungsdetails auf und öffnen Sie den Tab Logmeldungen.
Klicken Sie in der Spalte Kategorie auf die Abfrage mit der Meldung
RelationNotFoundoderAttributeNotFound.Klicken Sie auf Vorgeschlagene Korrektur.
Klicken Sie auf Übernehmen.
Klicken Sie auf Übersetzen , um die Abfrage noch einmal zu übersetzen.
Preise
Für die Verwendung des interaktiven SQL-Übersetzers fallen keine Kosten an. Für die Speicherung von Eingabe- und Ausgabedateien werden jedoch die normalen Gebühren berechnet. Weitere Informationen finden Sie unter Speicherpreise.
Nächste Schritte
Mehr über die folgenden Schritte bei der Data Warehouse-Migration erfahren:
- Übersicht über die Migration
- Migrationsbewertung
- Übersicht über Schema- und Datenübertragung
- Batch-SQL-Übersetzung
- Datenpipelines
- Datensicherheit und Governance
- Datenvalidierungstool