Code mit dem Batch-SQL-Übersetzer migrieren

In diesem Dokument wird beschrieben, wie Sie mit dem Batch-SQL-Übersetzer in BigQuery Skripts, die in anderen SQL-Dialekten geschrieben sind, in Google SQL-Abfragen übersetzen. Das Dokument richtet sich an Nutzer, die mit der Google Cloud Console vertraut sind.

Der Batch-SQL-Übersetzer ist Teil des BigQuery-Migrationsdienstes. Der Batch-SQL-Übersetzer kann die folgenden SQL-Dialekte in Google SQL ü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

Erforderliche Berechtigungen

Um den BigQuery-Migrationsdienst zu aktivieren, benötigen Sie die folgenden Berechtigungen für das Projekt:

  • resourcemanager.projects.get
  • serviceusage.services.enable
  • serviceusage.services.get

Um auf den BigQuery-Migrationsdienst zugreifen und ihn verwenden zu können, benötigen Sie die folgenden Berechtigungen für das Projekt:

  • bigquerymigration.workflows.create
  • bigquerymigration.workflows.get
  • bigquerymigration.workflows.list
  • bigquerymigration.workflows.delete
  • bigquerymigration.subtasks.get
  • bigquerymigration.subtasks.list

    Alternativ können Sie für diese Berechtigungen die folgenden Rollen zuweisen:

    • bigquerymigration.viewer – Lesezugriff.
    • bigquerymigration.editor – Lese-/Schreibzugriff.

So greifen Sie auf die Cloud Storage-Buckets für Eingabe- und Ausgabedateien zu:

  • storage.objects.get für den Cloud Storage-Quell-Bucket
  • storage.objects.list für den Cloud Storage-Quell-Bucket
  • storage.objects.create für den Cloud Storage-Ziel-Bucket

Sie können alle oben genannten erforderlichen Cloud Storage-Berechtigungen durch Zuweisen der folgenden Rollen erteilen:

  • roles/storage.objectAdmin
  • roles/storage.admin

Standorte

Der Batch-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)

Hinweise

Führen Sie die folgenden Schritte aus, bevor Sie einen Übersetzungsjob senden:

  1. Aktivieren Sie die BigQuery Migration API.
  2. Erfassen Sie die Quelldateien mit den SQL-Skripts und Abfragen, die übersetzt werden sollen.
  3. Optional. Erstellen Sie eine Metadatendatei, um die Genauigkeit der Übersetzung zu verbessern.
  4. Optional. Entscheiden Sie, ob SQL-Objektnamen in den Quelldateien neuen Namen in BigQuery zugeordnet werden müssen. Legen Sie fest, welche Namenszuordnungsregeln verwendet werden sollen, wenn dies erforderlich ist.
  5. Entscheiden Sie, welche Methode zum Senden des Übersetzungsjobs verwendet werden soll.
  6. Quelldateien in Cloud Storage hochladen

BigQuery Migration API aktivieren

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.

Quelldateien erfassen

Quelldateien müssen Textdateien sein, die gültigen SQL-Code für den Quelldialekt enthalten. Quelldateien können auch Kommentare enthalten. Versuchen Sie mithilfe der verfügbaren Methoden, die SQL-Gültigkeit zu prüfen.

Metadatendateien erstellen

Damit der Dienst genauere Übersetzungsergebnisse generieren kann, empfehlen wir die Bereitstellung von Metadatendateien. Dies ist jedoch nicht obligatorisch.

Zum Generieren der Metadateninformationen können Sie das dwh-migration-dumper-Befehlszeilentool verwenden oder Ihre eigenen Metadatendateien bereitstellen. Sobald Metadatendateien vorbereitet sind, können Sie diese zusammen mit den Quelldateien in den Quellordner für die Übersetzung aufnehmen. Der Übersetzer erkennt sie automatisch und nutzt sie zum Übersetzen von Quelldateien. Sie müssen keine zusätzlichen Einstellungen konfigurieren, um dies zu aktivieren.

Informationen zum Generieren von Metadateninformationen mit dem dwh-migration-dumper-Tool finden Sie unter Metadaten für die Übersetzung generieren.

Erfassen Sie zur Bereitstellung Ihrer eigenen Metadaten die DDL-Anweisungen (Data Definition Language) für die SQL-Objekte in Ihrem Quellsystem in separaten Textdateien.

