Automatisieren von Snowpipe für Google Cloud Storage

Unter diesem Thema finden Sie Anweisungen zum automatischen Auslösen von Snowpipe-Datenladevorgängen mithilfe von Google Cloud Pub/Sub-Meldungen für Google Cloud Storage-Ereignisse (GCS).

Bemerkung

Diese Funktion ist auf Snowflake-Konten beschränkt, die auf Amazon Web Services (AWS) oder der Google Cloud Platform gehostet werden. Die Anweisungen zum Automatisieren des Ladens von Snowpipe-Daten mithilfe von GCS-Pub/Sub-Meldung sind für Konten auf beiden Cloudhosting-Plattformen identisch.

Die Unterstützung für die Automatisierung des Ladens von Snowpipe-Daten von GCS in Snowflake-Konten, die auf AWS gehostet werden, wird als Vorschau-Funktion bereitgestellt.

Unter diesem Thema:

Konfigurieren des sicheren Zugriffs auf Cloudspeicher

Bemerkung

Wenn Sie bereits den sicheren Zugriff auf den GCS-Bucket konfiguriert haben, in dem Ihre Datendateien gespeichert sind, können Sie diesen Abschnitt überspringen.

In diesem Abschnitt wird beschrieben, wie Sie ein Speicherintegrationsobjekt konfigurieren, um die Authentifizierungsverantwortung für den Cloudspeicher an eine Snowflake-Entität für die Identitäts- und Zugriffsverwaltung (IAM) zu delegieren.

In diesem Abschnitt wird beschrieben, wie Sie mit Speicherintegrationen dafür sorgen können, dass Snowflake Daten aus einem Google Cloud Storage-Bucket lesen und in einen solchen Bucket schreiben kann, auf den in einem externen (d. h. Cloud Storage) Stagingbereich verwiesen wird. Integrationen sind benannte First-Class-Snowflake-Objekte, bei denen keine expliziten Cloudanbieter-Anmeldeinformationen wie geheime Schlüssel oder Zugriffstoken übergeben werden müssen. Stattdessen verweisen Integrationsobjekte auf ein Cloud Storage-Dienstkonto. Ein Administrator in Ihrem Unternehmen gewährt die Dienstkontoberechtigungen im Cloud Storage-Konto.

Administratoren können Benutzer auch auf einen bestimmten Satz von Cloud Storage-Buckets (und optionale Pfade) beschränken, auf die von externen Stagingbereichen zugegriffen wird, die die Integration verwenden.

Bemerkung

Um die Anweisungen in diesem Abschnitt ausführen zu können, müssen Sie als Projekteditor auf Ihr Cloud Storage-Projekt zugreifen können. Wenn Sie kein Projekteditor sind, bitten Sie Ihren Cloud Storage-Administrator, diese Aufgaben auszuführen.

Die folgende Abbildung zeigt den Integrationsablauf für einen Cloud Storage-Stagingbereich:

Google Cloud Storage Stage Integration Flow
  1. Ein externer Stagingbereich (d. h. Cloud Storage) verweist in seiner Definition auf ein Speicherintegrationsobjekt.

  2. Snowflake ordnet die Speicherintegration automatisch einem für Ihr Konto erstellten Cloud Storage-Dienstkonto zu. Snowflake erstellt ein einzelnes Dienstkonto, auf das von allen GCS-Speicherintegrationen in Ihrem Snowflake-Konto verwiesen wird.

  3. Ein Projekteditor für Ihr Cloud Storage-Projekt gewährt dem Dienstkonto Berechtigungen für den Zugriff auf den in der Stagingbereichsdefinition angegebenen Bucket. Beachten Sie, dass viele externe Stagingobjekte auf unterschiedliche Buckets und Pfade verweisen und dieselbe Integration zur Authentifizierung verwenden können.

Wenn ein Benutzer Daten aus einem Stagingbereich lädt oder in einen Stagingbereich entlädt, überprüft Snowflake die Berechtigungen, die dem Dienstkonto für den Bucket erteilt wurden, bevor Zugriff gewährt oder verweigert wird.

Unter diesem Thema:

Schritt 1: Cloud Storage-Integration in Snowflake erstellen

Erstellen Sie mit dem Befehl CREATE STORAGE INTEGRATION eine Integration. Eine Integration ist ein Snowflake-Objekt, das die Authentifizierungsverantwortung für externen Cloudspeicher an eine von Snowflake generierte Entität (d. h. ein Cloud Storage-Dienstkonto) delegiert. Für den Zugriff auf Cloud Storage-Buckets erstellt Snowflake ein Dienstkonto, dem Berechtigungen für den Zugriff auf die Buckets erteilt werden können, in denen sich Ihre Datendateien befinden.

