Beschränkungen für Scala in mit SQL erstellten gespeicherten Prozeduren¶
Gespeicherte Prozeduren haben die folgenden Beschränkungen:
Parallelität wird nicht unterstützt. So können Sie beispielsweise über Ihren Code keine Abfragen von mehreren Threads übermitteln. Code, der mehrere Abfragen gleichzeitig ausführt, führt zu einem Fehler.
Wenn Sie Ihre gespeicherte Prozedur von einer Aufgabe aus ausführen, müssen Sie beim Erstellen der Aufgabe ein Warehouse angeben. (Sie können zum Ausführen der Aufgabe keine serverlosen Computeressourcen verwenden.)
Beachten Sie die folgenden Einschränkungen für die Verwendung von Snowpark-APIs in Ihrer gespeicherten Prozedur.
Wenn Sie APIs verwenden, die PUT- und GET-Befehle ausführen (einschließlich
Session.sql("PUT ...")
undSession.sql("GET ...")
), dürfen Sie nur in das Verzeichnis/tmp
des speichergestützten Dateisystems schreiben, das für die Abfrage vorgesehen ist, das die Prozedur aufruft.Verwenden Sie keine APIs, die neue Sitzungen erstellen (z. B.
Session.builder().configs(...).create()
).Die Verwendung von
session.jdbcConnection
(und der zurückgegebenen Verbindung) wird nicht unterstützt, da sie zu unsicherem Verhalten führen kann.
Das Erstellen benannter temporärer Objekte wird in einer gespeicherten Prozedur mit Eigentümerrechten nicht unterstützt. Eine gespeicherte Prozedur mit Eigentümerrechten ist eine gespeicherte Prozedur, die mit den Berechtigungen des Eigentümers der gespeicherten Prozedur ausgeführt wird. Weitere Informationen dazu finden Sie unter Aufruferrechte oder Eigentümerrechte.