Snowpark Container Services: Richtlinien und Einschränkungen¶
Allgemeine Beschränkungen: Sollten Sie Probleme mit diesen Beschränkungen haben, wenden Sie sich bitte an Ihren Kontobeauftragten.
Sie können bis zu 200 Dienste in Ihrem Snowflake-Konto erstellen.
Jeder Dienst kann bis zu 100 Endpunkte haben (siehe spec.endpoints).
Jeder Dienst kann bis zu 20 Container haben (siehe spec.containers).
Jeder Dienst kann bis zu 50 Geheimnisse haben (siehe containers.secrets).
Jeder Dienst kann bis zu 20 Volumes haben (siehe spec.volumes).
Die folgenden Beschränkungen gelten, wenn Sie den Internetzugang (siehe Konfigurieren des Netzwerkausgangs) unter Verwendung von Integrationen für den externen Zugang (EAIs) aktivieren.
Jeder Service kann bis zu 10 EAIs unterstützen (siehe CREATE SERVICE und ALTER SERVICE).
Jedes EAI kann bis zu 100 Hostnamen haben.
Wenn Sie vom Internet aus auf den öffentlichen Endpunkt zugreifen, kann es sein, dass die Authentifizierung mit Benutzername und Kennwort funktioniert, aber SSO zu einer leeren Seite oder dem Fehler führt: „OAuth Clientintegration mit der angegebenen Client-ID wurde nicht gefunden.“ Informationen zum Umgang mit diesem Problem finden Sie unter Überlegungen zum Zugriff und SSO.
Anforderungen an die Image-Plattform: Snowpark Container Services erfordert derzeit linux/amd64 Plattform-Images.
Dienstcontainer haben keine Berechtigungen: Dienstcontainer werden derzeit ohne weitreichende Berechtigungen ausgeführt, d. h. sie können die Konfiguration der Hardware auf dem Host nicht ändern und können BS-Konfigurationen nur begrenzt ändern. Dienstcontainer können nur Betriebssystemkonfigurationen ausführen, die auch ein normaler Benutzer (d. h. ein Benutzer, der keine Root-Berechtigung benötigt) ausführen kann.
Umbenennen von Datenbank und Schema:
Benennen Sie keine Datenbanken und Schemas um, für die Sie bereits einen Dienst erstellt haben. Das Umbenennen bedeutet im Grunde, dass ein Dienst in eine andere Datenbank und ein anderes Schema verschoben wird, was nicht unterstützt wird. Beispiel:
Datenbank- und Schemainformationen, die Snowflake den aktiven Dienstcontainern zur Verfügung stellt, beziehen sich weiterhin auf die alten Namen.
Neue Protokolleinträge, die von Diensten in die Ereignistabelle aufgenommen werden, beziehen sich weiterhin auf die alten Datenbank- und Schemanamen.
Die Dienstfunktion wird weiterhin auf den Dienst in der alten Datenbank und dem alten Schema verweisen, und wenn Sie die Dienstfunktion aufrufen, wird sie fehlschlagen.
Eine Dienstspezifikation kann auf Objekte wie Snowflake-Stagingbereiche und Image-Repositorys verweisen. Wenn Sie den Namen von Datenbank oder Schema umbenennen, in denen sich diese Objekte befinden, müssen Sie die Datenbank- und Schemanamen der referenzierten Objekte in der Dienstspezifikation manuell aktualisieren.
Übertragen der Eigentümerschaft des übergeordneten Schemas oder der übergeordneten Datenbank:
Die Eigentümerschaft an der übergeordneten Datenbank/dem übergeordneten Schema kann auf eine andere Rolle übertragen werden. Die Eigentümerschaft von Services innerhalb der Datenbank oder des Schemas wird jedoch nicht auf die neue Rolle übertragen, da die Services als Eigentümerrollen des Service ausgeführt werden und sich das nicht ändert. Dadurch können die Services Berechtigungen für Objekte innerhalb des Schemas verlieren, z. B. für Image-Repositorys und Snowflake-Stagingbereiche in demselben Schema.
Wenn eine Übertragung der Eigentümerschaft des übergeordneten Schemas bzw. der übergeordneten Datenbank erforderlich ist, sollten Sie in Erwägung ziehen, die Services neu zu erstellen.
Löschen und Wiederherstellen von Datenbank und Schema:
Wenn Sie die übergeordnete Datenbank oder das übergeordnete Schema löschen, werden die Dienste asynchron gelöscht. Das bedeutet, dass ein Dienst noch einige Zeit weiter ausgeführt wird, bevor er durch interne Prozesse entfernt wird.
Wenn Sie versuchen, eine zuvor gelöschte Datenbank oder ein Schema wiederherzustellen, gibt es keine Garantie, dass die Dienste wiederhergestellt werden.
Übertragen der Eigentümerschaft von Services: Die Übertragung der Eigentümerschaft oder die zukünftige Übertragung der Eigentümerschaft von Services, einschließlich Jobdiensten, wird nicht unterstützt.
Übertragung der Eigentümerschaft von Dienstfunktionen:
Die Eigentümerschaft an einer Dienstfunktion kann an eine andere Rolle übertragen werden. Wenn die Rolle des neuen Eigentümers nicht die USAGE-Berechtigung für den Service hat, schlagen Funktionsaufrufe fehl. Sie müssen die USAGE-Berechtigung an die neue Rolle des Eigentümers der Funktion erteilen.
Replikation: Bei der Replikation in Snowflake ist Folgendes zu beachten:
Snowpark Container Services-Objekte wie Dienste, Computepools und Repositorys können nicht repliziert werden.
Wenn Sie ein Repository innerhalb einer Datenbank erstellen, kann nicht die gesamte Datenbank repliziert werden. In Fällen, in denen die Datenbank andere Ressourcen enthält, wie z. B. Dienste oder Computepools, wird der Replikationsprozess der Datenbank erfolgreich sein, aber diese einzelnen Objekte innerhalb der Datenbank werden nicht repliziert.
Timeout von Jobdiensten: Snowpark Container Services-Jobdienste werden standardmäßig synchron ausgeführt. Wenn eine Anweisung ein Zeitlimit überschreitet, wird der Jobdienst abgebrochen. Das Standard-Timeout für Anweisungen beträgt zwei Tage. Kunden können den Timeout-Wert ändern, indem sie den Parameter STATEMENT_TIMEOUT_IN_SECONDS mit ALTER SESSION einstellen.
ALTER SESSION SET statement_timeout_in_seconds=<time>
Stellen Sie ihn ein, bevor Sie den Befehl EXECUTE JOB SERVICE ausführen. Sie können Jobdienste asynchron ausführen, indem Sie
ASYNC=trueangeben, um zu verhindern, dass Jobdienste durch ein Timeout der Anweisung unterbrochen werden.Unterstützung für Datei-Staging-Befehle in Google Cloud: Um den Befehl PUT, GET, LISToder REMOVE mit Snowflake-Client-Bibliotheken auf Google Cloud zu verwenden, aktualisieren Sie Ihre Clients mindestens auf die folgenden Versionen.
Client
Version
Go-Snowflake-Treiber
1.14.1
Snowflake-Konnektor für Python
3.16.0
.NET-Treiber
4.6.0
Node.js-Treiber
2.1.3
JDBC-Treiber
3.25.1
ODBC-Treiber
3.10.0