SQL-Objektnamen zuordnen

Sie können während der Batchübersetzung optional eine Zuordnung von Ausgabenamen ausführen. Wenn Sie eine Ausgabenamenzuordnung verwenden, geben Sie Namenszuordnungsregeln an, die die Namen von SQL-Objekten im Quellsystem in neue Namen in BigQuery ändern. Beispiel: In Ihrem Quellsystem befindet sich das Objekt schema1.table1 und Sie möchten, dass dieses Objekt in BigQuery den Namen project1.dataset1.table1 hat. Wenn Sie eine Ausgabenamenzuordnung verwenden, sollten Sie Ihre Namenszuordnungsregeln definieren, bevor Sie einen Batchübersetzungsjob starten. Sie können diese Regeln beim Konfigurieren des Jobs manuell eingeben oder eine JSON-Datei mit den Namenszuordnungsregeln erstellen und diese dann hochladen.

Entscheiden, wie der Übersetzungsjob gesendet werden soll

Zum Senden eines Batchübersetzungsjobs haben Sie drei Möglichkeiten:

  • Batch-Übersetzungsclient: Konfigurieren Sie einen Job, indem Sie die Einstellungen in einer Konfigurationsdatei ändern und den Job über die Befehlszeile senden. Bei diesem Ansatz müssen Sie die Quelldateien nicht manuell in Cloud Storage hochladen. Der Client verwendet während der Verarbeitung des Übersetzungsjobs weiterhin Cloud Storage zum Speichern von Dateien.

    Der Batchübersetzungsclient ist ein Open-Source-Python-Client, mit dem Sie Quelldateien auf Ihrem lokalen Computer übersetzen und in ein lokales Verzeichnis ausgeben können. Sie konfigurieren den Client für die grundlegende Verwendung, indem Sie einige Einstellungen in der Konfigurationsdatei ändern. Wenn Sie möchten, können Sie den Client auch so konfigurieren, dass komplexere Aufgaben wie die Makroersetzung und die Vor- und Nachbearbeitung von Übersetzungseingaben und -ausgaben erfüllt werden. Weitere Informationen finden Sie in der Readme-Datei des Batchübersetzungsclients.

  • Google Cloud Console: Job über eine Benutzeroberfläche konfigurieren und senden. Bei diesem Ansatz müssen Sie Quelldateien in Cloud Storage hochladen.

  • BigQuery Migration API: Konfigurieren und senden Sie einen Job programmatisch. Bei diesem Ansatz müssen Sie Quelldateien in Cloud Storage hochladen.

YAML-Konfigurationsdateien erstellen

Optional können Sie YAML-Konfigurationsdateien erstellen und verwenden, um Ihre Batchübersetzungen anzupassen. Mit diesen Dateien kann Ihre Übersetzungsausgabe auf verschiedene Arten transformiert werden. Sie können beispielsweise eine YAML-Konfigurationsdatei erstellen, um die Groß-/Kleinschreibung eines SQL-Objekts während der Übersetzung zu ändern.

Wenn Sie die Google Cloud Console oder die BigQuery Migration API für einen Batchübersetzungsjob verwenden möchten, können Sie die YAML-Konfigurationsdatei in den Cloud Storage-Bucket mit den Quelldateien hochladen.

Wenn Sie den Batchübersetzungsclient verwenden möchten, können Sie die YAML-Konfigurationsdatei im lokalen Ordner für die Übersetzung speichern.

Eingabedateien nach Cloud Storage hochladen

Wenn Sie die Cloud Console oder die BigQuery Migration API verwenden möchten, um einen Übersetzungsjob auszuführen, müssen Sie die Quelldateien mit den Abfragen und Skripts hochladen, die in Cloud Storage übersetzt werden sollen. Sie können auch alle Metadatendateien oder YAML-Konfigurationsdateien in denselben Cloud Storage-Bucket mit den Quelldateien hochladen. Weitere Informationen zum Erstellen von Buckets und zum Hochladen von Dateien nach Cloud Storage erhalten Sie unter Buckets erstellen und Objekte aus einem Dateisystem hochladen.

Übersetzungsjob senden

Führen Sie die folgenden Schritte aus, um einen Übersetzungsjob zu starten, seinen Fortschritt anzuzeigen und die Ergebnisse anzuzeigen.

