Migration von Snowflake zu BigQuery

Dieses Dokument bietet eine Einführung in die Migration von Snowflake zu BigQuery. In den folgenden Abschnitten werden die Migrationstools vorgestellt, mit denen Sie eine BigQuery-Migration durchführen können. Außerdem werden einige Unterschiede zwischen Snowflake und BigQuery beschrieben, damit Sie Ihre Migration besser planen können.

Workflows von Snowflake zu BigQuery migrieren

Berücksichtigen Sie bei der Planung einer BigQuery-Migration die verschiedenen Workflows, die Sie in Snowflake haben, und wie Sie sie einzeln migrieren können. Um die Auswirkungen auf Ihre bestehenden Vorgänge zu minimieren, empfehlen wir, zuerst Ihre SQL-Abfragen zu BigQuery zu migrieren und dann Ihr Schema und Ihren Code.

SQL-Abfragen migrieren

Für die Migration Ihrer SQL-Abfragen bietet der BigQuery Migration Service verschiedene SQL Übersetzungsfunktionen, um die Konvertierung Ihrer Snowflake SQL-Abfragen in GoogleSQL-SQL zu automatisieren. Dazu gehören der Batch-SQL Übersetzer zum Übersetzen von Abfragen im Batch, der interaktive SQL-Übersetzer zum Übersetzen einzelner Abfragen und die SQL Translation API. Diese Übersetzungsdienste umfassen auch Gemini-erweiterte Funktionen, um die Migration von SQL-Abfrage weiter zu vereinfachen.

Überprüfen Sie die übersetzten Abfragen sorgfältig, um sicherzustellen, dass Datentypen und Tabellenstrukturen korrekt verarbeitet werden. Dazu empfehlen wir, eine Vielzahl von Testfällen mit verschiedenen Szenarien und Daten zu erstellen. Führen Sie diese Testfälle dann in BigQuery aus, um die Ergebnisse mit den ursprünglichen Snowflake-Ergebnissen zu vergleichen. Wenn es Unterschiede gibt, analysieren und korrigieren Sie die konvertierten Abfragen.

Schema und Code migrieren

Verwenden Sie den Snowflake-Connector im BigQuery Data Transfer Service, um ein Schema und Daten aus Snowflake zu migrieren. Wenn Sie die Datenübertragung einrichten, können Sie bestimmte Snowflake-Tabellen angeben, die eingeschlossen werden sollen. Außerdem kann der Connector während einer Übertragung automatisch Ihr Tabellenschema und Ihre Datentypen erkennen.

Weitere Informationen zum Einrichten einer Snowflake-Datenübertragung finden Sie unter Snowflake-Übertragung planen.

Inkrementelle Übertragung

Wenn Sie mit dem Snowflake-Connector eine Snowflake-Datenübertragung durchführen, können Sie eine inkrementelle Übertragung einrichten, bei der nur Daten übertragen werden, die seit der letzten Datenübertragung geändert wurden. So muss nicht bei jeder Datenübertragung das gesamte Dataset geladen werden. Weitere Informationen finden Sie unter Snowflake-Übertragung planen.

Andere Snowflake-Funktionen migrieren

Berücksichtigen Sie bei der Planung der Migration zu BigQuery die folgenden Snowflake-Funktionen.

Anwendungsfall Snowflake-Funktion BigQuery-Funktion
Bereitstellen von Rohdatendateien für das Laden und Exportieren Daten können mit den Befehlen `GET` und `PUT` in die Staging-Umgebung hochgeladen und von dort heruntergeladen werden. Mit Abfragen und `COPY`-Befehlen können Daten in Staging-Umgebungen gelesen und geschrieben werden. BigQuery verwendet Cloud Storage für das Staging von Dateidaten und unterstützt das Lesen und Schreiben aus verschiedenen anderen Quellen und Google Cloud Diensten. Verwenden Sie Cloud Storage, um Rohdatendateien hochzuladen und herunterzuladen.

Weitere Informationen zu verschiedenen Möglichkeiten zum Laden von Daten aus Cloud Storage und anderen Quellen finden Sie unter Einführung in das Laden von Daten. Weitere Informationen zum Exportieren nach Cloud Storage und in andere Quellen finden Sie unter Einführung in den Datenexport.
Vorab berechnen von häufigen Abfrageergebnissen Dynamische Tabellen können mit einer Abfrage definiert und nach einem Zeitplan aktualisiert werden. Materialisierte Ansichten können so konfiguriert werden, dass sie bestehen bleiben und die SQL-Abfrageberechnung automatisch aktualisiert wird.
Kleine DML-Vorgänge Snowflake Hybrid-Tabellen ermöglichen kleine DML-Schreibvorgänge. Eine detaillierte DML kann in BigQuery verwendet werden, um die Latenz und den Durchsatz kleiner Schreibvorgänge zu verbessern.

Für erweiterte hybride transaktionsorientierte/analytische Verarbeitungsanwendungsfälle (HTAP) sollten Sie externe Spanner-Datasets verwenden.
Notebooks und Visualisierung Mit Snowflake Streamlit-Anwendungen können Daten mit Python-Code visualisiert werden. Mit BigQuery-Notebooks und der BigFrames-Python-Bibliothek können Daten in Python untersucht und visualisiert werden. Informationen zu Integrationen mit Looker und anderen Analyse- und Visualisierungstools finden Sie unter Einführung in Analyse- und Business-Intelligence-Tools.
Physisches Datenlayout Snowflake unterstützt Clustering und Mikropartitionierung, um Daten auf der Festplatte zu organisieren. BigQuery unterstützt explizite Partitionierung und Clustering, um Nutzern eine präzise Kontrolle darüber zu geben, wie Daten verteilt und organisiert werden. Dies kann die Kosten- und Laufzeitleistung verbessern.

Der SQL Translation Service verarbeitet automatisch die Übersetzung des Tabellenclusterings und kann so konfiguriert werden, dass Partitionierung und Clustering beim Migrieren von DDLs angepasst werden.
Externe Funktionen und Verfahren Snowflake unterstützt Funktionen und gespeicherte Verfahren, die in verschiedenen externen Sprachen implementiert wurden. BigQuery unterstützt externe Funktionsaufrufe über Cloud Run Functions. Sie können auch [benutzerdefinierte Funktionen](/bigquery/docs/user-defined-functions) (User-Defined Functions, UDFs) wie SQL UDF verwenden, die in BigQuery ausgeführt werden.

BigQuery unterstützt SQL für gespeicherte Verfahren. Für andere Sprachen empfehlen wir die Verwendung externer Funktionen oder der clientseitigen Anwendungslogik.

BigQuery-Sicherheitsfunktionen

Wenn Sie von Snowflake zu BigQuery migrieren, müssen Sie berücksichtigen, wie Google Cloud die Sicherheit bei anders als bei Snowflake gewährleistet wird.

Die Sicherheit in BigQuery ist untrennbar mit Identity and Access Management (IAM) in Google Cloudverbunden. IAM-Berechtigungen definieren die Vorgänge, die für eine Ressource zulässig sind, und werden auf der Google Cloud Ebene erzwungen. So wird ein zentraler und konsistenter Ansatz für die Sicherheitsverwaltung geboten. Im Folgenden sind einige wichtige Sicherheitsfunktionen von Google Cloudaufgeführt:

  • Integrierte Sicherheit: BigQuery nutzt die Sicherheitsfunktionen von Google Cloud's. Dazu gehört IAM für eine detaillierte Zugriffssteuerung für eine robuste und nahtlose Sicherheitsintegration.
  • Sicherheit auf Ressourcenebene: IAM konzentriert sich auf die Zugriffssteuerung auf Ressourcenebene und gewährt Nutzern und Gruppen Berechtigungen für verschiedene BigQuery-Ressourcen und -Dienste. Dieser Ansatz ermöglicht eine effektive Verwaltung der Zugriffsrechte, sodass Nutzer nur die Berechtigungen haben, die sie für die Ausführung ihrer Aufgaben benötigen.
  • Netzwerksicherheit: BigQuery profitiert von Google Cloud's robusten Netzwerksicherheitsfunktionen, z. B. Virtual Private Cloud und privaten Verbindungen.

Berücksichtigen Sie bei der Migration von Snowflake zu BigQuery die folgenden sicherheitsrelevanten Migrationsanforderungen:

  • IAM-Konfiguration: Sie müssen IAM-Rollen und Berechtigungen in BigQuery so konfigurieren, dass sie Ihren vorhandenen Snowflake-Zugriffssteuerungsrichtlinien entsprechen. Dazu müssen Sie Snowflake-Rollen den entsprechenden BigQuery IAM-Rollen und -Berechtigungen zuordnen.
  • Detaillierte Zugriffssteuerung: Wenn Sie in Snowflake die Sicherheit auf Zeilen- oder Spaltenebene verwenden, müssen Sie in BigQuery entsprechende Steuerelemente mit autorisierten Ansichten oder Richtlinien-Tags implementieren.
  • Migration von Ansichten und UDFs: Überprüfen Sie beim Migrieren von Ansichten und UDFs, ob die zugehörigen Sicherheitskontrollen korrekt in autorisierte Ansichten und autorisierte UDFs in BigQuery übersetzt wurden.

Verschlüsselung

BigQuery verschlüsselt Ihre Daten standardmäßig bei Inaktivität und bei der Übertragung. Wenn Sie mehr Kontrolle über Verschlüsselungsschlüssel benötigen, unterstützt BigQuery kundenverwaltete Verschlüsselungsschlüssel im Cloud Key Management Service. Sie können auch die Verschlüsselung auf Spaltenebene verwenden.

Berücksichtigen Sie Folgendes, um die Datensicherheit während und nach der Migration zu BigQuery zu gewährleisten:

  • Schlüsselverwaltung: Wenn Sie kundenverwaltete Schlüssel benötigen, erstellen Sie eine Strategie für die Schlüssel verwaltung im Cloud Key Management Service und konfigurieren Sie BigQuery so, dass diese Schlüssel verwendet werden.
  • Datenmaskierung/Tokenisierung: Wenn sensible Daten vorhanden sind, prüfen Sie, ob Datenmaskierung oder Tokenisierung erforderlich ist, um sie zu schützen.
  • Sicherheit auf Zeilenebene: Implementieren Sie die Sicherheit auf Zeilenebene mit autorisierten Ansichten, Filtern für die Sicherheit auf Zeilenebene oder anderen geeigneten Methoden.
  • Scannen auf Sicherheitslücken und Penetrationstests: Führen Sie regelmäßig Scans auf Sicherheitslücken und Penetrationstests durch, um die Sicherheit Ihrer BigQuery-Umgebung zu überprüfen.

Rollen

Rollen sind die Entitäten, für die Berechtigungen für sicherbare Objekte gewährt und widerrufen werden können.

In IAM werden Berechtigungen in Rollen gruppiert. IAM bietet drei Arten von Rollen:

  • Einfache Rollen: Diese Rollen umfassen die Rollen "Inhaber", "Bearbeiter" und "Betrachter". Sie können diese Rollen auf Projekt- oder Dienstressourcenebene mithilfe der Google Cloud Console, der Identity and Access Management API oder der gcloud CLI anwenden. Für die höchste Sicherheit empfehlen wir im Allgemeinen, vordefinierte Rollen zu verwenden, um dem Prinzip der geringsten Berechtigung zu folgen.
  • Vordefinierte Rollen: Diese Rollen ermöglichen einen detaillierteren Zugriff auf Features in einem Produkt wie BigQuery und sollen allgemeine Anwendungsfälle und Zugriffssteuerungsmuster unterstützen.
  • Benutzerdefinierte Rollen: Diese Rollen bestehen aus benutzerdefinierten Berechtigungen.

Zugriffssteuerung

Mit Snowflake können Sie anderen Rollen Rollen zuweisen und so eine Hierarchie von Rollen erstellen. IAM unterstützt keine Rollenhierarchie, implementiert jedoch eine Ressourcenhierarchie. Die IAM-Hierarchie umfasst die Organisationsebene, die Ordnerebene, die Projektebene und die Ressourcenebene. Sie können IAM-Rollen auf jeder Hierarchieebene festlegen und Ressourcen übernehmen alle Richtlinien der ihnen übergeordneten Ressourcen.

BigQuery unterstützt die Zugriffssteuerung auf Tabellenebene. Berechtigungen auf Tabellenebene bestimmen, welche Nutzer, Gruppen und Dienstkonten auf eine Tabelle oder Ansicht zugreifen können. Sie können einem Nutzer Zugriff auf bestimmte Tabellen oder Ansichten geben, ohne dadurch Zugriff auf das gesamte Dataset zu gewähren.

Für einen detaillierteren Zugriff können Sie auch die Zugriffssteuerung auf Spaltenebene oder Sicherheit auf Zeilenebeneverwenden. Diese Art der Steuerung bietet mithilfe von Richtlinien-Tags oder typbasierten Datenklassifizierungen einen differenzierten Zugriff auf vertrauliche Spalten.

Sie können auch autorisierte Ansichten erstellen, um den Datenzugriff für eine detailliertere Zugriffssteuerung zu beschränken, sodass bestimmte Nutzer eine Ansicht abfragen können, ohne Lesezugriff auf die zugrunde liegenden Tabellen zu haben.

Unterstützte Datentypen, Attribute und Dateiformate

Snowflake und BigQuery unterstützen größtenteils dieselben Datentypen, obwohl sie manchmal unterschiedliche Namen verwenden. Eine vollständige Liste der unterstützten Datentypen in Snowflake und BigQuery finden Sie unter Datentypen. Sie können auch SQL-Übersetzungstools wie den interaktiven SQL Übersetzer, die SQL Translation API oder den Batch-SQL Übersetzer verwenden, um verschiedene SQL Dialekte in GoogleSQL zu übersetzen.