Eine einzelne Speicherintegration kann mehrere externe (d. h. GCS) Speicherintegrationen unterstützen. Die URL in der Stagingbereichsdefinition muss mit den für den Parameter STORAGE_ALLOWED_LOCATIONS angegebenen GCS-Buckets (und optionalen Pfaden) übereinstimmen.

Bemerkung

Dieser SQL-Befehl kann nur von Kontoadministratoren (Benutzer mit der Rolle ACCOUNTADMIN) oder von Rollen mit der globalen Berechtigung CREATE INTEGRATION ausgeführt werden.

CREATE STORAGE INTEGRATION <integration_name>
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = GCS
  ENABLED = TRUE
  STORAGE_ALLOWED_LOCATIONS = ('gcs://<bucket>/<path>/', 'gcs://<bucket>/<path>/')
  [ STORAGE_BLOCKED_LOCATIONS = ('gcs://<bucket>/<path>/', 'gcs://<bucket>/<path>/') ]

Wobei:

  • Integrationsname ist der Name der neuen Integration.

  • Bucket ist der Name eines Cloud Storage-Buckets, in dem Ihre Datendateien gespeichert sind (z. B. mybucket). Die erforderlichen Parameter STORAGE_ALLOWED_LOCATIONS und STORAGE_BLOCKED_LOCATIONS beschränken bzw. blockieren den Zugriff auf diese Buckets, wenn Stagingbereiche, die auf diese Integration verweisen, erstellt oder geändert werden.

  • Pfad ist ein optionaler Pfad, mit dem Sie Objekte im Bucket genauer steuern können.

Im folgenden Beispiel wird eine Integration erstellt, die externe Stagingbereiche, die die Integration nutzen, explizit darauf beschränkt, auf einen von zwei Buckets und Pfaden zu verweisen: In einem späteren Schritt werden wir einen externen Stagingbereich erstellen, der auf einen dieser Buckets und Pfade verweist.

Zusätzliche externe Stagingbereiche, die diese Integration ebenfalls verwenden, können auf die zulässigen Buckets und Pfade verweisen:

CREATE STORAGE INTEGRATION gcs_int
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = GCS
  ENABLED = TRUE
  STORAGE_ALLOWED_LOCATIONS = ('gcs://mybucket1/path1/', 'gcs://mybucket2/path2/')
  STORAGE_BLOCKED_LOCATIONS = ('gcs://mybucket1/path1/sensitivedata/', 'gcs://mybucket2/path2/sensitivedata/');

Schritt 2: Cloud Storage-Dienstkonto für Ihr Snowflake-Konto abrufen

Führen Sie den Befehl DESCRIBE INTEGRATION aus, um die ID für das Cloud Storage-Dienstkonto abzurufen, das automatisch für Ihr Snowflake-Konto erstellt wurde:

DESC STORAGE INTEGRATION <integration_name>;

Wobei:

Beispiel:

DESC STORAGE INTEGRATION gcs_int;

+-----------------------------+---------------+-----------------------------------------------------------------------------+------------------+
| property                    | property_type | property_value                                                              | property_default |
+-----------------------------+---------------+-----------------------------------------------------------------------------+------------------|
| ENABLED                     | Boolean       | true                                                                        | false            |
| STORAGE_ALLOWED_LOCATIONS   | List          | gcs://mybucket1/path1/,gcs://mybucket2/path2/                               | []               |
| STORAGE_BLOCKED_LOCATIONS   | List          | gcs://mybucket1/path1/sensitivedata/,gcs://mybucket2/path2/sensitivedata/   | []               |
| STORAGE_GCP_SERVICE_ACCOUNT | String        | service-account-id@project1-123456.iam.gserviceaccount.com                  |                  |
+-----------------------------+---------------+-----------------------------------------------------------------------------+------------------+

Die Eigenschaft STORAGE_GCP_SERVICE_ACCOUNT in der Ausgabe zeigt das Cloud Storage-Dienstkonto an, das für Ihr Snowflake-Konto erstellt wurde (z. B. service-account-id@project1-123456.iam.gserviceaccount.com). Wir stellen ein einziges Cloud Storage-Dienstkonto für Ihr gesamtes Snowflake-Konto bereit. Alle Cloud Storage-Integrationen verwenden dieses Dienstkonto.

Schritt 3: Dienstkontoberechtigungen für den Zugriff auf Bucket-Objekte erteilen

Die folgende Schritt-für-Schritt-Anleitung beschreibt, wie Sie IAM-Zugriffsberechtigungen für Snowflake über Ihre Google Cloud Platform Console so konfigurieren, dass Sie einen Cloud Storage-Bucket zum Laden und Entladen von Daten verwenden können:

Benutzerdefinierte IAM-Rolle erstellen

Erstellen Sie eine benutzerdefinierte Rolle, die über die erforderlichen Berechtigungen verfügt, um auf den Bucket zuzugreifen und Objekte abzurufen.

  1. Melden Sie sich bei der Google Cloud Platform Console als Projekteditor an.

  2. Wählen Sie im Startseiten-Dashboard die Option IAM & admin » Roles.

  3. Klicken Sie auf Create Role.

  4. Geben Sie einen Namen und eine Beschreibung für die Rolle ein.

  5. Klicken Sie auf Add Permissions.

  6. Filtern Sie die Liste der Berechtigungen, und fügen Sie Folgendes aus der Liste hinzu:

    Nur Laden von Daten
    • storage.buckets.get

    • storage.objects.get

    • storage.objects.list

    Laden von Daten mit Bereinigungsoption
    • storage.buckets.get

    • storage.objects.delete

    • storage.objects.get

    • storage.objects.list

    Laden und Entladen von Daten
    • storage.buckets.get

    • storage.objects.create

    • storage.objects.delete

    • storage.objects.get

    • storage.objects.list

  7. Klicken Sie auf Create.

Zuweisen der benutzerdefinierten Rolle zum Cloud Storage-Dienstkonto

  1. Melden Sie sich bei der Google Cloud Platform Console als Projekteditor an.

  2. Wählen Sie im Startseiten-Dashboard die Option Storage » Browser:

    Bucket List in Google Cloud Platform Console
  3. Wählen Sie einen Bucket aus, den Sie für den Zugriff konfigurieren möchten.

  4. Klicken Sie oben rechts auf SHOW INFO PANEL. Der Informationsbereich für den Bucket wird erweitert.

  5. Suchen Sie im Feld Add members nach dem Namen des Dienstkontos aus der DESCRIBE INTEGRATION-Ausgabe von Schritt 2: Cloud Storage-Dienstkonto für Ihr Snowflake-Konto abrufen (unter diesem Thema).

    Bucket Information Panel in Google Cloud Platform Console
  6. Wählen Sie in der Dropdown-Liste Select a role die Option Storage » Custom » <Rolle> aus, wobei <Rolle> die benutzerdefinierte Cloud Storage-Rolle ist, die Sie in Erstellen einer benutzerdefinierten IAM-Rolle (unter diesem Thema) erstellt haben.

  7. Klicken Sie auf die Schaltfläche Add. Der Name des Dienstkontos wird der Dropdown-Liste Storage Object Viewer im Informationsbereich hinzugefügt.

    Storage Object Viewer role list in Google Cloud Platform Console

Erteilen von Berechtigungen für das Cloud Storage-Dienstkonto für kryptografische Schlüssel des Cloud Key Management Service

Bemerkung

Dieser Schritt ist nur erforderlich, wenn Ihr GCS-Bucket mit einem in Google Cloud Key Management Service (Cloud KMS) gespeicherten Schlüssel verschlüsselt ist.

  1. Melden Sie sich bei der Google Cloud Platform Console als Projekteditor an.

  2. Wählen Sie im Startseiten-Dashboard die Option Security » Cryptographic keys.

  3. Wählen Sie den Schlüsselring aus, der Ihrem GCS-Bucket zugewiesen ist.

  4. Klicken Sie oben rechts auf SHOW INFO PANEL. Der Informationsbereich für den Schlüsselring wird erweitert.

  5. Suchen Sie im Feld Add members nach dem Namen des Dienstkontos aus der DESCRIBE INTEGRATION-Ausgabe von Schritt 2: Cloud Storage-Dienstkonto für Ihr Snowflake-Konto abrufen (unter diesem Thema).

  6. Wählen Sie in der Dropdown-Liste Select a role die Rolle Cloud KMS CrytoKey Encryptor/Decryptor aus.

  7. Klicken Sie auf die Schaltfläche Add. Der Name des Dienstkontos wird der Dropdown-Liste Cloud KMS CrytoKey Encryptor/Decryptor im Informationsbereich hinzugefügt.

Konfigurieren von automatischem Snowpipe mit GCS Pub/Sub