Batch-Übersetzungsclient

  1. Installieren Sie den Batchübersetzungsclient und die Google Cloud-Befehlszeile.

  2. Generieren Sie eine Datei mit den gcloud-Anmeldedaten.

  3. Öffnen Sie im Installationsverzeichnis des Batchübersetzungsclients mit einem Texteditor Ihrer Wahl die Datei config.yaml und ändern Sie die folgenden Einstellungen:

    • project_number: Geben Sie die Projektnummer des Projekts ein, das Sie für den Batchübersetzungsjob verwenden möchten. Sie finden sie im Bereich Projektinformationen auf der Begrüßungsseite der Google Cloud Console für das Projekt.
    • gcs_bucket: Geben Sie den Namen des Cloud Storage-Buckets ein, den der Batchübersetzungsclient zum Speichern von Dateien während der Verarbeitung des Übersetzungsjobs verwenden soll.
    • input_directory: Geben Sie den absoluten oder relativen Pfad zum Verzeichnis ein, das die Quelldateien und Metadatendateien enthält.
    • output_directory: Geben Sie den absoluten oder relativen Pfad zum Zielverzeichnis für die übersetzten Dateien ein.
  4. Speichern Sie die Änderungen und schließen Sie die config.yaml-Datei.

  5. Platzieren Sie die Quell- und Metadatendateien im Eingabeverzeichnis.

  6. Führen Sie den Batchübersetzungsclient mit dem folgenden Befehl aus:

    bin/dwh-migration-client
    

    Nachdem der Übersetzungsjob erstellt wurde, können Sie den Status in der Liste der Übersetzungsjobs in der Cloud Console sehen.

  7. Optional. Sobald der Übersetzungsjob abgeschlossen ist, löschen Sie die Dateien, die der Job im angegebenen Cloud Storage-Bucket erstellt hat, um Speicherkosten zu vermeiden.

Console