Weitere Informationen zu den unterstützten Datentypen in BigQuery finden Sie unter GoogleSQL-Datentypen.

Snowflake kann Daten in den folgenden Dateiformaten exportieren. Sie können die folgenden Formate direkt in BigQuery laden:

Migrationstools

In der folgenden Liste werden die Tools beschrieben, mit denen Sie Daten von Snowflake zu BigQuery migrieren können. Beispiele für die Verwendung dieser Tools in einer Snowflake-Migrationspipeline finden Sie unter Beispiele für Snowflake-Migrationspipelines.

  • COPY INTO <location> Befehl: Verwenden Sie diesen Befehl in Snowflake, um Daten aus einer Snowflake-Tabelle direkt in einen bestimmten Cloud Storage-Bucket zu extrahieren. Ein End-to-End- Beispiel finden Sie unter Snowflake zu BigQuery (snowflake2bq) auf GitHub.
  • Apache Sqoop: Wenn Sie Daten aus Snowflake in HDFS oder Cloud Storage extrahieren möchten, senden Sie Hadoop-Jobs mit dem JDBC-Treiber von Sqoop und Snowflake. Sqoop wird in einer Managed Service for Apache Spark -Umgebung ausgeführt.
  • Snowflake-JDBC: Verwenden Sie diesen Treiber mit den meisten Clienttools oder Anwendungen, die JDBC unterstützen.

Mit den folgenden generischen Tools können Sie Daten von Snowflake zu BigQuery migrieren:

Weitere Informationen zum Laden von Daten in BigQuery finden Sie unter Daten in BigQuery laden.

Preise

Berücksichtigen Sie bei der Planung Ihrer Snowflake-Migration die Kosten für die Datenübertragung, die Datenspeicherung und die Nutzung von Diensten in BigQuery. Weitere Informationen finden Sie unter Preise.

Für das Verschieben von Daten aus Snowflake oder AWS können Kosten für ausgehenden Traffic anfallen. Außerdem können zusätzliche Kosten anfallen, wenn Daten zwischen Regionen oder zwischen verschiedenen Cloud-Anbietern übertragen werden.

Jetzt starten

In den folgenden Abschnitten wird der Migrationsprozess von Snowflake zu BigQuery zusammengefasst:

Migrationsbewertung ausführen

Bei der Migration von Snowflake zu BigQuery empfehlen wir, zuerst das BigQuery-Migrationsbewertungstool auszuführen, um die Machbarkeit und die potenziellen Vorteile der Migration Ihres Data Warehouse von Snowflake zu BigQuery zu bewerten. Dieses Tool bietet einen strukturierten Ansatz, um Ihre aktuelle Snowflake-Umgebung zu verstehen und den Aufwand für eine erfolgreiche Migration zu schätzen.

Wenn Sie das BigQuery-Migrationsbewertungstool ausführen, wird ein Bewertungsbericht mit den folgenden Abschnitten erstellt:

  • Bericht zum vorhandenen System: Ein Snapshot des vorhandenen Snowflake-Systems und der vorhandenen Nutzung, einschließlich der Anzahl der Datenbanken, Schemas, Tabellen und der Gesamtgröße in TB. Außerdem werden die Schemas nach Größe aufgelistet und es wird auf eine potenzielle suboptimale Ressourcennutzung hingewiesen, z. B. Tabellen ohne Schreibvorgänge oder mit wenigen Lesevorgängen.
  • Vorschläge für die Transformation des stabilen Zustands von BigQuery: Zeigt, wie das System nach der Migration in BigQuery aussehen wird. Er enthält Vorschläge zur Optimierung von Arbeitslasten in BigQuery und zur Vermeidung von unnötiger Inanspruchnahme.
  • Migrationsplan: Enthält Informationen zur Migration selbst. Zum Beispiel zur Überführung des vorhandenen Systems in einen stabilen BigQuery-Zustand. In diesem Abschnitt werden die Anzahl der automatisch übersetzten Abfragen und die erwartete Zeit zum Verschieben der einzelnen Tabellen in BigQuery angegeben.

Weitere Informationen zu den Ergebnissen einer Migrationsbewertung finden Sie unter Looker Studio-Bericht überprüfen.

Migration überprüfen

Nachdem Sie Ihre Snowflake-Daten zu BigQuery migriert haben, führen Sie das Data Validation Tool (DVT) aus, um eine Daten validierung für Ihre neu migrierten BigQuery-Daten durchzuführen. Das DVT validiert verschiedene Funktionen von der Tabellen- bis zur Zeilenebene, um zu prüfen, ob Ihre migrierten Daten wie vorgesehen funktionieren.