Konfigurieren von Snowflake für Spark in Databricks¶
Mit dem nativen Snowflake-Konnektor von Databricks, Version 4.2 können Sie über Ihr Databricks-Konto Daten von Snowflake lesen bzw. in Snowflake schreiben, ohne Bibliotheken importieren zu müssen. Bei älteren Versionen von Databricks war es bisher erforderlich, die Bibliotheken für den Spark-Konnektor in Ihr Databricks-Cluster zu importieren.
Der Konnektor verteilt die Verarbeitung automatisch auf Spark und Snowflake, ohne dass der Benutzer die Teile der Verarbeitung angeben muss, die auf dem jeweiligen System ausgeführt werden. Abfragen profitieren zudem von der automatischen Abfrage-Pushdown-Optimierung in Snowflake.
Unter diesem Thema:
Voraussetzungen¶
Sie müssen ein Databricks-Konto haben und die Databricks Runtime, Version 4.2 oder höher verwenden. Darüber hinaus gilt:
Sie sollten Ihren Snowflake-Benutzeranmeldenamen und Ihr Kennwort bereits in Ihrem Databricks Secret Manager festgelegt haben. Sie werden den Benutzernamen und das Kennwort durch Aufruf von
dbutils.secrets.get(...)
einlesen. Weitere Details zum Databricks Secret Manager finden Sie unter https://docs.databricks.com/user-guide/secrets/index.html
Sie müssen ein Snowflake-Konto haben. Um von diesem Konto aus lesen oder schreiben zu können, benötigen Sie die folgenden Informationen:
URL Ihres Snowflake-Kontos.
Anmeldename und Kennwort für den Benutzer, der sich mit dem Konto verbindet.
Standarddatenbank und Standardschema, die nach dem Verbinden für die Sitzung verwendet werden sollen.
Virtuelles Standard-Warehouse, das nach dem Verbinden für die Sitzung verwendet werden soll.
Die für die Verbindung verwendete Rolle benötigt USAGE- und CREATE STAGE-Berechtigungen für das Schema, das die Tabelle enthält, aus der Sie über Databricks lesen oder schreiben werden.
Zugriff auf die Dokumentation für den Databricks Snowflake Connector¶
Die primäre Dokumentation für den Databricks Snowflake Connector ist auf der Databricks-Website verfügbar. Diese Dokumentation enthält Beispiele für die Befehle, mit denen ein Scala- oder Python-Notebook Daten von Spark nach Snowflake oder umgekehrt sendet.
Weitere Informationen dazu finden Sie unter Datenquellen – Snowflake.
Vorbereiten eines externen Speicherorts für zeitintensive Abfragen¶
Wenn einige Ihrer Jobs länger als 36 Stunden dauern, sollten Sie erwägen, einen externen Speicherort für den Datenaustausch zwischen Snowflake und Spark vorzubereiten. Weitere Informationen dazu finden Sie unter Vorbereiten eines externen Speicherorts für Dateien.
Abfrage-Pushdown in Databricks¶
Spark-Abfragen profitieren von der automatischen Abfrage-Pushdown-Optimierung in Snowflake, mit der die Performance deutlich verbessert wird. Standardmäßig ist die Snowflake-Abfrageverschiebung (Pushdown) in Databricks aktiviert.
Weitere Details zum Abfrage-Pushdown finden Sie unter Spark-Abfrageverarbeitung mit Snowflake (Snowflake-Blog).