Bei diesen Schritten wird davon ausgegangen, dass Sie bereits Quelldateien in einen Cloud Storage-Bucket hochgeladen haben.

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

    BigQuery aufrufen

  2. Klicken Sie im Navigationsbereich unter Migration auf SQL-Übersetzung.

  3. Klicken Sie auf Übersetzung starten.

  4. Füllen Sie das Dialogfeld für die Übersetzungskonfiguration aus.

    1. Geben Sie einen Namen für den Übersetzungsjob unter Anzeigename ein. Der Name kann Buchstaben, Ziffern und Unterstriche enthalten.
    2. 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. Der Übersetzungsjob funktioniert am besten, wenn Sie denselben Speicherort wie der Quelldatei-Bucket auswählen.
    3. Wählen Sie unter Quelldialekt den SQL-Dialekt aus, den Sie übersetzen möchten.
    4. Wählen Sie als Zieldialekt BigQuery aus.
  5. Klicken Sie auf Next (Weiter).

  6. Geben Sie unter Quellspeicherort den Pfad zum Cloud Storage-Ordner mit den zu übersetzenden Dateien an. Sie können den Pfad im Format bucket_name/folder_name/ eingeben oder die Option Durchsuchen verwenden.

  7. Klicken Sie auf Next (Weiter).

  8. Geben Sie unter Zielspeicherort den Pfad zum Cloud Storage-Zielordner für die übersetzten Dateien an. Sie können den Pfad im Format bucket_name/folder_name/ eingeben oder die Option Durchsuchen verwenden.

  9. Wenn Sie Übersetzungen ausführen, für die keine Standardobjektnamen oder keine Quell-zu-Ziel-Namenszuordnung angegeben sein müssen, fahren Sie mit Schritt 11 fort. Klicken Sie andernfalls auf Weiter.

  10. Füllen Sie die optionalen Einstellungen aus, die Sie benötigen.

    1. Optional. Geben Sie bei Standarddatenbank einen Standarddatenbanknamen ein, der mit den Quelldateien verwendet werden soll. Der Übersetzer verwendet diesen Standarddatenbanknamen, um die voll qualifizierten Namen der SQL-Objekte aufzulösen, bei denen der Datenbankname fehlt.

    2. Optional. Geben Sie unter Schemasuchpfad ein dann zu suchendes Schema an, wenn der Übersetzer vollständig qualifizierte Namen von SQL-Objekten in den Quelldateien auflösen muss, bei denen der Schemaname fehlt. Klicken Sie auf Schemasuchpfad hinzufügen und fügen Sie einen Wert für jeden Schemanamen hinzu, auf den möglicherweise verwiesen wird, wenn die Quelldateien eine Reihe verschiedener Schemanamen verwenden.

      Der Übersetzer durchsucht die von Ihnen bereitgestellten Metadatendateien, um Tabellen mit ihren Schemanamen zu validieren. Wenn eine bestimmte Option nicht aus den Metadaten ermittelt werden kann, wird der Name des ersten Schemas, den Sie eingeben, als Standard verwendet. Weitere Informationen zur Verwendung des Standardschemanamens finden Sie unter Standardschema.

    3. Optional. Wenn Sie Namenszuordnungsregeln angeben möchten, um SQL-Objekte während der Übersetzung zwischen dem Quellsystem und BigQuery umzubenennen, können Sie entweder eine JSON-Datei mit dem Namenszuordnungspaar bereitstellen oder Sie können die Cloud Console verwenden, um die zuzuordnenden Werte anzugeben.

      So verwenden Sie eine JSON-Datei:

      1. Auf JSON-Datei für Namenszuordnung klicken.
      2. Suchen Sie im entsprechenden Format nach dem Speicherort einer Namenszuordnungsdatei, wählen Sie sie aus und klicken Sie auf Öffnen.

        Die Datei muss kleiner als 5 MB sein.

      So verwenden Sie die Google Cloud Console:

      1. Klicken Sie auf Namenszuordnungspaar hinzufügen.
      2. Fügen Sie die entsprechenden Teile des Quellobjektnamens in den Feldern Datenbank, Schema, Verknüpfung und Attribut in der Spalte Quelle ein.
      3. Fügen Sie die Teile des Zielobjektnamens in BigQuery in die Felder in der Spalte Ziel ein.
      4. Wählen Sie unter Typ den Objekttyp aus, der das Objekt beschreibt, das Sie zuordnen.
      5. Wiederholen Sie die Schritte 1 bis 4, bis Sie alle erforderlichen Namenszuordnungspaare angegeben haben. Beachten Sie, dass Sie bei der Verwendung der Cloud Console nur bis zu 25 Namenszuordnungspaare angeben können.
  11. Klicken Sie auf Erstellen, um den Übersetzungsjob zu starten.

Nachdem der Übersetzungsjob erstellt wurde, können Sie den Status in der Liste der Übersetzungsjobs sehen.

API

Geben Sie für die Methode projects.locations.workflows.create eine Instanz der Ressource MigrationWorkflow mit einem unterstützten Aufgabentyp an. “

Unterstützte Aufgabentypen

  • Amazon Redshift SQL - Redshift2BigQuery_Translation
  • Apache HiveQL und Beeline-Befehlszeile - HiveQL2BigQuery_Translation
  • IBM Netezza SQL und NZPLSQL - Netezza2BigQuery_Translation
  • Teradata und Teradata Vantage - Teradata2BigQuery_Translation
  • Apache Spark SQL - SparkSQL2BigQuery_Translation
  • Azure Synapse T-SQL - AzureSynapse2BigQuery_Translation
  • MySQL SQL - MySQL2BigQuery_Translation
  • Oracle SQL, PL/SQL, Exadata - Oracle2BigQuery_Translation
  • PostgreSQL SQL - Postgresql2BigQuery_Translation
  • Presto oder Trino SQL – Presto2BigQuery_Translation
  • Snowflake SQL - Snowflake2BigQuery_Translation
  • SQL Server T-SQL - SQLServer2BigQuery_Translation
  • Vertica SQL - Vertica2BigQuery_Translation

Beschränkung

Die konsolidierte Übersetzungs-API unterstützt nur Übersetzungsjobs, die in weniger als 1,5 Stunden abgeschlossen sind.

Erforderliche Berechtigungen

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 zum Erstellen von Übersetzungsjobs mit der konsolidierten Übersetzungs-API benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen von Übersetzungsjobs mithilfe der konsolidierten Übersetzungs-API erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Übersetzungsjobs mit der konsolidierten Übersetzungs-API zu erstellen:

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

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

