Einführung in das Laden unstrukturierter Daten

Unstrukturierte Daten sind Informationen, die nicht in ein vordefiniertes Datenmodell oder Schema passen. Unstrukturierte Daten sind in der Regel textlastig, z. B. Antworten auf Formulare oder Konversation in sozialen Medien, sie umfassen aber auch Bilder, Videos und Audiodaten. Branchenspezifische Dateitypen wie VCF (Genomik), KDF (Halbleiter) oder HDF5 (Luftfahrt) sind in dieser Kategorie enthalten.

Snowflake unterstützt die folgenden Aktionen:

  • Sicherer Zugriff auf Datendateien in einem Cloudspeicher

  • Freigeben von Dateizugriffs-URLs für Mitarbeiter und Partner

  • Laden der Dateizugriffs-URLs und anderer Datei-Metadaten in Snowflake-Tabellen

  • Verarbeiten von unstrukturierten Daten.

Unter diesem Thema werden die wichtigsten Konzepte vorgestellt und Anleitungen für Zugriff auf Datendateien mit unstrukturierten Daten sowie deren Freigabe und Verarbeitung gegeben.

Unter diesem Thema:

Unterstützung von Cloudspeicherdiensten

Sowohl externe Stagingbereiche (externer Cloudspeicher) als auch interne (d. h. Snowflake) Stagingbereich unterstützen unstrukturierte Daten.

Externe Stagingbereiche

Speichern Sie Dateien in einem externen Cloudspeicher: Amazon S3, Google Cloud Storage oder einer der unterstützten Microsoft Azure-Cloudspeicherdienste:

  • Blob-Speicher

  • Data Lake Storage Gen2

  • General Purpose v1

  • General Purpose v2

Verfügbare URL-Typen für Zugriff auf Dateien

Die folgenden Typen von URLs sind für den Zugriff auf Dateien im Cloudspeicher verfügbar:

Bereichs-URL

Kodierte URL, die temporären Zugriff auf eine Stagingdatei erlaubt, ohne dass Berechtigungen für den Stagingbereich erteilt werden müssen.

Die URL läuft ab, wenn der Zeitraum für persistent gespeicherte Abfrageergebnisse endet (d. h. der Ergebnis-Cache läuft ab). Dieser Zeitraum beträgt derzeit 24 Stunden.

Datei-URL

URL, die die Datenbank, das Schema, den Stagingbereich und den Dateipfad zu einer Menge von Dateien identifiziert. Eine Rolle, die über ausreichende Berechtigungen für den Stagingbereich verfügt, kann auf die Dateien zugreifen.

Vorsignierte URL

Einfache HTTPS-URL für den Zugriff auf eine Datei über einen Webbrowser. Mit dieser URL kann ein Benutzer unter Verwendung eines vorsignierten Zugriffstokens temporär auf eine Datei zugreifen. Die Ablaufzeit des Zugriffstokens ist konfigurierbar.

In der folgenden Tabelle sind die wichtigsten Merkmale dieser URL-Typen beschrieben:

Bereichs-URL

Datei-URL

Vorsignierte URL

Anwendungsfälle

Empfohlen für Dateiadministratoren, um bestimmten Rollen im selben Konto einen eingeschränkten Zugriff auf Datendateien zu gewähren. Ermöglicht den Zugriff auf die Dateien über eine Ansicht, die Bereichs-URLs abruft. Nur Rollen, die über Berechtigungen für die Ansicht verfügen, können auf die Dateien zugreifen. Snowflake erfasst im Abfrageverlauf Informationen darüber, wer wann eine Bereichs-URL für den Zugriff auf eine Datei verwendet hat. Ideal zur Verwendung in kundenspezifischen Anwendungen zum Bereitstellen von unstrukturierten Daten für andere Konten über eine Freigabe oder zum Herunterladen und zur Ad-hoc-Analyse unstrukturierter Daten über Snowsight.

Permanente URL zu einer Datei in einem Stagingbereich. Um eine Datei herunterzuladen oder darauf zuzugreifen, senden die Benutzer die Datei-URL zusammen mit dem Autorisierungstoken in einer GET-Anforderung an den REST-API-Endpunkt. Ideal für kundenspezifische Anwendungen, die Zugriff auf unstrukturierte Datendateien benötigen.

Wird verwendet, um Dateien herunterzuladen oder darauf zuzugreifen, ohne sich in Snowflake zu authentifizieren oder ein Autorisierungstoken zu übergeben. Vorsignierte URLs sind offen, d. h. jeder Benutzer oder jede Anwendung kann direkt auf die Dateien zugreifen oder sie herunterladen. Ideal für Business-Intelligence-Anwendungen oder Berichtstools, die den unstrukturierten Dateiinhalt anzeigen müssen.

