Snowflake AI Data Cloud
Die Snowflake AI Data Cloud ist die Cloud-Datenplattform des Unternehmens Snowflake. Das „Snowflake AI Data Cloud”-Plug-in ermöglicht den bidirektionalen Datenaustausch zwischen dem OPC Router und dieser Plattform. Daten können sowohl in die Snowflake AI Data Cloud geschrieben als auch aus ihr gelesen werden. Dabei stehen verschiedene Methoden zur Verfügung, um Kosten, Performance und Latenz gezielt zu steuern.
Architektur und Betriebsweise
Alle Operationen werden grundsätzlich über ein Snowflake Warehouse ausgeführt. Das Warehouse übernimmt die Verarbeitung und Berechnung aller SQL-Abfragen und Schreibvorgänge.
Kostenhinweis: Jeder Lese- oder Schreibvorgang über das Warehouse verursacht Snowflake-Credits. Das gilt auch bei aktiviertem Auto Resume / Suspend – Kosten fallen an, sobald das Warehouse aktiv ist.
Für reine Ingest-Szenarien ohne Abfragen empfiehlt sich eine kostenoptimierte Alternative über Snowpipe.
Kostenoptimierte Ingest-Varianten (write-only)
Für Write-only-Szenarien, bei denen der OPC Router ausschließlich Daten in die Snowflake AI Data Cloud einfügt, stehen zwei Wege zur Verfügung:
1. REST Plug-in → Snowpipe
Über das REST Plug-in kann der OPC Router JSON- oder CSV-Daten an einen Snowpipe-Endpunkt senden. Snowpipe lädt diese Daten asynchron in die Zieltabellen, ohne ein Warehouse aktiv zu halten.
Vorteile
- Kein aktives Warehouse notwendig
- Hohe Kosteneffizienz für kontinuierliches Ingest
- Unterstützt Event-getriebene Transfers (z. B. aus Produktionssystemen)
2. Cloud File Access Plug-in → S3 / Stage
Alternativ kann der OPC Router Daten direkt in eine Cloud Stage (z. B. Amazon S3) schreiben. Snowpipe oder ein Copy-Command in der Snowflake AI Data Cloud liest die Daten anschließend automatisiert ein.
Vorteile
- Stapelverarbeitung größerer Datenmengen
- Ideal für periodisches oder gepuffertes Schreiben
- Keine dauerhafte Warehouse-Auslastung
Bidirektionale Nutzung
Das „Snowflake AI Data Cloud”-Plug-in unterstützt nicht nur das Schreiben, sondern auch das Lesen und Rückführen von Daten. Damit lassen sich Closed-Loop-Szenarien (z. B. Feedback aus Cloud-Analysen zurück an Maschinen) umsetzen.
Zwei gängige Ansätze stehen zur Verfügung:
1. Transferstatus-Trigger
Der Snowflake-Transferstatus-Trigger löst einen Transfer aus, wenn in der überwachten Tabelle ein Wert als noch nicht transferiert gekennzeichnet ist. Nach Abschluss des Transfers wird der Datensatz als transferiert oder als fehlgeschlagen markiert. Fehlgeschlagene Transfers können optional über einen weiteren Zähler beliebig oft wiederholt werden.
Ablauf
- Der Trigger überwacht eine definierte Tabelle.
- Ein Datensatz wird als nicht transferiert markiert (z. B. mit
0) oder bereits so hinzugefügt. - Sobald ein solcher Datensatz erkannt wird, wird ein Transfer ausgelöst.
- Nach erfolgreichem Transfer wird der Datensatz als transferiert (z. B.
1) oder fehlgeschlagen (z. B.2) markiert. - Fehlgeschlagene Transfers können optional mehrfach wiederholt werden, gesteuert über eine Wiederholungsspalte und -anzahl.
Vorteile
- Automatisierter Transferprozess auf Basis von Statuswerten.
- Wiederholungsmechanismus für fehlgeschlagene Transfers erhöht die Zuverlässigkeit.
- Statuswerte und Wiederholungslogik sind frei konfigurierbar.
- Die Transfermenge pro Durchlauf lässt sich begrenzen.
Hinweise
- Die überwachte Tabelle muss über einen Primärschlüssel verfügen.
- Status- und Wiederholungsspalte müssen mit
0bzw. dem konfigurierten Wert initialisiert sein –NULList nicht zulässig. - Sortierung und Filterung der zu transferierenden Datensätze sind konfigurierbar.
2. Data-Change-Trigger
Der Snowflake-Data-Change-Trigger überwacht ausgewählte Spalten einer Tabelle und löst bei Änderungen einen Transfer aus. Die Änderungen werden – je nach Einstellung – über Änderungsbenachrichtigungen oder über das im Plug-in konfigurierte Polling-Intervall erkannt. Eine eigene Statusspalte ist nicht erforderlich.
Ablauf
- Der Trigger überwacht die ausgewählten Spalten einer Tabelle.
- Bei einer Änderung in diesen Spalten wird ein Transfer ausgelöst.
- Über den Filter-Reiter lässt sich einschränken, wann ein Transfer tatsächlich ausgelöst wird.
Vorteile
- Keine zusätzliche Statusspalte nötig.
- Einfach in bestehende Tabellen integrierbar.
Hinweise
- Die überwachte Tabelle muss über einen Primärschlüssel verfügen.
- Optional kann ein Transfer bereits beim Verbindungsaufbau ausgelöst werden.
Best Practices
- Warehouse-Größe bewusst wählen: kleinere Cluster für kontinuierliche Streams, größere nur für Batch-Loads.
- Suspend aktiv nutzen: automatische Deaktivierung reduziert laufende Kosten erheblich.
- Ingest asynchron auslagern, wenn Echtzeit nicht erforderlich ist (Snowpipe, REST).
- Schemaänderungen versionieren, um stabile Transfers sicherzustellen.
| Szenario | Methode | Warehouse benötigt | Kostenoptimiert | Empfohlen für |
|---|---|---|---|---|
| Synchrone Inserts/Selects | Warehouse-Verbindung | ✅ | ❌ | Validierungen, kleine Datenmengen |
| Asynchrones Ingest (REST) | REST Plug-in → Snowpipe | ❌ | ✅ | Event-/Log-Daten, Edge → Cloud |
| Batch-Ingest (File Upload) | Cloud File Access → S3/Stage | ❌ | ✅ | Große Datenmengen, periodische Uploads |
| Daten aus der Snowflake AI Data Cloud lesen | SQL-Trigger, State- oder Timestamp-Spalte | ✅ | ❌ | Rücktransfer oder Data-Feedback |