Beispiel: Batchübersetzung erstellen

Mit dem folgenden curl-Befehl wird ein Batchübersetzungsjob erstellt, in dem die Ein- und Ausgabedateien in Cloud Storage gespeichert werden. Das Feld source_target_mapping enthält eine Liste, die die literal-Quelleinträge einem optionalen relativen Pfad für die Zielausgabe zuordnet.

curl -d "{
  \"tasks\": {
     string: {
        \"type\": \"TYPE\",
        \"translation_details\": {
           \"target_base_uri\": \"TARGET_BASE\",
           \"source_target_mapping\": {
              \"source_spec\": {
                 \"base_uri\": \"BASE\"
              }
           },
        }
     }
  }
  }" \
  -H "Content-Type:application/json" \
  -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows

Ersetzen Sie Folgendes:

  • TYPE: Der Aufgabentyp der Übersetzung, der den Quell- und Zieldialekt bestimmt.
  • TARGET_BASE: Der Basis-URI für alle Übersetzungsausgaben.
  • BASE ist der Basis-URI für alle Dateien, die als Quellen für die Übersetzung gelesen werden.
  • TOKEN: das Token zur Authentifizierung. Verwenden Sie zum Generieren eines Tokens den Befehl gcloud auth print-access-token oder den OAuth 2.0 Playground (verwenden Sie den Bereich https://www.googleapis.com/auth/cloud-platform).
  • PROJECT_ID: das Projekt, in dem die Übersetzung verarbeitet werden soll.
  • LOCATION: der Speicherort des Projekts, in dem die Übersetzung verarbeitet werden soll.

Der vorherige Befehl gibt eine Antwort zurück, die eine Workflow-ID im Format projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID enthält. Informationen zum Anzeigen der Übersetzungsergebnisse über die API finden Sie unter Ergebnisse der konsolidierten Übersetzungs-API.

Beispiel: Übersetzungsjob mit String-Literal-Eingaben und -Ausgaben erstellen

Mit dem folgenden curl-Befehl wird ein Übersetzungsjob mit Ein- und Ausgaben von Stringliteralen erstellt. Das Feld source_target_mapping enthält eine Liste, die die Quellverzeichnisse einem optionalen relativen Pfad für die Zielausgabe zuordnet.

curl -d "{
  \"tasks\": {
     string: {
        \"type\": \"TYPE\",
        \"translation_details\": {
        \"source_target_mapping\": {
           \"source_spec\": {
              \"literal\": {
              \"relative_path\": \"PATH\",
              \"literal_string\": \"STRING\"
              }
           }
        },
        \"target_return_literals\": \"TARGETS\",
        }
     }
  }
  }" \
  -H "Content-Type:application/json" \
  -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows

Ersetzen Sie Folgendes:

  • TYPE: Der Aufgabentyp der Übersetzung, der den Quell- und Zieldialekt bestimmt.
  • PATH: die Kennung des Literaleintrags, ähnlich einem Dateinamen oder Pfad.
  • STRING: String der Literaleingabedaten (z. B. SQL), die übersetzt werden sollen.
  • TARGETS: die erwarteten Ziele, die der Nutzer direkt in der Antwort im Format literal zurückgeben möchte. Diese sollten im Ziel-URI-Format vorliegen (z. B. GENERATED_DIR + target_spec.relative_path + source_spec.literal.relative_path). Alles, was nicht in dieser Liste enthalten ist, wird in der Antwort nicht zurückgegeben. Das generierte Verzeichnis GENERATED_DIR für allgemeine SQL-Übersetzungen ist sql/.
  • TOKEN: das Token zur Authentifizierung. Verwenden Sie zum Generieren eines Tokens den Befehl gcloud auth print-access-token oder den OAuth 2.0 Playground (verwenden Sie den Bereich https://www.googleapis.com/auth/cloud-platform).
  • PROJECT_ID: das Projekt, in dem die Übersetzung verarbeitet werden soll.
  • LOCATION: der Speicherort des Projekts, in dem die Übersetzung verarbeitet werden soll.

Der vorherige Befehl gibt eine Antwort zurück, die eine Workflow-ID im Format projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID enthält. Informationen zum Anzeigen der Übersetzungsergebnisse über die API finden Sie unter Ergebnisse der konsolidierten Übersetzungs-API.

Übersetzungsausgabe ansehen

Nachdem Sie den Übersetzungsjob ausgeführt haben, können Sie Informationen zum Job in der Cloud Console ansehen. Wenn Sie die Google Cloud Console zum Ausführen des Jobs verwendet haben, können Sie die Jobergebnisse im angegebenen Cloud Storage-Ziel-Bucket sehen. Wenn Sie die konsolidierte Übersetzungs-API zum Ausführen des Jobs verwendet haben, können Sie einen weiteren Befehl mit der Workflow-ID ausführen, um die Jobergebnisse abzurufen. Wenn Sie den Batchübersetzungsclient zum Ausführen des Jobs verwendet haben, können Sie die Jobergebnisse im von Ihnen angegebenen Ausgabeverzeichnis anzeigen. Der Batch-SQL-Übersetzer gibt die folgenden Dateien an das angegebene Ziel aus:

  • Die übersetzten Dateien.
  • Der Zusammenfassungsbericht für Übersetzungen im CSV-Format.
  • Die verbrauchte Ausgabenamenzuordnung im JSON-Format.

Ausgabe der Google Cloud Console

So rufen Sie Details zu Übersetzungsjobs auf:

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

    BigQuery aufrufen

  2. Klicken Sie im Navigationsbereich unter Migration auf SQL-Übersetzung.

  3. Suchen Sie in der Liste der Übersetzungsjobs nach dem Job, für den Sie die Übersetzungsdetails aufrufen möchten. Klicken Sie dann auf den Namen des Übersetzungsjobs.

  4. Im Abschnitt Ergebnisse werden die gesamte Übersetzungsrate, die Anzahl der verarbeiteten Anweisungen und die Jobdauer angezeigt.

  5. Wählen Sie den Tab Logzusammenfassung aus, um eine Übersicht über die Übersetzungsprobleme aufzurufen, einschließlich Problemkategorien, vorgeschlagene Aktionen und der Häufigkeit des jeweiligen Problems. Sie können auch eine Problemkategorie auswählen, um die mit dieser Problemkategorie verknüpften Logeinträge aufzurufen (Vorschau).

  6. Wählen Sie den Tab Logeinträge aus, um weitere Informationen zu jedem Übersetzungsproblem aufzurufen, einschließlich der Problemkategorie, des spezifischen Problemeintrags und eines Links zu der Datei, in der das Problem aufgetreten ist. Sie können auf dem Tab Logeinträge ein Problem auswählen, um den Tab Code zu öffnen, der die Eingabe- und Ausgabedatei anzeigt, wenn zutreffend (Vorschau).

  7. Wählen Sie den Tab Übersetzungskonfiguration aus, um Details zur Konfiguration des Übersetzungsjobs aufzurufen.

Ergebnisse der konsolidierten Übersetzungs-API

Rufen Sie nach Abschluss der asynchronen Übersetzung die Ergebnisse ab. Geben Sie dazu die Workflow-ID des Übersetzungsjobs mit dem folgenden Befehl an:

curl \
-H "Content-Type:application/json" \
-H "Authorization:Bearer TOKEN" -X GET https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID

Ersetzen Sie Folgendes:

  • TOKEN: das Token zur Authentifizierung. Verwenden Sie zum Generieren eines Tokens den Befehl gcloud auth print-access-token oder den OAuth 2.0 Playground (verwenden Sie den Bereich https://www.googleapis.com/auth/cloud-platform).
  • PROJECT_ID: das Projekt, in dem die Übersetzung verarbeitet werden soll.
  • LOCATION: der Speicherort des Projekts, in dem die Übersetzung verarbeitet werden soll.
  • WORKFLOW_ID: die ID, die beim Erstellen eines Übersetzungsworkflows generiert wird.

Zusammenfassender Bericht

Der Zusammenfassungsbericht ist eine CSV-Datei, die eine Tabelle aller Warn- und Fehlermeldungen enthält, die während des Übersetzungsjobs aufgetreten sind.

So rufen Sie die Zusammenfassungsdatei in der Google Cloud Console auf:

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

    BigQuery aufrufen

  2. Klicken Sie im Navigationsbereich unter Migration auf SQL-Übersetzung.

  3. Suchen Sie in der Liste der Übersetzungsjobs nach dem gewünschten Job und klicken Sie in der Spalte Status auf Details anzeigen.

  4. Klicken Sie im Abschnitt Übersetzungsbericht auf batch_translate_report.csv.

  5. Klicken Sie auf der Seite Objektdetails auf den Wert in der Zeile Authentifizierte URL, um die Datei in Ihrem Browser anzuzeigen.

In der folgenden Tabelle werden die Spalten der Zusammenfassungsdatei beschrieben:

Spalte Beschreibung
Zeitstempel Der Zeitstempel, zu dem das Problem aufgetreten ist.
FilePath Der Pfad zur Quelldatei, mit der das Problem verknüpft ist.
FileName Der Name der Quelldatei, mit der das Problem verknüpft ist.
Skriptzeile Die Zeilennummer, in der das Problem aufgetreten ist
Skriptspalte Die Spaltennummer, in der das Problem aufgetreten ist.
TranspilerComponent Die interne Komponente des Übersetzungsmoduls, in der die Warnung oder der Fehler aufgetreten ist. Diese Spalte ist möglicherweise leer.
Umgebung Die Übersetzungsdialektsumgebung, die der Warnung oder dem Fehler zugeordnet ist. Diese Spalte ist möglicherweise leer.
ObjectName Das SQL-Objekt in der Quelldatei, die der Warnung oder dem Fehler zugeordnet ist. Diese Spalte ist möglicherweise leer.
Schweregrad Der Schweregrad des Problems, entweder eine Warnung oder ein Fehler.
Kategorie Die Kategorie des Übersetzungsproblems.
SourceType Die Ursache des Problems. Der Wert in dieser Spalte kann entweder SQL sein, was auf ein Problem mit den SQL-Eingabedateien hinweist, oder METADATA, was auf ein Problem im Metadatenpaket hinweist.
Meldung Warnmeldung oder Fehlermeldung des Übersetzungsproblems
ScriptContext Das SQL-Snippet in der Quelldatei, die mit dem Problem verknüpft ist.
Aktion Wir empfehlen, das Problem zu beheben.

Tab „Code“

Auf dem Tab „Code“ haben Sie die Möglichkeit, weitere Informationen zu den Eingabe- und Ausgabedateien für einen bestimmten Übersetzungsjob zu prüfen. Auf dem Tab „Code“ können Sie die in einem Übersetzungsjob verwendeten Dateien untersuchen, einen direkten Vergleich einer Eingabedatei und ihrer Übersetzung ausführen und dabei Ungenauigkeiten ermitteln sowie Logzusammenfassungen und -einträge für eine bestimmte Datei in einem Job aufrufen.

So greifen Sie auf den Tab „Code“ zu:

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

    BigQuery aufrufen

  2. Klicken Sie im Navigationsbereich unter Migration auf SQL-Übersetzung.

  3. Suchen Sie in der Liste der Übersetzungsjobs nach dem gewünschten Job und klicken Sie dann in der Spalte Status auf Details anzeigen.

  4. Wählen Sie den Tab Code aus.

aufrufen.

Verbrauchte Ausgabenamen-Zuordnungsdatei

Diese JSON-Datei enthält die Regeln für die Zuordnung des Ausgabenamens, die vom Übersetzungsjob verwendet wurden. Die Regeln in dieser Datei können sich von den Regeln der Ausgabenamenzuordnung, die Sie für den Übersetzungsjob angegeben haben, unterscheiden, entweder aufgrund von Konflikten in den Namenszuordnungsregeln oder aufgrund von fehlenden Namenszuordnungsregeln für SQL-Objekte, die während der Übersetzung identifiziert wurden. Prüfen Sie diese Datei, um festzustellen, ob die Namenszuordnungsregeln korrigiert werden müssen. Erstellen Sie in diesem Fall neue Zuordnungsregeln für den Ausgabenamen, die alle von Ihnen erkannten Probleme beheben, und führen Sie einen neuen Übersetzungsjob aus.

Übersetzte Dateien

Für jede Quelldatei wird eine entsprechende Ausgabedatei im Zielpfad generiert. Die Ausgabedatei enthält die übersetzte Abfrage.

Batch-Übersetzung von SQL-Abfragen mit dem interaktiven SQL-Übersetzer

Sie können den interaktiven BigQuery-SQL-Übersetzer verwenden, um eine SQL-Abfrage mit denselben Metadaten oder Objektzuordnungsinformationen wie Ihre Quelldatenbank zu prüfen oder Fehler zu beheben. Nachdem Sie einen Batchübersetzungsjob abgeschlossen haben, generiert BigQuery eine Übersetzungskonfigurations-ID, die Informationen zu den Metadaten des Jobs, zur Objektzuordnung oder zum Schemasuchpfad enthält, je nachdem, was für die Abfrage gilt. Sie verwenden die Batchübersetzungskonfigurations-ID mit dem interaktiven SQL-Übersetzer, um SQL-Abfragen mit der angegebenen Konfiguration auszuführen.

So starten Sie eine interaktive SQL-Übersetzung mithilfe einer Konfigurations-ID für die Batchübersetzung:

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

    BigQuery aufrufen

  2. Klicken Sie im Navigationsmenü unter Migration auf SQL-Übersetzung.

  3. Suchen Sie in der Liste der Übersetzungsjobs nach dem gewünschten Job und klicken Sie dann auf Weitere Optionen > Interaktive Übersetzung öffnen.

Der interaktive BigQuery-SQL-Übersetzer wird jetzt mit der entsprechenden Batchübersetzungskonfigurations-ID geöffnet. Klicken Sie im interaktiven Übersetzer auf Mehr > Übersetzungseinstellungen, um die Übersetzungskonfigurations-ID für die interaktive Übersetzung aufzurufen.

Beschränkungen

Der Übersetzer kann keine benutzerdefinierten Funktionen (UDFs) aus anderen Sprachen als SQL übersetzen, da er sie nicht parsen kann, um ihre Eingabe- und Ausgabedatentypen zu bestimmen. Dies führt dazu, dass die Übersetzung von SQL-Anweisungen, die auf diese UDFs verweisen, ungenau ist. Damit Nicht-SQL-UDFs während der Übersetzung ordnungsgemäß referenziert werden, verwenden Sie gültige SQL-Anweisungen, um Platzhalter-UDFs mit denselben Signaturen zu erstellen.

Beispiel: Sie haben eine UDF in C, die die Summe zweier Ganzzahlen berechnet. Um sicherzustellen, dass SQL-Anweisungen, die auf diese UDF verweisen, korrekt übersetzt werden, erstellen Sie eine Platzhalter-SQL-UDF, die dieselbe Signatur wie die C-UDF hat, wie im folgenden Beispiel gezeigt:

CREATE FUNCTION Test.MySum (a INT, b INT)
  RETURNS INT
  LANGUAGE SQL
  RETURN a + b;

Speichern Sie diese Platzhalter-UDF in einer Textdatei und fügen Sie diese Datei als Quelldatei für den Übersetzungsjob ein. Dadurch kann der Übersetzer die UDF-Definition lernen und die erwarteten Eingabe- und Ausgabedatentypen identifizieren.

Kontingent und Limits

  • Dafür gelten die Kontingente der BigQuery Migration API.
  • Jedes Projekt kann höchstens 10 aktive Übersetzungsaufgaben haben.
  • Die Gesamtzahl der Quell- und Metadatendateien ist zwar nicht begrenzt, es empfiehlt sich jedoch, die Anzahl der Dateien unter 1.000 zu halten, um eine bessere Leistung zu erzielen.

Übersetzungsfehler beheben

RelationNotFound- oder AttributeNotFound-Übersetzungsprobleme

Übersetzung funktioniert am besten mit Metadaten-DDLs. Wenn keine SQL-Objektdefinitionen gefunden werden können, gibt das Übersetzungsmodul RelationNotFound- oder AttributeNotFound-Probleme aus. Wir empfehlen die Verwendung des Metadaten-Extrahierers zum Generieren von Metadatenpaketen, um dafür zu sorgen, dass alle Objektdefinitionen vorhanden sind. Das Hinzufügen von Metadaten ist der erste empfohlene Schritt, um die meisten Übersetzungsfehler zu beheben, da oft viele andere Fehler behoben werden können, die indirekt durch ein Fehlen von Metadaten verursacht werden.

Weitere Informationen finden Sie unter Metadaten für Übersetzung und Bewertung generieren.

Preise

Für die Verwendung des Batch-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: