8 min read

Optimieren Sie Ihre Migration von Teradata zu Google BigQuery mit automatischer SQL-Übersetzung

Published on
April 12, 2022
Author
Bálint Kubik
Bálint Kubik
Dara Architect
Subscribe to our newsletter
Subscribe
Optimieren Sie Ihre Migration von Teradata zu Google BigQuery mit automatischer SQL-Übersetzung

Einführung

Google investiert stark in die Migration von On-Premises-Data-Warehouses zu Google BigQuery, um diese mit dem Google BigQuery Migration Service so schlank, schnell und kostengünstig wie möglich zu gestalten. In diesem Blogbeitrag stellen wir das Tool Batch SQL Translator vor. Wir beschreiben die Schritte zur Übersetzung von Teradata-SQL in BigQuery-Standard-SQL und stellen Codebeispiele für die programmatische Übersetzung über die Cloud-Konsole zur Verfügung.

Migration von Data Warehouses in die Cloud

Mit der zunehmenden Einführung von Cloud-Diensten ist die Migration von On-Premise-Data-Warehouses in die öffentlichen Clouds ein heißes Thema. Der beliebte Cloud-Data-Warehousing-Service von Google Cloud Platform (GCP), Google BigQuery, ist eine natürliche Wahl, wenn es um die Migration bestehender Lösungen geht, denn BigQuery ist ein vollständig verwaltetes, serverloses, hoch skalierbares und kostengünstiges Produkt. Die Forrester Wave™: Cloud Data Warehouse, Q1 2021 wurde Google BigQuery aufgrund seines starken aktuellen Angebots und seiner Marktstrategie als führend unter den 13 wichtigsten Lösungen in diesem Bereich eingestuft.

Google investiert stark in die Gewährleistung, dass Kunden bei der Migration ihrer bestehenden Dateninfrastruktur zu Google BigQuery die bestmögliche Erfahrung machen. Google Cloud bietet mehrere Dienste, die die Migration von On-Premise in die Cloud erleichtern, wie z. B. BigQuery Data Transfer Service, eine Lösung zur Automatisierung von Datenbewegungen, und Google BigQuery Migration Service, ein umfassendes Set kostenloser Tools zur Rationalisierung der Migration von Data Warehouses von Anfang bis Ende. CompilerWorks, ein Unternehmen, das Produkte zur automatischen Konvertierung und Optimierung von Legacy-Code (einschließlich SQL) für die Ausführung in der Cloud entwickelt, wurde 2021 von Google übernommen.

Wir von Aliz haben eine Reihe von Unternehmen bei der erfolgreichen Migration ihrer Datenbestände auf Google BigQuery unterstützt, und zwar auf eine schnelle, effiziente und kostengünstige Art und Weise, die Agilität und großen Nutzen für das Unternehmen bietet. Teradata ist häufig die traditionelle, vor Ort installierte Datenbank, die GCP-Kunden gerne in die Cloud migrieren würden. In Zusammenarbeit mit KPMG unterstützte Aliz den Hamburger Online-Händler bonprix der Otto Group bei der Migration seiner On-Premise-Teradata-Datenbank zu Google BigQuery. Die Migration wurde pünktlich und innerhalb des Budgets abgeschlossen und erwies sich als 40-50% kosteneffizienter als das On-Premises Data Warehouse. GCP und Google BigQuery ermöglichten es dem IT-Team von bonprix, den Schwerpunkt von der Verwaltung der Infrastruktur auf die Schaffung von Geschäftswert zu verlagern. Lesen Sie die vollständige Fallstudie unter https://cloud.google.com/customers/bonprix

Der Batch-SQL-Übersetzer von Google BigQuery

Der Prozess der Übersetzung der vorhandenen SQL-Anweisungen eines lokalen Systems in den SQL-Dialekt des Cloud-Data-Warehouses ist ein entscheidender Schritt während einer Cloud-Migration. Dieser Schritt kann besonders komplex und zeitaufwendig sein. Eine Reduzierung des dafür erforderlichen Aufwands ist wichtig, da dadurch die Anzahl der Entwicklerstunden, die für die Beherrschung des neuen Dialekts und das manuelle Umschreiben von SQL-Anweisungen erforderlich sind, minimiert werden kann, was den Migrationsprozess erheblich beschleunigt. Tools, die die Übersetzung automatisieren, sind sehr zu empfehlen.

Der Batch-SQL-Übersetzer von Google BigQuery, Teil des Google BigQuery Migration Service, unterstützt die Übersetzung von Teradata SQL und Basic Data Query (BTEQ) in den Standard-SQL-Dialekt von BigQuery. Das kostenlose Tool nimmt automatisch eine Sammlung von Quelldateien aus Google Cloud Storage und gibt die übersetzten BigQuery Standard SQL-Anweisungen mit einer detaillierten Zusammenfassung der während des Übersetzungsprozesses aufgetretenen Warnungen und Fehler aus. Optionale Einstellungen bieten die Möglichkeit, die SQL-Übersetzung im Detail zu konfigurieren, um die gewünschten Ergebnisse zu erzielen. Batch SQL Translator bietet Client-Bibliotheken für mehrere Programmiersprachen, darunter Java, Go und Python.

Beispiel für Data Warehouse DDL

Um die Verwendung des Batch-SQL-Übersetzers von Google BigQuery mit dem SQL-Dialekt von Teradata zu demonstrieren, betrachten wir das folgende einfache Datenmodell, das die Bestellungen, Kunden, Produkte und Währungen eines fiktiven E-Commerce-Unternehmens darstellt.