Voraussetzungen

In den Anweisungen unter diesem Thema wird davon ausgegangen, dass die folgenden Elemente erstellt und konfiguriert wurden:

GCP-Konto
  • Pub/Sub-Thema, das Ereignismeldungen vom GCS-Bucket empfängt. Weitere Informationen dazu finden Sie unter Erstellen des Pub/Sub-Themas (in diesem Thema).

  • Abonnement, das Ereignismeldungen vom Pub/Sub-Thema empfängt. Weitere Informationen dazu finden Sie unter Erstellen des Pub/Sub-Abonnements (unter diesem Thema).

Eine Anleitung dazu finden Sie unter Pub/Sub-Dokumentation.

Snowflake
  • Zieltabelle der Snowflake-Datenbank, in die Ihre Daten geladen werden.

Erstellen des Pub/Sub-Themas

Erstellen Sie ein Pub/Sub-Thema mit Cloud Shell oder Cloud SDK.

Führen Sie den folgenden Befehl aus, um das Thema zu erstellen und zu aktivieren, damit es im angegebenen GCS-Bucket auf Aktivitäten wartet:

$ gsutil notification create -t <topic> -f json gs://<bucket-name>

Wobei:

  • <Thema> ist der Name für das Thema.

  • <Bucket-Name> ist der Name Ihres GCS-Buckets.

Wenn das Thema bereits vorhanden ist, wird es vom Befehl verwendet. Andernfalls wird ein neues Thema erstellt.

Weitere Informationen finden Sie unter Verwenden von Pub/Sub-Benachrichtigungen für Cloudspeicher in der Pub/Sub-Dokumentation.

Erstellen des Pub/Sub-Abonnements

Erstellen Sie ein Abonnement für das Pub/Sub-Thema mit der Cloud Console, dem Befehlszeilentool gcloud oder der Cloud-Pub/Sub-API. Anweisungen finden Sie unter Verwalten von Themen und Abonnements in der Pub/Sub-Dokumentation.

Abrufen der Pub/Sub-Abonnement-ID

Die Pub/Sub-Themenabonnement-ID wird in dieser Anleitung verwendet, um Snowflake den Zugriff auf Ereignismeldungen zu ermöglichen.

  1. Melden Sie sich bei der Google Cloud Platform Console als Projekteditor an.

  2. Wählen Sie im Startseiten-Dashboard die Option Big Data » Pub/Sub » Subscriptions aus.

  3. Kopieren Sie die ID in die Spalte Subscription ID des Themenabonnements.

Schritt 1: Benachrichtigungsintegration in Snowflake erstellen

Erstellen Sie eine Benachrichtigungsintegration mit dem Befehl CREATE NOTIFICATION INTEGRATION. Die Benachrichtigungsintegration verweist auf Ihr Pub/Sub-Abonnement. Snowflake verknüpft die Benachrichtigungsintegration mit einem GCS-Dienstkonto, das für Ihr Konto erstellt wurde. Snowflake erstellt ein einziges Dienstkonto, auf das von allen GCS-Speicherintegrationen in Ihrem Snowflake-Konto verwiesen wird.

Bemerkung

  • Dieser SQL-Befehl kann nur von Kontoadministratoren (Benutzer mit der Rolle ACCOUNTADMIN) oder von Rollen mit der globalen Berechtigung CREATE INTEGRATION ausgeführt werden.

  • Das GCS-Dienstkonto für Benachrichtigungsintegrationen unterscheidet sich von dem Dienstkonto, das für Speicherintegrationen erstellt wird.

CREATE NOTIFICATION INTEGRATION <integration_name>
  TYPE = QUEUE
  NOTIFICATION_PROVIDER = GCP_PUBSUB
  ENABLED = true
  GCP_PUBSUB_SUBSCRIPTION_NAME = '<subscription_id>';

Wobei:

Beispiel:

CREATE NOTIFICATION INTEGRATION my_notification_int
  TYPE = QUEUE
  NOTIFICATION_PROVIDER = GCP_PUBSUB
  ENABLED = true
  GCP_PUBSUB_SUBSCRIPTION_NAME = 'projects/project-1234/subscriptions/sub2';

Bemerkung

Derzeit unterstützt der Befehl ALTER NOTIFICATION INTEGRATION nicht das Ändern des Parameterwerts GCP_PUBSUB_SUBSCRIPTION_NAME. Wenn ein falscher Parameterwert angegeben wird, müssen Sie die Benachrichtigungsintegration neu erstellen (mit CREATE OR REPLACE NOTIFICATION INTEGRATION).

Schritt 2: Snowflake Zugriff auf die Speicherorte gewähren

  1. Führen Sie den Befehl DESCRIBE INTEGRATION aus, um die Snowflake-Dienstkonto-ID abzurufen:

    DESC NOTIFICATION INTEGRATION <integration_name>;
    

    Wobei:

    Beispiel:

    DESC NOTIFICATION INTEGRATION my_notification_int;
    
  2. Notieren Sie den Namen des Dienstkontos in der Spalte GCP_PUBSUB_SERVICE_ACCOUNT, die das folgende Format hat:

    <service_account>@<project_id>.iam.gserviceaccount.com
    
  3. Melden Sie sich bei der Google Cloud Platform Console als Projekteditor an.

  4. Wählen Sie im Startseiten-Dashboard die Option Big Data » Pub/Sub » Subscriptions aus.

  5. Wählen Sie das Abonnement aus, das für den Zugriff konfiguriert werden soll.

  6. Klicken Sie oben rechts auf SHOW INFO PANEL. Der Informationsbereich für das Abonnement wird erweitert.

  7. Suchen Sie im Feld Add members nach dem Dienstkontonamen, den Sie sich in Schritt 2 notiert haben.

  8. Wählen Sie in der Dropdown-Liste Select a role die Option Pub/Sub Subscriber aus.

  9. Klicken Sie auf die Schaltfläche Add. Der Name des Dienstkontos wird der Dropdown-Liste Pub/Sub Subscriber im Informationsbereich hinzugefügt.

Schritt 3: Pipe mit aktivierter automatischer Erfassung erstellen

Erstellen Sie mit dem Befehl CREATE PIPE eine Pipe. Die Pipe definiert die COPY INTO <Tabelle>-Anweisung, mit der Snowpipe Daten aus der Erfassungswarteschlange in die Zieltabelle lädt.

CREATE PIPE <pipe_name>
  AUTO_INGEST = true
  INTEGRATION = '<integration_name>'
  AS
<copy_statement>;

Wobei:

  • <Pipename> ist der Bezeichner der Pipe. Dieser muss für das Schema, in dem die Pipe erstellt wird, eindeutig sein.

    Der Bezeichner muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

  • <Integrationsname> ist der Name der Integration, die Sie in Schritt 1: Benachrichtigungsintegration in Snowflake erstellen erstellt haben.

  • Copy-Anweisung ist die COPY INTO <Tabelle>-Anweisung, mit der Daten aus Warteschlangendateien in eine Snowflake-Tabelle geladen werden. Diese Anweisung dient als Text/Definition für die Pipe und wird in der Ausgabe von SHOW PIPES angezeigt.

Erstellen Sie beispielsweise im Schema snowpipe_db.public eine Pipe, die die Daten aus den im externen (GCS) Stagingbereich mystage bereitgestellten Dateien in die Tabelle mytable lädt:

CREATE PIPE snowpipe_db.public.mypipe
  AUTO_INGEST = true
  INTEGRATION = 'MYINT'
  AS
COPY INTO snowpipe_db.public.mytable
  FROM @snowpipe_db.public.mystage/path2;

Wichtig

Vergleichen Sie die Stagingbereichsreferenz in der Pipedefinition mit den vorhandenen Pipes. Stellen Sie sicher, dass sich die Verzeichnispfade für denselben GCS-Bucket nicht überschneiden. Andernfalls könnten verschiedene Pipes denselben Satz von Datendateien mehrmals in eine oder mehrere Zieltabellen laden. Dies kann beispielsweise der Fall sein, wenn mehrere Stagingbereiche auf denselben GCS-Bucket verweisen, aber mit unterschiedlicher Granularität, z. B. gcs://mybucket1/path1 und gcs://mybucket1/path1/path2. In diesem Anwendungsfall würden beim Staging von Dateien in gcs://mybucket1/path1/path2 die Pipes für beide Stagingbereiche eine Kopie der Dateien laden.

Dies unterscheidet sich von der manuellen Snowpipe-Einrichtung (mit deaktivierter automatischer Erfassung), bei der Benutzer einen benannten Satz von Dateien an eine REST-API senden müssen, um die Dateien zum Laden in die Warteschlange zu stellen. Bei aktivierter automatischer Erfassung erhält jede Pipe eine generierte Dateiliste von den Pub/Sub-Meldungen. Zusätzliche Sorgfalt ist erforderlich, um Datenduplikate zu vermeiden.

