Verwaltung von Snowpipe¶
Dieses Thema beschreibt die administrativen Aufgaben, die mit der Verwaltung von Snowpipe verbunden sind.
Unter diesem Thema:
Laden historischer Daten¶
Bemerkung
Die Informationen in diesem Abschnitt beziehen sich auf das automatische Laden von Daten mithilfe von Ereignisbenachrichtigungen. Durch Aufrufe über die Snowpipe REST-API können historische Daten geladen werden, ohne dass zusätzliche Schritte erforderlich sind.
Mithilfe der ALTER PIPE … REFRESH-Anweisung können Sie einen Satz von Staging-Datendateien der letzten 7 Tage in die Erfassungswarteschlange von Snowpipe kopieren, um sie in die Zieltabelle zu laden. Wenn Sie Daten aus älteren Stagingdateien laden möchten, empfehlen wir die folgenden Schritte:
Laden Sie die historischen Daten in die Zieltabelle, indem Sie eine COPY INTO <Tabelle>-Anweisung ausführen.
Konfigurieren Sie das automatische Laden von Daten unter Verwendung von Snowpipe mit Ereignisbenachrichtigungen. Neue Stagingdateien lösen Ereignisbenachrichtigungen für die Aufnahme in die Zieltabelle aus. Da die historischen Datendateien keine Ereignisbenachrichtigungen auslösen, werden sie nicht zweimal geladen.
Eine Anleitung dazu finden Sie unter:
- Amazon S3
- Google Cloud Storage
- Microsoft Azure
Automatisieren von Snowpipe für Microsoft Azure Blob-Speicher
Führen Sie die ALTER PIPE … REFRESH-Anweisung aus, um alle Dateien, die zwischen Schritt 1 und 2 bereitgestellt wurden, in die Warteschlange aufzunehmen. Die Anweisung überprüft den Ladeverlauf sowohl für die Zieltabelle als auch für die Pipe, um sicherzustellen, dass dieselben Dateien nicht zweimal geladen werden.
Ändern der Cloudparameter des referenzierten Stagingbereichs¶
Die Cloudparameter eines externen Stagingbereichs umfassen Folgendes:
URL
STORAGE_INTEGRATION
ENCRYPTION
Nach der erfolgreichen Konfiguration von Snowpipe können Sie die folgenden Schritte auszuführen, um einen der Cloudparameter des referenzierten Stagingbereichs zu ändern:
Halten Sie die Pipe an (mit ALTER PIPE … SET PIPE_EXECUTION_PAUSED = true). Warten Sie, bis alle derzeit in der Warteschlange befindlichen Dateien in die Zieltabelle geladen wurden.
Ändern Sie die Stagingbereichsparameter wie erforderlich (mit ALTER STAGE).
Setzen Sie die Pipe fort (mit
ALTER PIPE ... SET PIPE_EXECUTION_PAUSED = false
).
Da Pipes nicht transaktional sind, stellen diese Schritte sicher, dass Snowpipe Dateien mit den neuesten Parameterwerten des Stagingbereichs in die Warteschlange stellt.
Warnung
Das Ändern des Parameters URL
eines Stagingbereichs kann dazu führen, dass abhängige Pipes, die Cloudmessaging zum Auslösen von Datenladevorgängen nutzen (d. h. durch AUTO_INGEST = TRUE
), nicht mehr funktionieren.
Übertragen der Pipe-Eigentümerschaft¶
Führen Sie die folgenden Schritte aus, um die Eigentümerschaft einer Pipe zu übertragen:
Setzen Sie den Parameter PIPE_EXECUTION_PAUSED auf TRUE.
Dieser Parameter ermöglicht das Anhalten oder Fortsetzen einer Pipe. Der Parameter wird auf folgenden Ebenen unterstützt:
Konto
Schema
Pipe
Auf Pipeebene kann der Objekteigentümer (oder eine übergeordnete Rolle in einer Rollenhierarchie) den Parameter so einstellen, dass eine einzelne Pipe angehalten oder fortgesetzt wird.
Ein Kontoadministrator (Benutzer mit der Rolle ACCOUNTADMIN) kann diesen Parameter auf Kontoebene so einstellen, dass alle Pipes im Konto angehalten oder fortgesetzt werden. Ebenso kann ein Benutzer mit der Berechtigung MODIFY im Schema die Pipes auf Schemaebene anhalten oder fortsetzen. Beachten Sie, dass dieses größere Domainsteuerelement nur Pipes betrifft, bei denen der Parameter nicht bereits auf einer niedrigeren Ebene gesetzt wurde, z. B. durch den Eigentümer auf Objektebene.
Erzwingen Sie die Fortsetzung der Pipe (mit SYSTEM$PIPE_FORCE_RESUME).
Dies ermöglicht es dem neuen Eigentümer, den Pipestatus zu bewerten und festzustellen, wie viele Dateien darauf warten, mit SYSTEM$PIPE_STATUS geladen zu werden. Es wird empfohlen, sicherzustellen, dass nur Dateien in die Warteschlange gestellt werden, die zum Laden in die Zieltabelle zugelassen sind.
Ändern der COPY-Anweisung in einer Pipedefinition¶
Führen Sie folgende Schritte aus, um die COPY-Anweisung in einer Pipedefinition zu ändern; zum Beispiel, wenn der Zieltabelle Spalten hinzugefügt werden.
Um die Befehle in diesem Abschnitt ausführen zu können, muss die aktuelle Rolle des Benutzers über die Berechtigung OWNERSHIP für die Pipe verfügen.
Halten Sie die Pipe an (mit ALTER PIPE … SET PIPE_EXECUTION_PAUSED = true).
Fragen Sie die Funktion SYSTEM$PIPE_STATUS ab, und vergewissern Sie sich, dass der Ausführungsstatus der Pipe
PAUSED
und die Anzahl der ausstehenden Dateien 0 ist.Erstellen Sie die Pipe neu, um die COPY-Anweisung in der Definition zu ändern. Wählen Sie eine der folgenden Optionen:
Löschen Sie die Pipe (mit DROP PIPE), und erstellen Sie sie (mit CREATE PIPE).
Erstellen Sie die Pipe neu (mithilfe der Syntax CREATE OR REPLACE PIPE). Intern wird die Pipe gelöscht und erstellt.
Halten Sie die Pipe erneut an.
Überprüfen Sie die Konfigurationsschritte für Ihren Cloudmessagingdienst, um sicherzustellen, dass die Einstellungen weiterhin korrekt sind:
Setzen Sie die Pipe fort (mit ALTER PIPE … SET PIPE_EXECUTION_PAUSED = false).
Fragen Sie die Funktion SYSTEM$PIPE_STATUS erneut ab, und vergewissern Sie sich, dass der Ausführungsstatus der Pipe
RUNNING
ist.
Bemerkung
Die Metadaten zum Laden von Dateien sind dem Pipeobjekt zugeordnet und nicht der Tabelle. Durch Neuerstellung der Pipe wird der Verlauf der geladenen Dateien gelöscht. Stellen Sie sicher, dass Dateien, die bereits von Snowpipe geladen wurden, nicht versehentlich erneut an die Pipe gesendet und ein weiteres Mal in die Zieltabelle geladen werden. Um den Abfrageverlauf für eine Tabelle anzuzeigen, fragen Sie die Funktion COPY_HISTORY ab.