Fehlerbehandlung in leistungsstarkem Snowpipe-Streaming¶
In diesem Thema werden die Mechanismen zur Fehlerbehandlung beschrieben, die in der leistungsstarken Edition von Snowpipe Streaming verfügbar sind. Dieser erweiterte Ansatz liefert detaillierte Fehlerinformationen und verbessert den gesamten Prozess der Fehlerbehandlung für eine robustere und informativere Erfahrung.
Wichtige Features zur Fehlerbehandlung in der High-Performance-Architektur¶
Erweiterter Endpunkt für den Kanalstatus: Diese Edition erweitert den Kanalstatus-Endpunkt, um umfassendere Fehlerinformationen zu liefern.
Detaillierte Fehlerdetails: Die leistungsstarke Edition bietet detailliertere Fehlerinformationen, die Ihnen helfen, den Fehler zu identifizieren und die Ursachen für Aufnahmepobleme zu finden.
Verbesserte Client-Erfahrung: Die leistungsstarke Edition vereinfacht die Fehlerbehandlung für Clients, indem sie die Komplexität der Fehlersuche und -behebung reduziert.
Neue Kanalverlaufsansicht: Snowflake führt außerdem Ansicht SNOWPIPE_STREAMING_CHANNEL_HISTORY ein, das eine historische Aufzeichnung der Kanalaktivitäten zur Überwachung und Fehlersuche bietet. Mit diesem Feature können Sie Fehlertrends verfolgen und mögliche Probleme proaktiv angehen.
Details zum Kanalstatus-Endpunkt¶
Die High-Performance-Architektur führt einen neuen Endpunkt für den Kanalstatus ein, der detailliertere Informationen liefert. Dieser Endpunkt liefert zeitpunktbezogene Informationen über einen Kanal.
Zusätzlich zu den Kanalstatusinformationen (statusCode
, persistedOffsetToken
) für die klassische Architektur enthält die High-Performance-Architektur Folgendes:
channel_status_code
: Zeigt den aktuellen Betriebsstatus des Streaming-Kanals an. Dieser Code gibt Aufschluss über den Zustand des Kanals und seine Fähigkeit, Daten aufzunehmen.last_commited_offset_token
: Zeigt das Offset-Token des letzten Zeilensatzes an, der von Snowflake erfolgreich in die Zieltabelle übertragen wurde. Dies ist entscheidend für die Verfolgung des Fortschritts und die Sicherstellung der Datenlieferung.created_on_ms
: Der Zeitstempel in Millisekunden, der angibt, wann der Streaming-Kanal erstmals in Snowflake erstellt wurde.database_name
: Der Name der Datenbank, in die der Streaming-Kanal für den Dateninput konfiguriert ist.schema_name
: Der Name des Schemas innerhalb der angegebenen Datenbank, in dem sich die Zieltabelle für den Streaming-Kanal befindet.pipe_name
: Der Name des Snowpipe-Objekts, das so konfiguriert ist, dass es diesen Snowpipe Streaming-Kanal für die Aufnahme von Daten in eine bestimmte Zieltabelle verwendet.channel_name
: Ein vom Benutzer erstellter Name für die spezifische Snowpipe Streaming-Kanalinstanz.rows_inserted
: Eine Zählung der Gesamtzahl der Datenzeilen, die seit der Erstellung des Streaming-Kanals erfolgreich über diesen Kanal in die Zieltabelle eingefügt wurden.rows_parsed
: Eine Zählung der Gesamtzahl der Datenzeilen, die vom Snowpipe Streaming-Service für diesen Kanal verarbeitet und geparst wurden (aber nicht unbedingt eingefügt wurden, z. B. aufgrund von Fehlern).rows_error_count
: Eine Zählung der Gesamtzahl der Datenzeilen, die während der Verarbeitung auf Fehler gestoßen sind und daher vom Snowpipe Streaming-Service für diesen Kanal zurückgewiesen wurden.last_error_offset_upper_bound
: Die obere Grenze des Offset-Token-Bereichs des letzten Rowsets, das Fehler enthielt. Dies hilft dabei, die ungefähre Position der letzten Fehler innerhalb des Datenstroms zu identifizieren.last_error_message
: Eine von Menschen lesbare Nachricht, die dem letzten Fehlercode entspricht.last_error_timestamp
: Der Zeitstempel, der angibt, wann der letzte Fehler auf diesem Streaming-Kanal aufgetreten ist.snowflake_avg_processing_latency_ms
: Die durchschnittliche Latenzzeit in Millisekunden, die der Snowflake Service bei der Verarbeitung der über diesen Kanal empfangenen Rowsets beobachtet. Diese Metrik gibt Aufschluss über die Leistung der Aufnahme-Pipeline in Snowflake.
Ablauf der Fehlerbehandlung in der High-Performance-Architektur¶
Der Client sendet Daten: Die Client-Anwendung verwendet das Snowpipe Streaming-SDK, um Daten über die
appendRow(s)
API an Snowflake zu senden.Server-Verarbeitung: Der Snowflake Service verarbeitet die Daten. Dies beinhaltet:
Pufferung der Daten.
Parsing und Validierung der Daten.
Übertragung der Daten in die Tabelle.
Fehlererkennung: Fehler können in jedem der serverseitigen Stagingbereiche auftreten.
Fehleraufzeichnung: Snowflake zeichnet detaillierte Informationen über den letzten aufgetretenen Fehler auf, einschließlich:
Die obere Grenze des Offset-Token-Bereichs des letzten Rowsets, das Fehler enthielt. Dies hilft dabei, die ungefähre Position der letzten Fehler innerhalb des Datenstroms zu identifizieren.
Eine Fehlermeldung.
Ein Zeitstempel.
Fehlerbericht:
Der erweiterte Endpunkt für den Kanalstatus bietet Zugriff auf die aufgezeichneten Fehlerinformationen.
Clients können diesen Endpunkt abfragen, um die letzten aufgetretenen Fehlerdetails abzurufen.
Snowflake stellt außerdem Ansicht SNOWPIPE_STREAMING_CHANNEL_HISTORY vor, das eine historische Aufzeichnung der Kanalaktivität, einschließlich Fehlern und deren Offsets, bietet.
Client-Aktion: Die Client-Anwendung verwendet die Fehlerinformationen, um:
Die Ursache des Fehlers zu ermitteln.
Eine geeignete Fehlerbehandlungslogik zu implementieren, wie z. B.:
Wiederholung des fehlgeschlagenen Vorgangs.
Protokollierung des Fehlers.
Benachrichtigung eines Administrators.
Verschiebung der fehlerhaften Daten in eine Dead-Letter-Queue.
Wiedereröffnung der Kanäle.