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. Das Dokument richtet sich an Nutzer, die mit der Google Cloud Console vertraut sind.

Wenn Ihr Standort unterstützt wird, können Sie mit dem Feature für Übersetzungsregeln (Vorschau) die Art und Weise anpassen, wie der interaktive SQL-Übersetzer SQL übersetzt. “

Hinweise

Wenn Ihr Google Cloud-Befehlszeilenprojekt vor dem 15. Februar 2022 erstellt wurde, aktivieren Sie die BigQuery Migration API so:

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery Migration API auf.

    Zu „BigQuery Migration API“

  2. Klicken Sie auf Aktivieren.

Berechtigungen und Rollen

In diesem Abschnitt werden die IAM-Berechtigungen (Identity and Access Management) beschrieben, die Sie zur Verwendung des interaktiven SQL-Übersetzers benötigen, einschließlich der vordefinierten IAM-Rollen, die diese Berechtigungen gewähren. In diesem Abschnitt werden auch die Berechtigungen beschrieben, die zum Konfigurieren zusätzlicher Übersetzungskonfigurationen erforderlich sind.

Berechtigungen zur Verwendung des interaktiven SQL-Übersetzers

Zur Verwendung des interaktiven SQL-Übersetzers benötigen Sie die folgende Berechtigung:

  • bigquerymigration.translation.translate

Die folgende vordefinierte IAM-Rolle bietet die Berechtigung, die Sie für die Verwendung des interaktiven SQL-Übersetzers benötigen:

  • roles/bigquerymigration.translationUser

Zum Ausführen einer Abfrage beim interaktiven SQL-Übersetzer benötigen Sie die gleichen Berechtigungen wie für jede Abfrage in BigQuery. Wenn Sie beispielsweise eine Tabelle abfragen möchten, müssen Sie über die Berechtigung zum Lesen der Daten der Tabelle verfügen. Weitere Informationen finden Sie unter BigQuery-Daten abfragen.

Berechtigungen zum Konfigurieren zusätzlicher Übersetzungskonfigurationen

Sie können zusätzliche Übersetzungskonfigurationen mithilfe der Felder Übersetzungs-Konfigurations-ID und Quellspeicherort der Übersetzungskonfiguration in den Übersetzungseinstellungen konfigurieren. Zum Konfigurieren dieser Übersetzungskonfigurationen benötigen Sie die folgenden Berechtigungen:

  • bigquerymigration.workflows.get
  • bigquerymigration.workflows.list

Die folgende vordefinierte IAM-Rolle enthält die Berechtigungen, die Sie zum Konfigurieren zusätzlicher Übersetzungskonfigurationen benötigen:

  • roles/bigquerymigration.viewer

Weitere Informationen zu BigQuery IAM finden Sie unter Zugriffssteuerung mit IAM.

Unterstützte SQL-Dialekte

Der interaktive BigQuery-SQL-Übersetzer kann den folgenden SQL-Dialekt in GoogleSQL übersetzen:

  • Amazon Redshift-SQL
  • Apache HiveQL und Beeline-Befehlszeile
  • IBM Netezza SQL und NZPLSQL
  • Teradata und Teradata Vantage
    • SQL
    • Basic Teradata Query (BTEQ)
    • Teradata Parallel Transport (TPT)

Darüber hinaus wird die Übersetzung der folgenden SQL-Dialekte in der Vorschau unterstützt:

  • Apache Spark SQL
  • Azure Synapse-T-SQL
  • MySQL SQL
  • Oracle SQL, PL/SQL, Exadata
  • PostgreSQL-SQL
  • Trino oder PrestoSQL
  • Snowflock-SQL
  • SQL Server T-SQL
  • SQLite
  • Vertica SQL

Standorte

Der interaktive SQL-Übersetzer ist an den folgenden Verarbeitungsstandorten verfügbar:

  • us USA (mehrere Regionen)
  • eu EU (mehrere Regionen)
  • southamerica-east1 (São Paulo)
  • us-central1 (Iowa)
  • asia-northeast1 (Tokio)
  • asia-south1 (Mumbai)
  • asia-southeast1 (Singapur)
  • australia-southeast1 (Sydney)
  • europe-central2 (Warschau)
  • europe-north1 (Finnland)
  • europe-west1 (Belgien)
  • europe-west2 (London)
  • europe-west3 (Frankfurt)