Die entsprechende Teradata-DDL (Datendefinitionssprache) lautet wie folgt:

Interaktiver Übersetzer in der BigQuery-Benutzeroberfläche

Um den in die BigQuery-Benutzeroberfläche eingebetteten interaktiven SQL-Übersetzer zu verwenden, klicken Sie auf Neue Abfrage erstellen und unter Mehr auf SQL-Übersetzung aktivieren.

Nachdem Sie das Teradata-SQL auf der linken Seite des Bildschirms (unter Übersetzen von: Teradata) eingefügt haben, klicken Sie auf die Schaltfläche Übersetzen.

Standard-SQL wird auf der rechten Seite des Bildschirms unter BigQuery Standard-SQL angezeigt. Warnungen werden in Kommentaren um die Anweisungen herum deutlich angezeigt. Im Falle eines Fehlers in der Teradata-SQL werden die fehlerhaften Teile auf der linken Seite hervorgehoben.

Programmatische Übersetzung von Teradata-SQL in Standard-SQL

Der Batch-SQL-Übersetzer von Google BigQuery ermöglicht die programmatische Übersetzung von noch größeren Mengen an Teradata-SQL-Dateien in BigQuery-Standard-SQL. Im Folgenden werde ich den Batch-SQL-Übersetzer anweisen, eine Teradata-SQL-Datei (die die zuvor freigegebene Beispiel-DDL enthält), die auf Google Storage gespeichert ist, unter Verwendung der Python-Client-Bibliothek zu übersetzen. Beachten Sie, dass Google auch Client-Bibliotheken für andere Sprachen, wie Go oder Java, anbietet. Der Beispielcode ist auf GitHub verfügbar unter Github.

Erstellen Sie einen neuen Google Storage-Bucket und laden Sie die DDL des E-Commerce-Data-Warehouse-Beispiels in einer SQL-Datei in den Pfad "teradata_sql/ddl/ddl.sql" hoch.

Die Python-Client-Bibliothek muss installiert sein, damit das Beispielskript ausgeführt werden kann.

Der Import der folgenden Abhängigkeiten ist erforderlich.

Der Inhalt der Datei "translation_pb2.py" wurde mit Hilfe des Protokollpuffer-Compilers "protoc" aus den von Google bereitgestellten protobuf-Nachrichtenformaten übersetzt.

Zunächst müssen wir die Details der Migrationsaufgabe definieren, die die folgenden Eigenschaften enthält:

  • “input_path” - Der Pfad, in dem die Teradata-SQL-Dateien im Google-Storage-Bucket gespeichert sind.
  • “output_path” - Der Pfad, in dem die übersetzten BigQuery Standard SQL-Dateien erstellt werden sollen.
  • “file_encoding” - Die Kodierung der Eingabe (Teradata-SQL-Dateien).

Bei der Übersetzung von DML-Anweisungen (Data Manipulation Language) kann eine optionale Eigenschaft "schema_path" übergeben werden, in der die DDL, die die DML begleitet, zur besseren Übersetzung definiert werden kann.

Zweitens muss der Migrationsablauf definiert werden. Ein solcher Migrations-Workflow kann aus mehreren Migrationsaufgaben bestehen, so dass eine Reihe verschiedener Schritte kombiniert werden können.

Schließlich muss der neu erstellte Workflow gestartet werden. Dies ist ein nicht blockierender Vorgang; der Workflow beginnt nach dem Aufruf der "start_migration_workflow"-Methode des Google BigQuery Migrationsdienstobjekts zu laufen, kehrt aber mit einer eindeutigen Kennung des gestarteten Workflows zurück, bevor er abgeschlossen ist.

Der Status des gestarteten Workflows kann mit der Methode "get_migration_workflow" nachverfolgt werden.

Sobald der Status des Workflows "ABGESCHLOSSEN" ist, erscheint das frisch übersetzte Standard-SQL im entsprechenden Pfad des Google Storage Buckets.

Die Datei "ddl.sql" mit dem übersetzten Standard-SQL (mit ähnlichem Inhalt wie im interaktiven SQL-Übersetzer der BigQuery-Benutzeroberfläche) wird von einer CSV-Datei namens "ddl_errors.csv" begleitet, in der alle erkannten Fehler und Warnungen mit klaren Beschreibungen der erkannten Probleme und Verweisen auf bestimmte Teile der ursprünglichen Teradata-SQL-Datei gesammelt werden.

Fazit

In diesem Blogpost haben wir die Verwendung der interaktiven und Batch-Übersetzungsdienste von Google BigQuery über die Benutzeroberfläche der Cloud Console und auch programmatisch demonstriert. Die Verwendung dieses benutzerfreundlichen Toolsets kann Ihre Migration von Ihrem On-Prem-Teradata zu Google BigQuery erheblich beschleunigen. Eine automatisierte Übersetzung Ihres vorhandenen Teradata-SQL ohne manuelle Übersetzung reduziert den Zeitaufwand für Techniker erheblich, wodurch Ihre Migration schneller vonstatten geht und die Kosten erheblich gesenkt werden. Der programmatische (Batch-)Übersetzer ermöglicht die gleichzeitige Bearbeitung einer großen Anzahl von Teradata-SQL-Anweisungen und bietet Client-Bibliotheken für mehrere Programmiersprachen.

Author
Bálint Kubik
Dara Architect
Subscribe to our newsletter
Subscribe