Migration von Snowflock 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, die Ihnen bei der Planung Ihrer Migration helfen.
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 diese einzeln migrieren können. Damit die Auswirkungen auf Ihre bestehenden Vorgänge so gering wie möglich sind, empfehlen wir, zuerst Ihre SQL-Abfragen zu BigQuery und dann Ihr Schema und Ihren Code zu migrieren.
SQL-Abfragen migrieren
Für die Migration Ihrer SQL-Abfragen bietet der BigQuery-Migrationsdienst 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 Bulk, der interaktive SQL-Übersetzer zum Übersetzen einzelner Abfragen und die SQL Translation API. Diese Übersetzungsdienste umfassen auch Gemini-erweiterte Funktionen, um die Migration Ihrer SQL-Abfrage weiter zu vereinfachen.
Prüfen Sie die übersetzten SQL-Abfragen sorgfältig, um sicherzustellen, dass Datentypen und Tabellenstrukturen korrekt verarbeitet werden. Dazu empfehlen wir, eine Vielzahl von Testfällen mit unterschiedlichen 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
Wenn Sie Schemas und Daten aus Snowflake migrieren möchten, verwenden Sie den Snowflake-Connector im BigQuery Data Transfer Service, um eine Datenübertragung einzurichten. Wenn Sie die Datenübertragung einrichten, können Sie bestimmte Snowflake-Tabellen angeben, die einbezogen werden sollen. Außerdem kann der Connector Ihr Tabellenschema und Ihre Datentypen während einer Übertragung automatisch erkennen.
Weitere Informationen zum Einrichten einer Snowflake-Datenübertragung finden Sie unter Snowflake-Übertragung planen.
Inkrementelle Übertragung
Wenn Sie eine Snowflake-Datenübertragung mit dem Snowflake-Connector durchführen, können Sie eine inkrementelle Übertragung einrichten, bei der nur Daten übertragen werden, die sich seit der letzten Datenübertragung geändert haben, anstatt bei jeder Datenübertragung das gesamte Dataset zu laden. Weitere Informationen finden Sie unter Snowflake-Übertragung planen.
Andere Snowflake-Funktionen migrieren
Berücksichtigen Sie bei der Planung Ihrer Migration zu BigQuery die folgenden Snowflake-Funktionen.
| Anwendungsfall | Snowflake-Funktion | BigQuery-Funktion |
|---|---|---|
| Rohdatendateien für das Laden und Exportieren bereitstellen | Daten können mit den Befehlen „GET“ und „PUT“ in die Staging-Umgebung hochgeladen und von dort heruntergeladen werden. Abfragen und `COPY`-Befehle können in Stages lesen und schreiben. | BigQuery verwendet Cloud Storage für das Staging von Dateidaten und unterstützt das Lesen aus und Schreiben in mehrere andere Quellen und Google Cloud -Dienste. Verwenden Sie Cloud Storage, um Rohdatendateien hoch- und herunterzuladen. Weitere Informationen zu den verschiedenen Möglichkeiten, Daten aus Cloud Storage und anderen Quellen zu laden, finden Sie unter Einführung in das Laden von Daten. Weitere Informationen zum Exportieren in Cloud Storage und andere Quellen finden Sie unter Einführung in den Datenexport. |
| Vorausberechnung gängiger Abfrageergebnisse | Dynamische Tabellen können mit einer Abfrage definiert und nach einem Zeitplan aktualisiert werden. | Materialisierte Ansichten können so konfiguriert werden, dass SQL-Abfrageberechnungen beibehalten und automatisch aktualisiert werden. |
| Kleine DML-Vorgänge | Hybridtabellen von Snowflake ermöglichen kleine DML-Schreibvorgänge. | Feingranulare DML kann in BigQuery verwendet werden, um die Latenz und den Durchsatz kleiner Schreibvorgänge zu verbessern. Für erweiterte Anwendungsfälle der hybriden transaktionsorientierten und analytischen Verarbeitung (HTAP) sollten Sie externe Spanner-Datasets verwenden. |
| Notebooks und Visualisierung | Mit Streamlit-Anwendungen von Snowflake können Daten mit Python-Code visualisiert werden. | Mit BigQuery-Notebooks und der Python-Bibliothek BigFrames können Sie Daten in Python untersuchen und visualisieren. 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 dem Laufwerk zu organisieren. | BigQuery unterstützt explizite Partitionierung und Clustering, damit Nutzer genau steuern können, wie Daten verteilt und organisiert werden. Dies kann die Kosten- und Laufzeitleistung verbessern. Der SQL-Übersetzungsdienst verarbeitet die Übersetzung von Tabellen-Clustering automatisch und kann so konfiguriert werden, dass Partitionierung und Clustering bei der Migration von DDLs angepasst werden. |
| Externe Funktionen und Verfahren | Snowflake unterstützt Funktionen und gespeicherte Prozeduren, die in mehreren externen Sprachen implementiert sind. | BigQuery unterstützt externe Funktionsaufrufe über Cloud Run-Funktionen. Sie können auch [benutzerdefinierte Funktionen](/bigquery/docs/user-defined-functions) (UDF) wie SQL-UDFs verwenden, die in BigQuery ausgeführt werden. BigQuery unterstützt SQL für gespeicherte Prozeduren. Für andere Sprachen empfehlen wir die Verwendung externer Funktionen oder clientseitiger Anwendungslogik. |
BigQuery-Sicherheitsfunktionen
Bei der Migration von Snowflake zu BigQuery müssen Sie berücksichtigen, wie die Sicherheit beiGoogle Cloud 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. Dies ermöglicht einen zentralen und konsistenten Ansatz für die Sicherheitsverwaltung. Hier sind einige wichtige Sicherheitsfunktionen von Google Cloud:
- Integrierte Sicherheit: BigQuery nutzt die Sicherheitsfunktionen von Google Cloud. Dazu gehört IAM für eine detaillierte Zugriffssteuerung, um eine robuste und nahtlose Sicherheitsintegration zu ermöglichen.
- 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 von Zugriffsrechten, sodass Nutzer nur die Berechtigungen haben, die sie für ihre Aufgaben benötigen.
- Netzwerksicherheit: BigQuery profitiert von den robusten Netzwerksicherheitsfunktionen von Google Cloud, z. B. Virtual Private Cloud und private Verbindungen.
Berücksichtigen Sie bei der Migration von Snowflake zu BigQuery die folgenden sicherheitsbezogenen Migrationsanforderungen:
- IAM-Konfiguration: Sie müssen IAM-Rollen und -Berechtigungen in BigQuery so konfigurieren, dass sie Ihren vorhandenen Snowflake-Zugriffssteuerungsrichtlinien entsprechen. Dazu müssen Snowflake-Rollen den entsprechenden IAM-Rollen und -Berechtigungen für BigQuery zugeordnet werden.
- Detaillierte Zugriffssteuerung: Wenn Sie in Snowflake 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: Prüfen Sie bei der Migration von Ansichten und UDFs, ob die zugehörigen Sicherheitskontrollen ordnungsgemäß in autorisierte Ansichten und autorisierte UDFs in BigQuery übersetzt werden.
Verschlüsselung
BigQuery verschlüsselt Ihre Daten standardmäßig im Ruhezustand und während 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.
Beachten Sie Folgendes, um die Datensicherheit während und nach der Migration zu BigQuery zu gewährleisten:
- Schlüsselverwaltung: Wenn Sie vom Kunden verwaltete Schlüssel benötigen, richten Sie eine Schlüsselverwaltungsstrategie im Cloud Key Management Service ein und konfigurieren Sie BigQuery so, dass diese Schlüssel verwendet werden.
- Datenmaskierung/Tokenisierung: Wenn sensible Daten betroffen sind, prüfen Sie, ob eine Datenmaskierung oder Tokenisierung erforderlich ist, um sie zu schützen.
- Sicherheit auf Zeilenebene: Implementieren Sie die Sicherheit auf Zeilenebene mithilfe von autorisierten Ansichten, Sicherheitsfiltern 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 den Sicherheitsstatus Ihrer BigQuery-Umgebung zu prü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 derGoogle Cloud Console, der Identity and Access Management API oder der
gcloud CLIanwenden. 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 die Sicherheit auf Zeilenebene verwenden. 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:
- CSV-Daten aus Cloud Storage laden
- Parquet-Daten aus Cloud Storage laden
- JSON-Daten aus Cloud Storage laden
- Daten aus Apache Iceberg abfragen
Migrationstools
In der folgenden Liste werden die Tools beschrieben, mit denen Sie Daten von Snowflake zu BigQuery migrieren können. Beispiele für die gemeinsame Verwendung dieser Tools in einer Snowflake-Migrationspipeline finden Sie unter Beispiele für Snowflake-Migrationspipelines.
- Befehl
COPY INTO <location>: 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:
- BigQuery Data Transfer Service für Snowflake-Connector: Führen Sie eine automatisierte Batchübertragung von Cloud Storage-Daten nach BigQuery durch.
- Google Cloud CLI: Mit diesem Befehlszeilentool können Sie heruntergeladene Snowflake-Dateien in Cloud Storage kopieren.
- bq-Befehlszeilentool: Über dieses Befehlszeilentool können Sie mit BigQuery interagieren. Gängige Anwendungsfälle sind z. B. das Erstellen von BigQuery-Tabellenschemas, das Laden von Cloud Storage-Daten in Tabellen und das Ausführen von Abfragen.
- Cloud Storage-Clientbibliotheken: Kopieren Sie heruntergeladene Snowflake-Dateien mit einem benutzerdefinierten Tool, das die Cloud Storage-Clientbibliotheken verwendet, in Cloud Storage.
- BigQuery-Clientbibliotheken: Interagieren Sie mit BigQuery mit einem benutzerdefinierten Tool, das auf der BigQuery-Clientbibliothek basiert.
- BigQuery-Abfrageplaner: Planen Sie wiederkehrende SQL-Abfragen mit diesem integrierten BigQuery-Feature.
- Managed Service for Apache Airflow: Verwenden Sie diese vollständig verwaltete Apache Airflow-Umgebung, um BigQuery-Ladejobs und -Transformationen zu orchestrieren.
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
Für die 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 abzuschä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 verwiesen, z. B. Tabellen ohne Schreibvorgänge oder mit wenigen Lesevorgängen.
- BigQuery stabiler Zustand – Transformationsvorschläge: Zeigt, wie das System nach der Migration in BigQuery aussieht. Er enthält Vorschläge zur Optimierung von Arbeitslasten in BigQuery und 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 Data Studio-Bericht prüfen.
Migration validieren
Nachdem Sie Ihre Snowflake-Daten zu BigQuery migriert haben, führen Sie das Data Validation Tool (DVT) aus, um eine Datenvalidierung 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 die migrierten Daten wie vorgesehen funktionieren.