Snowpark Container Services

Allgemeine Informationen zu Snowpark Container Services

Snowflake begann mit der Bereitstellung einer SQL-Datenbank zur Abfrage von strukturierten und semistrukturierten Daten, aber SQL allein ist nicht ideal für komplexe Berechnungen oder maschinelles Lernen. Um dieses Problem zu lösen, hat Snowflake Snowpark eingeführt, mit dem Entwickelnde Sprachen wie Python, Java und Scala verwenden können, um Datenanwendungen und Pipelines zu erstellen. Snowpark übersetzt diesen Code in optimierte SQL, die die Flexibilität moderner Sprachen mit der Leistung und Skalierbarkeit von Snowflakes SQL-Engine kombiniert.

Für mehr Flexibilität bietet Snowflake Snowpark Container Services, eine verwaltete Container-Orchestrierungsplattform innerhalb von Snowflake. Sie können Ihre Anwendung und deren Abhängigkeiten in eine Open Container Initiative (OCI) packen, die jede Programmiersprache, jedes Framework oder jede Bibliothek enthalten kann. Dies ermöglicht Anwendungsfälle, die kundenspezifische Laufzeiten, spezielle Bibliotheken oder spezifische Softwarekonfigurationen erfordern. Darüber hinaus können Sie mit der Unterstützung für fortgeschrittene CPUs und GPUs rechenintensive Workloads ausführen, wie z. B. ML-Modellbereitstellung, ML-Modelltraining und fortgeschrittene AI-Analysen. Snowflake verwaltet die zugrunde liegende Infrastruktur, aber Sie haben die volle Kontrolle über den Inhalt Ihrer containerisierten Umgebung.

Als vollständig verwalteter Dienst rationalisiert Snowpark Container Services die betrieblichen Aufgaben im Zusammenhang mit der Ausführung Ihrer Container. Unter Verwendung von Best Practices übernimmt Snowpark Container Services die Feinheiten der Containerverwaltung, einschließlich Sicherheit und Konfiguration. Dadurch wird sichergestellt, dass sich die Benutzenden auf die Entwicklung und Bereitstellung ihrer Anwendungen konzentrieren können, ohne sich um die Verwaltung der zugrunde liegenden Infrastruktur kümmern zu müssen.

Snowpark Container Services ist vollständig in Snowflake integriert. Unter diesen Voraussetzungen können Ihre Anwendung zum Beispiel problemlos folgende Aufgaben ausführen:

  • Herstellen einer Verbindung zu Snowflake und Ausführen von SQL in einem virtuellen Snowflake-Warehouse

  • Zugriff auf Datendateien in einem Snowflake-Stagingbereich

  • Verarbeiten von Daten, die über SQL-Abfragen abgerufen werden

Ihre Anwendung kann Ihre vorhandene Snowflake-Konfiguration nutzen, einschließlich der folgenden Elemente:

  • Netzwerkrichtlinien für den eingehenden Netzwerk-Datenverkehr

  • Integration für den externen Zugriff für ausgehenden Netzwerk-Datenverkehr

  • Rollenbasierte Zugriffssteuerung zur Ermöglichung der Dienst-zu-Dienst-Kommunikation

  • Ereignistabellen für Protokolle, Metriken und Ereignisse

Snowpark Container Services ist auch in Tools von Drittanbietern integriert. Damit können Sie Drittanbieter-Clients wie z. B. Docker verwenden, um Ihre Anwendungsimages einfach auf Snowflake hochzuladen. Die nahtlose Integration erleichtert es den Teams, sich auf die Entwicklung der Datenanwendungen zu konzentrieren.

Alle diese Funktionen sind mit den Vorteilen der Snowflake-Plattform verbunden, insbesondere deren Features für Benutzerfreundlichkeit, Sicherheit und Governance. Sie verfügen neben der leistungsstarken Snowflake-Datenschicht auch über eine skalierbare, flexible Computing-Schicht, ohne dass Sie Daten von der Plattform auslagern müssen.

Typische Szenarios für die Nutzung von Snowpark Container Services

Ihre Anwendung kann in Snowflake-Regionen bereitgestellt werden, ohne dass Sie sich um die zugrunde liegende Cloudplattform (AWS, Azure oder Google Cloud) kümmern müssen. Snowpark Container Services erleichtert Ihrer Anwendung auch den Zugriff auf Ihre Snowflake-Daten. Darüber hinaus verwaltet Snowflake die zugrunde liegenden Serverknoten.

Die folgende Liste zeigt die allgemeinen Workloads für Snowpark Container Services:

  • Batch-Jobs für die Datenverarbeitung: Führen Sie flexible Jobs ähnlich wie gespeicherte Prozeduren aus, die Daten aus Snowflake oder externen Quellen abrufen, verarbeiten und Ergebnisse erzeugen. Workloads können auf mehrere Jobinstanzen verteilt werden, und die Unterstützung der Graphics Processing Unit (GPU) ist für rechenintensive Aufgaben wie AI und Machine Learning verfügbar.

  • Dienstfunktionen: Ihr Dienst kann eine Dienstfunktion bereitstellen, sodass Ihre Abfragen Batches von Daten zur Verarbeitung an Ihren Dienst senden können. Die Abfrageverarbeitung erfolgt in der erweiterten Abfrage-Engine von Snowflake, und Ihr Dienst bietet eine kundenspezifische Datenverarbeitung, die Snowflake auf mehrere Serverknoten skalieren kann. Ein Beispiel dazu finden Sie unter Tutorial 1. In Schritt 4 dieses Tutorials rufen Sie die Dienstfunktion in einer Abfrage auf.

  • APIs oder Web UI Over Snowflake Data: Stellen Sie Dienste bereit, die APIs oder Weboberflächen mit eingebetteter Geschäftslogik verfügbar machen. Benutzende interagieren mit dem Dienst und nicht mit Rohdaten. Aufruferrechte stellen sicher, dass Abfragen mit den richtigen Benutzerberechtigungen ausgeführt werden. Ein Beispiel dazu finden Sie unter Tutorial 1. In diesem Tutorial stellt der Dienst auch eine Web-UI für das Internet zur Verfügung. In Schritt 4 senden Sie von einem Webbrowser aus Anforderungen an den Dienst.

Wie funktioniert das?

Um containerisierte Anwendungen in Snowpark Container Services auszuführen, nutzen Sie nicht nur die grundlegenden Snowflake-Objekte wie Datenbanken und Warehouses, sondern auch die folgenden Objekte: Image-Repository, Computepool und Dienst.

Snowflake bietet eine Image-Registry, die einen OCIv2-kompatiblen Dienst zum Speichern Ihrer Images darstellt. Dieser Dienst ermöglicht Open Container Initiative (OCI)-Clients, wie beispielsweise Docker CLI, Ihre Anwendungsimages in ein Repository (eine Speichereinheit) in Ihrem Snowflake-Konto hochzuladen. Sie erstellen ein Repository mit dem Befehl CREATE IMAGE REPOSITORY. Weitere Informationen dazu finden Sie unter Verwenden von Image-Registry und Image-Repository.

Nachdem Sie Ihr Anwendungsimage in ein Repository hochgeladen haben, können Sie Ihre Anwendung ausführen, indem Sie einen langlaufenden Dienst erstellen oder einen Jobdienst ausführen.

  • Dienst: Ein Dienst hat eine lange Ausführungszeit, das heißt, Sie müssen ihn wie einen Webdienst explizit beenden, wenn er nicht mehr benötigt wird. Wenn ein Dienstcontainer aus welchem Grund auch immer beendet wird, startet Snowflake diesen Container neu. Zum Erstellen eines Dienstes, z. B. einer Full-Stack-Webanwendung, verwenden Sie den Befehl CREATE SERVICE.

  • Jobdienst: Ein Jobdienst hat eine begrenzte Lebensdauer, ähnlich wie eine gespeicherte Prozedur. Wenn alle Container beendet werden, ist auch der Jobdienst beendet. Snowflake startet Jobdienstcontainer nicht erneut. Um einen Jobdienst zu starten, z. B. zum Trainieren eines Machine-Learning-Modells mit GPUs, verwenden Sie den Befehl EXECUTE JOB SERVICE.

Ihre Dienste, einschließlich Jobdienste, werden in einem Computepool ausgeführt, der eine Sammlung von einem oder mehreren VM-Knoten (virtuelle Maschinen) darstellt. Sie erstellen zunächst einen Computepool mit dem Befehl CREATE COMPUTE POOL und geben dann beim Erstellen eines Dienstes oder eines Jobdienstes diesen Computepool an. Zu den erforderlichen Informationen für das Erstellen eines Computepools gehören der Maschinentyp, die Mindestanzahl von Knoten, mit denen der Computepool gestartet werden soll, und die maximale Anzahl von Knoten, auf die der Computepool skaliert werden kann. Einige der unterstützten Maschinentypen stellen GPU bereit. Weitere Informationen dazu finden Sie unter Verwenden von Computepools.

Nachdem Sie einen Dienst erstellt haben, können Benutzende desselben Snowflake-Kontos, in dem der Dienst erstellt wurde, den Dienst nutzen, wenn sie über die entsprechenden Berechtigungen verfügen. Weitere Informationen dazu finden Sie unter Verwenden eines Dienstes.

Bemerkung

Die Snowpark Container Services-Dokumentation verwendet bei der Erläuterung von Konzepten und in Beispielen hauptsächlich SQL-Befehle und -Funktionen. Snowflake bietet auch andere Schnittstellen, darunter Python APIs, REST APIs und das Snowflake CLI Befehlszeilentool für die meisten Operationen.

Verfügbare Regionen und Hinweise

Snowpark Container Services ist in allen Regionen vertreten, mit Ausnahme der folgenden:

Snowpark Container Services ist nicht für Konten zu Testzwecken verfügbar, außer für den Betrieb von Notebooks.

Nächste Schritte

Wenn Snowpark Container Services neu für Sie sind, empfehlen wir Ihnen, zunächst die Tutorials auszuführen und dann mit anderen Themen fortzufahren, um mehr zu erfahren und eigene containerisierte Anwendungen zu erstellen. Unter folgenden Themen finden Sie weitere Informationen: