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 -Konsole vertraut sind.
Mit der Funktion für Übersetzungsregeln können Sie anpassen, wie der interaktive SQL-Übersetzer SQL übersetzt.
Hinweis
Wenn Ihr Google Cloud-Befehlszeilenprojekt vor dem 15. Februar 2022 erstellt wurde, aktivieren Sie die BigQuery Migration API so:
Rufen Sie in der Google Cloud Console die Seite BigQuery Migration API auf.
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
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 des interaktiven Übersetzers benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Verwenden des interaktiven Übersetzers erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um den interaktiven Übersetzer zu verwenden:
-
bigquerymigration.workflows.create -
bigquerymigration.workflows.get
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
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.getbigquerymigration.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 die folgenden SQL-Dialekte in GoogleSQL übersetzen:
- Amazon Redshift-SQL
- Apache HiveQL und Beeline-Befehlszeile
- IBM Netezza SQL und NZPLSQL
- Teradata and 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 Impala SQL
- Apache Spark SQL
- Azure Synapse-T-SQL
- GoogleSQL (BigQuery)
- Greenplum SQL
- IBM DB2 SQL
- MySQL SQL
- Oracle SQL, PL/SQL, Exadata
- PostgreSQL-SQL
- Trino oder PrestoSQL
- Snowflock-SQL
- SQL Server T-SQL
- SQLite
- Vertica SQL
Nicht unterstützte SQL-Funktionen mit Hilfs-UDFs verarbeiten
Beim Übersetzen von SQL aus einem Quelldialekt in BigQuery gibt es für einige Funktionen möglicherweise keine direkte Entsprechung. Um dieses Problem zu beheben, stellt der BigQuery Migration Service (und die BigQuery-Community im Allgemeinen) benutzerdefinierte Hilfsfunktionen (UDFs) bereit, die das Verhalten dieser nicht unterstützten Funktionen des Quelldialekts nachbilden.
Diese benutzerdefinierten Funktionen sind häufig im öffentlichen Dataset bqutil zu finden, sodass übersetzte Anfragen anfangs im Format bqutil.<dataset>.<function>() darauf verweisen können. Beispiel: bqutil.fn.cw_count()
Wichtige Hinweise für Produktionsumgebungen:
bqutil bietet zwar einen praktischen Zugriff auf diese Hilfs-UDFs für die erste Übersetzung und das Testen, die direkte Nutzung von bqutil für Produktionsarbeitslasten wird jedoch aus mehreren Gründen nicht empfohlen:
- Versionsverwaltung: Im Projekt
bqutilwird die aktuelle Version dieser UDFs gehostet. 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 funktionsgefährdenden Änderungen in Ihren Produktionsabfragen führen, wenn die Logik einer UDF aktualisiert wird. - Abhängigkeitsisolation: Wenn Sie UDFs in Ihrem eigenen Projekt bereitstellen, wird Ihre Produktionsumgebung vor externen Änderungen geschützt.
- Anpassung: Möglicherweise müssen Sie diese benutzerdefinierten Funktionen ändern oder optimieren, damit sie besser zu Ihrer spezifischen Geschäftslogik oder Ihren Leistungsanforderungen passen. Das ist nur möglich, wenn sie sich in Ihrem eigenen Projekt befinden.
- Sicherheit und Governance: Die Sicherheitsrichtlinien Ihrer Organisation schränken möglicherweise den direkten Zugriff auf öffentliche Datasets wie
bqutilfür die Verarbeitung von Produktionsdaten ein. Das Kopieren von UDFs in Ihre kontrollierte Umgebung entspricht diesen Richtlinien.
Hilfs-UDFs in Ihrem Projekt bereitstellen:
Für eine zuverlässige und stabile Verwendung in der Produktion sollten Sie diese Hilfs-UDFs in Ihrem eigenen Projekt und Dataset bereitstellen. So haben Sie die volle Kontrolle über ihre Version, Anpassung und ihren Zugriff. Eine detaillierte Anleitung zur Bereitstellung dieser UDFs finden Sie im Bereitstellungsleitfaden für UDFs auf GitHub. Dieser Leitfaden enthält die erforderlichen Skripts und Schritte zum Kopieren der UDFs in Ihre Umgebung.
Standorte
Der interaktive SQL-Übersetzer ist an den folgenden Verarbeitungsorten verfügbar:
| Beschreibung der Region | Name der Region | Details | |
|---|---|---|---|
| Asiatisch-pazifischer Raum | |||
| Bangkok | asia-southeast3 |
||
| Delhi | asia-south2 |
||
| Hongkong | asia-east2 |
||
| Jakarta | asia-southeast2 |
||
| Melbourne | australia-southeast2 |
||
| Mumbai | asia-south1 |
||
| Osaka | asia-northeast2 |
||
| Seoul | asia-northeast3 |
||
| Singapur | asia-southeast1 |
||
| Sydney | australia-southeast1 |
||
| Taiwan | asia-east1 |
||
| Tokio | asia-northeast1 |
||
| Europa | |||
| Belgien | europe-west1 |
|
|
| Berlin | europe-west10 |
||
| EU (multiregional) | eu |
||
| Finnland | europe-north1 |
|
|
| Frankfurt | europe-west3 |
||
| London | europe-west2 |
|
|
| Madrid | europe-southwest1 |
|
|
| Mailand | europe-west8 |
||
| Niederlande | europe-west4 |
|
|
| Paris | europe-west9 |
|
|
| Stockholm | europe-north2 |
|
|
| Turin | europe-west12 |
||
| Warschau | europe-central2 |
||
| Zürich | europe-west6 |
|
|
| Amerika | |||
| Columbus, Ohio | us-east5 |
||
| Dallas | us-south1 |
|
|
| Iowa | us-central1 |
|
|
| Las Vegas | us-west4 |
||
| Los Angeles | us-west2 |
||
| Mexiko | northamerica-south1 |
||
| Northern Virginia | us-east4 |
||
| Oregon | us-west1 |
|
|
| Québec | northamerica-northeast1 |
|
|
| São Paulo | southamerica-east1 |
|
|
| Salt Lake City | us-west3 |
||
| Santiago | |||