Snowflake Python APIs: Verwalten von Snowflake-Objekten mit Python¶
Das Snowflake Python APIs-Paket ist eine einheitliche Bibliothek, die eine nahtlose Verbindung zwischen Python und Snowflake-Workloads herstellt. Es ist vorgesehen, umfassende APIs für die Interaktion mit zentralen Snowflake-Ressourcen über Data Engineering, Snowpark, Snowpark ML und Anwendungs-Workloads hinweg bereitzustellen, ohne dass API-Befehle verwendet werden müssen.
Unter Snowflake Python APIs können Sie Snowflake-Ressourcen verwalten, indem Sie sie erstellen, löschen oder ändern und vieles mehr. Sie können Python verwenden, um Aufgaben auszuführen, die Sie sonst mit Snowflake -SQL-Befehlen ausgeführt werden müssten.
Das folgende Diagramm zeigt die allgemeine Paketstruktur der Snowflake Python APIs:
Weitere Informationen über API, einschließlich seiner allgemeinen Konzepte und Muster, finden Sie unter Snowflake Python APIs: Allgemeine Konzepte.
Unterstützte Snowflake-Ressourcenobjekte¶
Mit Snowflake Python APIs können Sie derzeit die folgenden Objekte der Snowflake-Ressourcenobjekte verwalten (in Klammern die minimal erforderliche Version von API):
-
Konten (0.13.0)
Verwaltete Konten (0.13.0)
Benachrichtigungen (0.13.0)
-
Externe Volumes (0.13.0)
Pipes (0.13.0)
Stagingsbereiche (0.9.0)
Databases and database objects
Dynamische Tabellen (0.10.0)
Ereignistabellen (0.13.0)
Ansichten (0.13.0)
-
Benutzerdefinierte Funktionen (UDFs) (0.13.0)
Gespeicherte Prozeduren (0.13.0)
-
Katalogintegrationen (0.13.0)
Benachrichtigungsintegrationen (0.13.0)
Netzwerkrichtlinien (0.13.0)
Notebooks (0.13.0)
Streams (0.13.0)
-
Benutzer (0.9.0)
Rollen (0.9.0)
Datenbankrollen (0.13.1)
Zugriffsrechte (0.13.1)
Python-Ökosystem in Snowflake¶
Die Snowflake Python APIs, die Snowpark-API für Python und der Snowflake Connector für Python sind Weboberflächen, die in Snowflake jeweils einen bestimmten Zweck erfüllen. In diesem Abschnitt werden die Unterschiede erklärt und die typischen Anwendungsfälle für beide beschrieben.
- Snowflake Python APIs
Sie können diesen Satz erstklassiger Python-APIs verwenden, um Kernressourcen (wie Tabellen, Warehouses und Aufgaben) in Snowflake-Workloads zu definieren und zu verwalten. Anders als der Python-Konnektor interagieren diese APIs mit Snowflake unter Verwendung von nativem Python, ohne dass SQL verwendet werden muss.
Das Snowflake Python APIs-Paket vereint alle Snowflake Python-Bibliotheken (einschließlich
connector
,core
,snowpark
undml
), so dass Sie einfach mit dem Befehlpip install snowflake
starten können.Dem deklarativen Programmieransatz folgend, kann dieses API als DevOps-Tool verwendet werden, um Änderungen an Ihren Ressourcen zu verwalten und die Bereitstellung von Code und Infrastruktur in Snowflake zu automatisieren.
- Snowpark
Mit diesem Satz von Bibliotheken und Codeausführungsumgebungen können Sie Python und andere Programmiersprachen neben Ihren Daten in Snowflake ausführen.
Bibliotheken: Mit Snowpark API können Sie Snowpark-DataFrames in Ihrem Code verwenden, um Daten komplett innerhalb von Snowflake abzufragen und zu transformieren. Snowpark-Anwendungen verarbeiten Ihre Daten in großem Umfang direkt auf der Snowflake-Engine, ohne die Daten auf das System zu übertragen, auf dem Ihr Anwendungscode ausgeführt wird.
Die Snowpark-API ist in Python, Java und Scala verfügbar.
Code-Ausführungsumgebungen: Snowpark-Laufzeitumgebungen unterstützen Container-Images sowie Python-, Java- und Scala-Code.
Sie können benutzerdefinierten Python-Code über benutzerdefinierte Python-Funktionen (UDFs) oder gespeicherte Prozeduren ausführen, um Datenpipelines, Apps und mehr zu erstellen. Python-Laufzeitumgebungen haben Zugriff auf ein Paket-Repository und einen Paketmanager von Anaconda.
Laufzeitumgebungen sind auch in Scala und Java verfügbar.
Sie können containerisierte Anwendungen direkt innerhalb von Snowflake mit Snowpark Container Services ausführen.
- Snowflake Connector für Python
Verwenden Sie diesen SQL-Treiber, um eine Verbindung zu Snowflake herzustellen, SQL-Anweisungen auszuführen und dann die Ergebnisse über einen Python-Client abzurufen.
Mit dem Python-Konnektor schreiben Sie alle Ihre Interaktionen mit Snowflake unter Verwendung von SQL-Anweisungszeichenfolgen.
Erste Schritte mit Snowflake Python APIs¶
Um mit der Verwendung von Snowflake Python APIs zu beginnen, lesen Sie die Anweisungen in den folgenden Themen:
Tutorials für die ersten Schritte mit Snowflake Python APIs finden Sie unter Tutorials: Erste Schritte mit dem Snowflake Python APIs.
Unterstützte Python-Versionen¶
Folgende Versionen von Python werden unterstützt:
3.9
3.10
3.11
3,12
Entwicklerhandbücher¶
Benutzerhandbuch |
Beschreibung |
---|---|
Installieren Sie das Snowflake Python APIs-Paket. |
|
Herstellen einer zu Snowflake aus Python-Code. |
|
Verwalten von Snowflake-Konten und verwaltete Konten mit Python |
Verwenden der API, um Konten und verwaltete Konten zu erstellen und zu verwalten. |
Verwenden der API, um Benachrichtigungen zu erstellen und zu verwalten. |
|
Verwalten des Ladens von Daten und des Entladens von Ressourcen mit Python |
Verwenden der API, um Ressourcen zum Laden und Entladen von Daten zu erstellen und zu verwalten, einschließlich externer Volumes, Pipes und Stagingbereiche. |
Verwalten von Snowflake-Datenbanken, Schemas, Tabellen und Ansichten mit Python |
Verwenden der API, um Datenbanken, Schemas und Tabellen zu erstellen und zu verwalten. |
Verwenden der API, um dynamische Tabellen zu erstellen und zu verwalten. |
|
Verwalten von Snowflake-Funktionen und gespeicherten Prozeduren mit Python |
Verwenden der API, um benutzerdefinierte Funktionen (UDFs) und gespeicherte Prozeduren zu erstellen und zu verwalten. |
Verwenden der API, um Katalogintegrationen und Benachrichtigungen zu erstellen und zu verwalten. |
|
Verwenden der API, um Netzwerkrichtlinien zu erstellen und zu verwalten. |
|
Verwenden der API, um Snowflake Notebooks zu erstellen und zu verwalten. |
|
Verwalten von Snowpark Container Services (einschließlich Dienstfunktionen) mit Python |
Verwenden der API, um die Komponenten der Snowpark Container Services zu verwalten, einschließlich Computepools, Image-Repositorys, Diensten und Dienstfunktionen. |
Verwenden der API, um Streams zu erstellen und zu verwalten. |
|
Verwalten von Snowflake-Aufgaben und Task-Graphen mit Python |
Verwenden der API zum Erstellen, Ausführen und Verwalten von Aufgaben und Task-Graphen. |
Verwalten von Snowflake-Benutzern, Rollen und Berechtigungen mit Python |
Verwenden der API, um Benutzer, Rollen und Berechtigungen zu erstellen und zu verwalten. |
Verwenden der API, um virtuelle Warehouses zu erstellen und zu verwalten. |
Referenzen¶
Kosten für den Zugriff auf Snowflake¶
Um die Kosten zu senken, sowohl für die Credit-Nutzung als auch für die Aktivität im Netzwerk, ist Snowflake Python APIs so konzipiert, dass sie nur dann mit Snowflake kommuniziert, wenn Sie Methoden aufrufen, die für die Synchronisierung mit Snowflake vorgesehen sind.
Bei den Objekten in API handelt es sich entweder um lokale Referenzen (oder Handles) oder um Snapshots des in Snowflake gespeicherten Zustands. Wenn Sie die Informationen verarbeiten, die von Snowflake abgerufen wurden, geschieht dies im Allgemeinen über ein lokales In-Memory-Referenzobjekt.
Diese Referenzen werden erst dann mit Snowflake synchronisiert, wenn Sie eine Methode aufrufen. Wenn Sie eine Methode aufrufen, entstehen Ihnen in der Regel Kosten sowohl durch den Verbrauch von Credits als auch durch Netzwerkaktivitäten. Wenn Sie dagegen speicherinterne Referenzen verwenden, z. B. beim Zugriff auf Attribute, erfolgt die Ausführung lokal und verursacht keine solchen Kosten.