Generierung

Fragen Sie die Funktion BUILD_SCOPED_FILE_URL ab.

Fragen Sie die Verzeichnistabelle des Stagingbereichs ab, der auf die Stagingdateien verweist, oder rufen Sie die Funktion BUILD_STAGE_FILE_URL auf.

Fragen Sie die Funktion GET_PRESIGNED_URL ab.

Verwendung

Die folgenden Optionen sind verfügbar:

  • Klicken Sie in Snowsight in der Abfrageergebnistabelle auf eine Bereichs-URL. Snowsight ruft die Datei nur für den Benutzer ab, der die Bereichs-URL generiert hat.

  • Senden Sie eine Bereichs-URL in einer GET-Anforderung an den Dateisupport-REST-API-Endpunkt. Weitere Informationen dazu finden Sie unter REST-API für die Unterstützung unstrukturierter Daten.

Die folgenden Optionen sind verfügbar:

  • Klicken Sie in Snowsight in der Abfrageergebnistabelle auf eine Datei-URL. Snowsight ruft die Datei nur ab, wenn die aktive Rolle über ausreichende Berechtigungen verfügt.

  • Senden Sie eine Datei-URL in einer GET-Anforderung an den Dateisupport-REST-API-Endpunkt. Weitere Informationen dazu finden Sie unter REST-API für die Unterstützung unstrukturierter Daten.

Die folgenden Optionen sind verfügbar:

  • Klicken Sie in Snowsight in der Abfrageergebnistabelle auf eine vorsignierte URL.

  • Navigieren Sie direkt in einem Webbrowser zu der vorsignierten URL.

Snowflake Secure Data Sharing

Unstrukturierte Datendateien können von Datenverbrauchern über Spaltenwerte dieses Typs in sicheren, von Datenanbietern freigegebenen Ansichten aufgerufen werden.

Unstrukturierte Datendateien können von Datenverbrauchern nicht über Spaltenwerte dieses Typs in sicheren, von Datenanbietern freigegebenen Ansichten aufgerufen werden.

Unstrukturierte Datendateien können von Datenverbrauchern über Spaltenwerte dieses Typs in sicheren, von Datenanbietern freigegebenen Ansichten aufgerufen werden.

Autorisierung

Nur der Benutzer, der eine Bereichs-URL generiert, kann mit der URL auf die referenzierte Datei zugreifen.

Die im GET-REST-API-Aufruf angegebene Rolle muss über ausreichende Berechtigungen für den Stagingbereich verfügen: USAGE (externer Stagingbereich) oder READ (interner Stagingbereich).

Jede Person, die im Besitz der vorsignierten URL ist, kann auf die referenzierte Datei zugreifen, solange das Token gültig ist.

Ablauf

Der Ablaufzeitraum für den Cache der Abfrageergebnisse (derzeit 24 Stunden).

Permanent.

Die im Argument expiration_time angegebene Zeitdauer.

Serverseitige Verschlüsselung für Zugriff auf unstrukturierte Daten

Um den Zugriff auf unstrukturierte Daten in einem internen Stagingbereich zu ermöglichen, können Sie beim Erstellen des Stagingbereichs eine serverseitige Verschlüsselung in Betracht ziehen. Andernfalls werden Ihre Stagingdateien standardmäßig auf der Clientseite verschlüsselt. Die Verschlüsselungsschlüssel sind Eigentum von Snowflake. Clientseitig verschlüsselte Dateien sind für Benutzer und externe Tools, die vorsignierte, Datei- oder Bereichs-URLs verwenden, nicht lesbar.

Um die serverseitige Verschlüsselung für einen internen Stagingbereich zu konfigurieren, geben Sie im Befehl CREATE STAGE als Verschlüsselungstyp SNOWFLAKE_SSE an. Weitere Informationen dazu finden Sie unter Parameter für interne Stagingbereiche (internalStageParams).

Im folgenden Beispiel wird ein interner Stagingbereich namens my_int_stage mit serverseitiger Verschlüsselung und einer Verzeichnistabelle erstellt.

CREATE STAGE my_int_stage
  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
  DIRECTORY = ( ENABLE = true );
Copy

Wichtig

Wenn Sie Tri-Secret Secure für die Einhaltung der Sicherheitsvorschriften benötigen, verwenden Sie den Verschlüsselungstyp SNOWFLAKE_FULL für interne Stagingbereiche. SNOWFLAKE_SSE unterstützt Tri-Secret Secure nicht.

Bemerkung

  • Der Verschlüsselungstyp kann nach dem Erstellen des Stagingbereichs nicht mehr geändert werden.

  • Derzeit ist das Erstellen interner Stagingbereiche mit serverseitiger Verschlüsselung auf die folgenden Snowflake-Clientversionen beschränkt: JDBC-Treiber v3.12.11 (oder höher).

Verzeichnistabellen

Verzeichnistabellen speichern einen Katalog von Stagingdateien im Cloudspeicher. Rollen mit den erforderlichen Berechtigungen können eine Verzeichnistabelle abfragen, um die Datei-URLs für den Zugriff auf die Stagingdateien abzurufen.

Weitere Details dazu finden Sie unter Verzeichnistabellen.

SQL-Funktionen

Die folgenden Dateifunktionen sind für den Zugriff auf Datendateien vorgesehen:

SQL-Funktion

Beschreibung

GET_STAGE_LOCATION

Gibt die URL für einen benannten externen oder internen Stagingbereich zurück, wobei der Name des Stagingbereichs als Eingabe verwendet wird.

GET_RELATIVE_PATH

Extrahiert den Pfad einer Stagingdatei relativ zu ihrem Speicherort im Stagingbereich, wobei der Name des Stagingbereichs und der absolute Dateipfad im Cloudspeicher als Eingaben verwendet werden.

GET_ABSOLUTE_PATH

Gibt den absoluten Pfad einer Stagingdatei zurück, wobei der Name des Stagingbereichs und der Pfad der Datei relativ zu ihrem Speicherort im Stagingbereich als Eingaben verwendet werden.

GET_PRESIGNED_URL

Generiert eine vorsignierte URL, die auf eine Stagingdatei verweist, wobei der Name des Stagingbereichs und der relative Dateipfad als Eingaben verwendet werden. Greifen Sie mit der Funktion auf Dateien in einem externen Stagingbereich zu.

BUILD_SCOPED_FILE_URL

Generiert eine bereichsbezogene Snowflake-Datei-URL, die auf eine Stagingdatei verweist, wobei der Name des Stagingbereichs und der relative Dateipfad als Eingaben verwendet werden.

BUILD_STAGE_FILE_URL

Generiert eine Snowflake-Datei-URL, die auf eine Stagingdatei verweist, wobei der Name des Stagingbereichs und der relative Dateipfad als Eingaben verwendet werden.

Herunterladen von Stagingdateien in Snowsight

Benutzer können in der Ergebnistabelle eines Snowsight-Arbeitsblatts auf eine generierte vorsignierte, Bereichs- oder Datei-URL klicken und die referenzierte Datei herunterladen.

  1. Melden Sie sich bei Snowsight, der Snowflake-Weboberfläche, an.

  2. Klicken Sie auf Worksheets » My Worksheets (oder öffnen Sie ein lokales Arbeitsblatt unter Recent oder in Folders) » <Name_des_Arbeitsblatts>

  3. Rückgabe einer vorsignierten, Bereichs- oder Datei-URL in einer Abfrage unter Verwendung von einer der unterstützten Methoden.

  4. Klicken Sie auf die URL in der Ergebnistabelle. Snowsight lädt die Datei herunter, auf die die URL verweist.

    Download pre-signed URL in Snowsight results table

Verarbeiten von unstrukturierten Daten

Snowflake bietet die folgenden Features zur Unterstützung der Verarbeitung von unstrukturierten Daten.

Externe Funktionen

Externe Funktionen sind benutzerdefinierte Funktionen, die außerhalb von Snowflake gespeichert und ausgeführt werden. Mit externen Funktionen können Sie Bibliotheken wie Amazon Textract, Document AI oder Azure Computer Vision nutzen, auf die mit internen benutzerdefinierten Funktionen (UDFs) nicht zugegriffen werden kann.

Weitere Informationen dazu finden Sie unter Schreiben von externen Funktionen.

Benutzerdefinierte Funktionen und gespeicherte Prozeduren

Snowflake unterstützt mehrere Möglichkeiten, eine Datei innerhalb von Java- oder Python-Code zu lesen, sodass Sie unstrukturierte Daten verarbeiten oder Ihre eigenen Modelle des maschinellen Lernens in benutzerdefinierten Funktionen (UDFs), benutzerdefinierten Tabellenfunktionen (UDTFs) oder gespeicherten Prozeduren verwenden können.

Sie können die SQL erweitern, die Sie in Snowflake verwenden, oder eine Anwendung unter Verwendung von Snowpark-API erstellen.

Weitere Informationen und Beispiele dazu finden Sie unter den folgenden Themen.