Das Feature für Übersetzungsregeln ist an den folgenden Verarbeitungsstandorten verfügbar:

  • us USA (mehrere Regionen)
  • eu EU (mehrere Regionen)
  • us-central1 (Iowa)
  • europe-west4 (Niederlande)

Abfrage in Google SQL übersetzen

Führen Sie diese Schritte aus, um eine Abfrage in Google SQL zu übersetzen:

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Klicken Sie im Bereich Editor auf Mehr und wählen Sie dann Übersetzungseinstellungen aus.

  3. Wählen Sie unter Quelldialekt den SQL-Dialekt aus, den Sie übersetzen möchten.

  4. 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 eu aus.

  5. Klicken Sie auf Speichern.

  6. Klicken Sie im Bereich Editor auf Mehr und wählen Sie dann SQL-Übersetzung aktivieren aus.

    Der Bereich Bearbeiter wird in zwei Bereiche unterteilt.

  7. Geben Sie im linken Bereich die Abfrage ein, die übersetzt werden soll.

  8. Klicken Sie auf Übersetzen.

    BigQuery übersetzt Ihre Abfrage in GoogleSQL und zeigt sie im rechten Bereich an. Der folgende Screenshot zeigt beispielsweise übersetzte Teradata SQL:

    Anzeigen einer in GoogleSQL übersetzten Teradata-SQL-Abfrage

  9. Optional: Klicken Sie auf Ausführen, um die übersetzte GoogleSQL-Abfrage auszuführen.

  10. Optional: Klicken Sie auf Mehr und wählen Sie dann SQL-Übersetzung deaktivieren aus, um zum SQL-Editor zurückzukehren.

    Im Bereich Editor ist wieder ein einzelnes Feld zu sehen.

Übersetzungsregel erstellen

Sie können die Art und Weise anpassen, wie der interaktive SQL-Übersetzer SQL übersetzt. Dazu erstellen Sie Übersetzungsregeln. Der interaktive SQL-Übersetzer passt seine Übersetzungen anhand der von Ihnen zugewiesenen erweiterten SQL-Übersetzungsregeln an, sodass Sie die Übersetzungsergebnisse an Ihre Migrationsanforderungen anpassen können. Dieses Feature wird nur an bestimmten Standorten unterstützt.

So erstellen Sie eine erweiterte SQL-Übersetzungsregel für Gemini:

  1. Klicken Sie nach dem Ausführen einer interaktiven Übersetzung auf Anpassen.

    Schaltfläche "Übersetzung anpassen"

  2. Verwenden Sie eine oder beide der folgenden Prompts, um eine Übersetzungsregel zu erstellen:

    • Geben Sie in der Eingabeaufforderung SQL-Muster durch andere ersetzen im Feld Ersetzen ein SQL-Muster sowie ein zu ersetzendes SQL-Muster an. Geben Sie es im Feld With (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, identifiziert die erweiterte SQL-Übersetzung für Gemini alle Instanzen dieses SQL-Musters in der Übersetzungsausgabe und ersetzt sie dynamisch durch ein anderes SQL-Muster. Mit dieser Eingabeaufforderung können Sie beispielsweise eine Regel erstellen, die alle Vorkommen von months_between (X,Y) durch date_diff(X,Y,MONTH) ersetzt.

    • Beschreiben Sie im Feld Änderung der Übersetzungsausgabe beschreiben eine Änderung der SQL-Übersetzungsausgabe in natürlicher Sprache.

      Wenn Sie mit dieser Eingabeaufforderung eine Regel erstellen, identifiziert die erweiterte SQL-Übersetzung von Gemini die Anfrage und nimmt die angegebene Änderung an der Übersetzungsausgabe vor.

  3. Klicken Sie auf Preview (Vorschau).

  4. Prüfen Sie im Dialogfeld Vorschau der Änderungsvorschläge die Änderungen, die von der erweiterten SQL-Übersetzung von Gemini in die Übersetzungsausgabe basierend auf Ihrer Regel vorgenommen wurden.

  5. Optional: Klicken Sie auf das Kästchen Regel hinzufügen..., um diese Regel für zukünftige Übersetzungen hinzuzufügen.

    Regeln werden in einer YAML-Konfigurationsdatei gespeichert, wie in den Übersetzungseinstellungen im Feld Speicherort der Übersetzungskonfiguration angegeben. Weitere Informationen zu YAML-Konfigurationsdateien finden Sie unter Abfrage mit zusätzlichen Konfigurationen übersetzen. Eine YAML-Konfigurationsdatei kann bis zu zehn Übersetzungsregeln unterstützen.

  6. Klicken Sie auf Übernehmen, um die vorgeschlagenen Änderungen auf die Übersetzungsausgabe anzuwenden.

Leistung interaktiver Übersetzungsjobs verbessern

Aktivieren Sie die konsolidierte Übersetzungs-API, um die Stabilität zu verbessern und Netzwerkzeitüberschreitungsprobleme bei lang andauernden interaktiven Übersetzungsjobs zu verhindern, z. B. bei Verwendung eines großen Metadatendateipakets. Die konsolidierte Übersetzungs-API kombiniert den interaktiven Übersetzer und den Batch-Übersetzer in einem einzigen Workflow, wodurch die Effizienz und Stabilität Ihrer interaktiven Übersetzungsjobs verbessert wird.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle MigrationWorkflow-Bearbeiter (roles/bigquerymigration.editor) für die Ressource parent zu gewähren, um die Berechtigungen zu erhalten, die Sie für die Verwendung der konsolidierten Übersetzungs-API mit dem interaktiven Übersetzer benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Verwenden der konsolidierten Übersetzungs-API mit dem interaktiven Übersetzer erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um die konsolidierte Übersetzungs-API mit dem interaktiven Übersetzer zu verwenden:

  • bigquerymigration.workflows.create
  • bigquerymigration.workflows.get

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Konsolidierte Übersetzungs-API aktivieren

Füllen Sie das Formular für die Zulassungsliste für die konsolidierte Übersetzungs-API aus, um die konsolidierte Übersetzungs-API für den interaktiven Übersetzer zu aktivieren. Weitere Informationen zur Verwendung der konsolidierten Übersetzungs-API mit dem Batch-SQL-Übersetzer finden Sie in der API-Anleitung unter Übersetzungsjob senden.

Abfrage mit zusätzlichen Konfigurationen übersetzen

Sie können eine interaktive Abfrage mit zusätzlichen Übersetzungskonfigurationen ausführen. Stellen Sie dazu eine Batchübersetzungskonfigurations-ID oder mit in einem Cloud Storage-Ordner gespeicherten Konfigurationsdateien bereit. Ü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 eine Batchübersetzungskonfigurations-ID bereitstellen:

  1. Klicken Sie im Abfrageeditor auf Mehr > Übersetzungseinstellungen.
  2. 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.

  3. Klicken Sie auf Speichern.

So geben Sie Übersetzungskonfigurationen an, indem Sie einen Speicherort für die Quelldateien der Übersetzungskonfiguration angeben:

  1. Klicken Sie im Abfrageeditor auf Mehr > Übersetzungseinstellungen.
  2. 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 Konfigurationsdateien mit Übersetzungsmetadaten und Objektnamenzuordnung. Informationen zum Hochladen von Dateien in Cloud Storage finden Sie unter Objekte aus einem Dateisystem hochladen.

  3. 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

Bei der Verwendung des interaktiven SQL-Übersetzers können die folgenden Fehler auftreten.

RelationNotFound- oder AttributeNotFound-Übersetzungsprobleme

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;

Sie können nicht nur DDLs hinzufügen, sondern auchRelationNotFound oderAttributeNotFound Fehler nachMetadaten-Extrahierer zum Generieren von Metadatenpaketen verwenden um sicherzustellen, dass alle Objektdefinitionen vorhanden sind. Sie können dann die Metadatendatei dem Speicherort der Übersetzungskonfigurationsquelle hinzufügen, wie unter Abfrage mit zusätzlichen Konfigurationen übersetzen beschrieben. Durch das Hinzufügen von Metadaten können die meisten Übersetzungsfehler sowie andere Fehler indirekt durch ein Fehlen von Metadaten behoben werden.

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: