Allgemeine Informationen zum Snowflake Native App Framework

Unter diesem Thema werden allgemeine Informationen zum Snowflake Native App Framework bereitgestellt.

Einführung in das Snowflake Native App Framework

Mit dem Snowflake Native App Framework können Sie Datenanwendungen erstellen, die die Hauptfunktionalität von Snowflake nutzen. Das Snowflake Native App Framework bietet Folgendes:

  • Erweitern der Möglichkeiten bestimmter Snowflake-Features, indem Daten und zugehörige Geschäftslogik für andere Snowflake-Konten freigeben werden. Die Geschäftslogik einer Anwendung kann eine Streamlit-App, gespeicherte Prozeduren und Funktionen umfassen, die mithilfe der Snowpark-API, JavaScript und SQL geschrieben wurden.

  • Freigeben einer Anwendung für Verbraucher über Freigabeangebote. Ein Freigabeangebot kann entweder kostenlos oder kostenpflichtig sein. Sie können Ihre Apps auf Snowflake Marketplace vertreiben und monetarisieren oder über private Freigabeangebote bestimmten Verbraucher bereitstellen.

  • Hinzufügen von umfangreichen Visualisierungen in Ihre Anwendung mithilfe von Streamlit.

Das Snowflake Native App Framework unterstützt auch eine verbesserte Benutzeroberfläche für Entwickler, die Folgendes bietet:

  • Eine optimierte Testumgebung, in der Sie Ihre Anwendungen von einem einzigen Konto aus testen können.

  • Ein robuster Entwickler-Workflow. Während Ihre Daten und die zugehörigen Datenbankobjekte in Snowflake verbleiben, können Sie unterstützende Codedateien und Ressourcen in der Versionskontrolle mit Ihren bevorzugten Entwicklertools verwalten.

  • Die Möglichkeit, Versionen und Patches für Ihre Anwendung zu veröffentlichen, sodass Sie als Anbieter die Logik Ihrer Anwendungen ändern und weiterentwickeln und schrittweise für die Verbraucher freigeben können.

  • Unterstützung der Protokollierung von strukturierten und unstrukturierten Ereignissen, sodass Sie Fehler beheben und Ihre Anwendungen überwachen können.

Komponenten des Snowflake Native App Framework

Die folgende Abbildung zeigt eine Übersicht zum Snowflake Native App Framework.

../../_images/native-apps-overview.png

Das Snowflake Native App Framework basiert auf dem Konzept von Anbietern und Verbrauchern und wird von anderen Snowflake-Features verwendet, darunter Snowflake Collaboration und Secure Data Sharing

Anbieter

Ein Snowflake-Benutzer, der Dateninhalte und Anwendungslogik für andere Snowflake-Benutzer freigeben möchte.

Verbraucher

Ein Snowflake-Benutzer, der Zugriff auf die von einem Anbieter freigegebenen Dateninhalte und Anwendungslogik möchte.

Anwendungspaket entwickeln und testen

Um Dateninhalte und Anwendungslogik für einen Verbraucher freizugeben, erstellen Anbieter ein Anwendungspaket.

Anwendungspaket

Ein Anwendungspaket kapselt Dateninhalte, Anwendungslogik, Metadaten und das Setup-Skript, die für eine Anwendung erforderlich sind. Ein Anwendungspaket enthält außerdem Informationen zu den für die Anwendung definierten Versionen und Patch-Level (Revisionsnummern). Weitere Informationen dazu finden Sie unter Anwendungspaket erstellen.

Ein Anwendungspaket kann Referenzen auf Dateninhalte und externe Codedateien enthalten, die ein Anbieter in die Anwendung integrieren möchte. Ein Anwendungspaket erfordert eine Manifest-Datei und ein Setup-Skript.

Manifest-Datei

Definiert die von der Anwendung benötigten Konfigurations- und Setup-Eigenschaften, einschließlich Speicherort des Setup-Skripts, Versionen usw. Weitere Informationen dazu finden Sie unter Manifest-Datei für ein Anwendungspaket erstellen.

Setup-Skript

Enthält SQL-Anweisungen, die ausgeführt werden, wenn der Verbraucher eine Anwendung installiert oder aktualisiert oder wenn ein Anbieter eine Anwendung zum Testen installiert oder aktualisiert. Der Speicherort des Setup-Skripts wird in der Datei manifest.yml angegeben. Weitere Informationen dazu finden Sie unter Setup-Skript erstellen.

Anwendungspaket veröffentlichen

Nach Entwicklung und Test eines Anwendungspakets kann ein Anbieter eine Anwendung für Verbraucher freigeben, indem ein Freigabeangebot veröffentlicht wird, das das Anwendungspaket als Datenprodukt eines Freigabeangebots enthält. Das Freigabeangebot kann ein Snowflake Marketplace-Angebot oder ein privates Angebot sein.

Snowflake Marketplace-Freigabeangebot

Ermöglicht Anbietern die Vermarktung von Anwendungen über die Snowflake-Datencloud. Durch das Veröffentlichen eines Freigabeangebots auf Snowflake Marketplace können Anbieter Freigabeangebote für viele Verbraucher gleichzeitig freigeben, anstatt mit jedem einzelnen Verbraucher Austauschbeziehungen zu unterhalten.

Privates Freigabeangebot

Erlaubt Anbietern, die Vorteile von Freigabeangeboten zu nutzen, um Anwendungen direkt für ein anderes Snowflake-Konto in einer beliebigen vom Snowflake Native App Framework unterstützten Snowflake-Region freizugeben.

Weitere Informationen dazu finden Sie unter Allgemeine Informationen zu Freigabeangeboten für weitere Informationen.

Anwendung installieren und verwalten

Nachdem ein Anbieter ein Freigabeangebot mit einem Anwendungspaket veröffentlicht hat, können Verbraucher das Angebot entdecken und die Anwendung installieren.

Snowflake Native App

Eine Snowflake Native App ist das Datenbankobjekt, das im Verbraucherkonto installiert ist. Wenn ein Verbraucher die Snowflake Native App installiert, erstellt Snowflake die Anwendung und führt das Setup-Skript aus, um die erforderlichen Objekte innerhalb der Anwendung zu erstellen. Weitere Informationen dazu finden Sie unter Eine App lokal installieren und testen.

Nach der Installation der Anwendung können die Verbraucher zusätzliche Aufgaben ausführen, darunter:

Weitere Informationen dazu, wie Verbraucher eine Anwendung installieren und verwalten, finden Sie unter Verwenden von Anwendungen als Verbraucher.

Allgemeine Informationen zu Snowflake Native Apps mit Snowpark Container Services

Eine Snowflake Native App with Snowpark Container Services (App mit Containern) ist eine Snowflake Native App, die Container-Workloads in Snowflake ausführt. Container-Apps können jeden von den Snowpark Container Services unterstützten containerisierten Dienst ausführen.

Apps mit Containern nutzen alle Features des Snowflake Native App Framework, einschließlich Anbieter-IP-Schutz, Sicherheit und Governance, Data Sharing, Monetarisierung und Integration mit Computeressourcen.

Wie jede Snowflake Native App besteht eine App mit Containern aus einem Anwendungspaket und einem Anwendungsobjekt. Es gibt jedoch einige Unterschiede, wie in der folgenden Abbildung gezeigt:

../../_images/na-spcs-overview.png
Anwendungspaket:

Um Container verwalten zu können, muss das Anwendungspaket Zugriff auf eine Servicespezifikationsdatei in einem Stagingbereich haben. Diese Datei enthält Referenzen auf die Container-Images, die von der App benötigt werden. Diese Images müssen in einem Image-Repository des Anbieterkontos gespeichert sein.

Anwendungsobjekt:

Wenn ein Verbraucher eine App mit Containern installiert, enthält das erstellte Anwendungsobjekt einen Computepool, in dem die von der App benötigten Container gespeichert sind.

Computepool:

Ein Computepool ist eine Sammlung von einem oder mehreren virtuellen VM-Knoten (virtuelle Maschinen), auf denen Snowflake Ihre Snowpark Container Services-Jobs und -Dienste ausführt. Wenn ein Verbraucher eine App mit Containern installiert, kann dieser der App die Berechtigung CREATE COMPUTE POOL zuweisen oder die Computepools manuell erstellen.

Geistiges Eigentum des Anbieters in einer App mit Containern schützen

Wenn eine App mit Containern im Verbraucherkonto installiert ist, steht dort der Abfrageverlauf der Dienste zur Verfügung. Um die vertraulichen Informationen eines Anbieters zu schützen, werden vom Snowflake Native App Framework die folgenden Informationen ausgeblendet:

  • Der Abfragetext ist in der Ansicht QUERY_HISTORY verborgen.

  • Alle Informationen in der Ansicht ACCESS_HISTORY sind verborgen.

  • Der Query Profile-Task-Graph für die Abfrage des Dienstes wird zu einem einzigen leeren Knoten zusammengeklappt, anstatt den vollständigen Query Profile-Strukturbaum anzuzeigen.

Mehrstufige Anforderungen für Benutzer in einem Anbieterkonto

Abhängig vom Typ des Benutzers verlangt Snowflake verschiedene Authentifizierungstypen für Benutzer im Anbieterkonto.

Nicht-Service-Benutzer

Snowflake empfiehlt, dass sich Benutzer in einem Anbieterkonto für die mehrstufige Authentifizierung (MFA) anmelden, wenn die Eigenschaft TYPE nicht auf SERVICE eingestellt ist. In einem zukünftigen Update wird die mehrstufige Authentifizierung für diese Typen von Benutzern obligatorisch sein. Nicht-Service-Benutzer, die Verbundauthentifizierung und Single Sign-On (SSO) verwenden, müssen MFA als Teil ihres Authentifizierungsprozesses aktiviert haben.

Service-Benutzer

Benutzer, bei denen der Parameter TYPE auf SERVICE eingestellt ist, müssen die Authentifizierung mit dem Schlüsselpaar oder OAuth verwenden.