Snowflake Stored Procedure
Das Transferobjekt Snowflake Stored Procedure ruft eine gespeicherte Prozedur in der Snowflake AI Data Cloud auf. Eingabeparameter, Rückgabewerte und gegebenenfalls ein Result-Set können dabei innerhalb der Verbindung als Ziele oder Quellen genutzt werden.
Dialogübersicht

Allgemeine Eigenschaften
| Eigenschaft | Beschreibung |
|---|---|
| Datenquelle | Hier stehen alle im Bereich Plug-ins erstellten Snowflake-Anbindungen zur Auswahl. Sollte die gewünschte Anbindung noch nicht vorhanden sein, können Sie diese im Plug-ins-Bereich als „Snowflake AI Data Cloud”-Plug-in bereitstellen. |
| Stored Procedure | Auszuführende gespeicherte Prozedur. |
| Spalten/Parameter | Eingabe- und Rückgabeparameter der Prozedur, die als Quellen oder Ziele am Transferobjekt angebunden werden sollen. |
| Resultset abfragen | Werden Rückgabewerte in Form eines Result-Sets erwartet, können diese über Resultset abfragen ausgelesen und anschließend als Quelle am Transferobjekt bereitgestellt werden. |
Besonderheiten im OPC Router
- Der OPC Router liest die verfügbaren Parameter der Prozedur aus und stellt sie im Transferobjekt als verwendbare Elemente bereit.
- Wird
Resultset abfragenausgeführt, ruft der OPC Router die Prozedur einmalig auf, um die Struktur des Result-Sets zu ermitteln. Dieser Aufruf erfolgt innerhalb einer Transaktion, die anschließend zurückgerollt wird. - Zur Strukturermittlung ruft der OPC Router die Prozedur mit Standardparametern auf (
NULL; bei Parametern ohneNULL-Zulässigkeit z. B.0für numerische Werte oder ein leerer String für Zeichenketten).
Die Prozedur muss transaktionssicher sein und darf beim Standardaufruf zur Strukturerkennung keine Fehler zurückgeben.
Beispiel
Die folgende gespeicherte Prozedur schreibt einen Telemetrie-Messwert in die Tabelle MACHINE_TELEMETRY und gibt abhängig von der Temperatur einen Status zurück. Das oben gezeigte Transferobjekt ist für diese Prozedur konfiguriert.
CREATE OR REPLACE PROCEDURE PRODUCTION.SP_LOG_TELEMETRY(
MACHINE_ID VARCHAR,
TEMPERATURE FLOAT,
PRESSURE FLOAT
)
RETURNS VARCHAR
LANGUAGE SQL
AS
$$
BEGIN
INSERT INTO MACHINE_TELEMETRY (MACHINE_ID, TEMPERATURE, PRESSURE, INGESTED_AT)
VALUES (:MACHINE_ID, :TEMPERATURE, :PRESSURE, CURRENT_TIMESTAMP());
IF (:TEMPERATURE > 80) THEN
RETURN 'WARN_HIGH_TEMP';
ELSE
RETURN 'OK';
END IF;
END;
$$;
Im Transferobjekt binden Sie die drei Eingabeparameter (MACHINE_ID, TEMPERATURE, PRESSURE) als Ziele an; der Rückgabewert steht als Quelle zur Verfügung. Die Prozedur ist transaktionssicher: Beim Standardaufruf zur Strukturerkennung wird lediglich ein Datensatz mit Standardwerten eingefügt und wieder zurückgerollt, und es wird OK zurückgegeben.