Snowpipe mit automatischer Erfassung ist nun konfiguriert!

Wenn dem GCS-Bucket neue Datendateien hinzugefügt werden, weist die Ereignisbenachrichtigung Snowpipe an, diese in die in der Pipe definierte Zieltabelle zu laden.

Schritt 4: Historische Dateien laden

Um ein Backlog mit Datendateien zu laden, die vor der Konfiguration von Pub/Sub-Meldungen im externen Stagingbereich vorhanden waren, führen Sie eine ALTER PIPE … REFRESH-Anweisung aus.

SYSTEM$PIPE_STATUS-Ausgabe

Die Funktion SYSTEM$PIPE_STATUS ruft eine JSON-Darstellung des aktuellen Status einer Pipe ab.

Bei Pipes, bei denen AUTO_INGEST auf TRUE gesetzt ist, gibt die Funktion ein JSON-Objekt zurück, das die folgenden Name/Wert-Paare enthält (falls auf den aktuellen Pipestatus zutreffend):

{"executionState":"<value>","oldestFileTimestamp":<value>,"pendingFileCount":<value>,"notificationChannelName":"<value>","numOutstandingMessagesOnChannel":<value>,"lastReceivedMessageTimestamp":"<value>","lastForwardedMessageTimestamp":"<value>","error":<value>,"fault":<value>}

Wobei:

executionState

Aktueller Ausführungsstatus der Pipe; kann einer der folgenden sein:

  • RUNNING (d. h. alles ist normal; Snowflake verarbeitet gerade aktiv Dateien für diese Pipe oder auch nicht).

  • STOPPED_FEATURE_DISABLED

  • STOPPED_STAGE_DROPPED

  • STOPPED_FILE_FORMAT_DROPPED

  • STOPPED_MISSING_PIPE

  • STOPPED_MISSING_TABLE

  • STALLED_COMPILATION_ERROR

  • STALLED_INITIALIZATION_ERROR

  • STALLED_EXECUTION_ERROR

  • STALLED_INTERNAL_ERROR

  • PAUSED

  • PAUSED_BY_SNOWFLAKE_ADMIN

  • PAUSED_BY_ACCOUNT_ADMIN

oldestFileTimestamp

Frühester Zeitstempel unter den derzeit in der Warteschlange befindlichen Datendateien (so zutreffend), wobei Zeitstempel beim Hinzufügen einer Datei zur Warteschlange festgelegt werden.

pendingFileCount

Anzahl der Dateien, die von der Pipe derzeit verarbeitet werden. Falls die Pipe angehalten wurde, verringert sich dieser Wert, sobald Dateien verarbeitet werden, die in die Warteschlange gestellt wurden, bevor die Pipe angehalten wurde. Wenn dieser Wert 0 lautet, befinden sich entweder keine Dateien in der Warteschlange für diese Pipe oder wurde die Pipe angehalten.

notificationChannelName

GCS-Speicherwarteschlange, die der Pipe zugeordnet ist.

numOutstandingMessagesOnChannel

Anzahl der Nachrichten in der Speicherwarteschlange, die in die Warteschlange gestellt, aber noch nicht empfangen wurden.

lastReceivedMessageTimestamp

Zeitstempel der letzten Meldung, die aus der Speicherwarteschlange empfangen wurde. Beachten Sie, dass diese Nachricht möglicherweise nicht für die bestimmte Pipe gilt (z. B. wenn der mit der Meldung verknüpfte Pfad bzw. das verknüpfte Präfix nicht mit dem Pfad/Präfix in der Pipedefinition übereinstimmen). Darüber hinaus werden von Pipes zur automatischen Erfassung nur solche Meldungen verarbeitet, die von erstellten Datenobjekten ausgelöste wurden.

lastForwardedMessageTimestamp

Zeitstempel der letzten Ereignismeldung vom Typ „Objekt erstellen“ mit einem übereinstimmenden Pfad/Präfix, der bzw. das an die Pipe weitergeleitet wurde.

error

Fehlermeldung, die erzeugt wurde, als die Pipe für die Ausführung zuletzt kompiliert wurde (falls zutreffend). Ursache sind oft Schwierigkeiten beim Zugriff auf die erforderlichen Objekte (z. B. Tabelle, Stagingbereich, Dateiformat), ausgelöst durch Berechtigungsprobleme oder gelöschte Objekte.

fault

Letzter interner Snowflake-Verarbeitungsfehler (falls zutreffend). Wird von Snowflake hauptsächlich zum Debuggen verwendet.