Einführung in unstrukturierte 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:
|
Die folgenden Optionen sind verfügbar:
|
Die folgenden Optionen sind verfügbar:
|
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 |
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 );
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 |
---|---|
Gibt die URL für einen benannten externen oder internen Stagingbereich zurück, wobei der Name des Stagingbereichs als Eingabe verwendet wird. |
|
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. |
|
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. |
|
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. |
|
Generiert eine bereichsbezogene Snowflake-Datei-URL, die auf eine Stagingdatei verweist, wobei der Name des Stagingbereichs und der relative Dateipfad als Eingaben verwendet werden. |
|
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 Snowsight-Arbeitsblatts eine generierte vorsignierte, Bereichs- oder Datei-URL auswählen und die referenzierte Datei herunterladen.
Melden Sie sich bei Snowsight an.
Wählen Sie Projects » Worksheets » My Worksheets aus, oder öffnen Sie ein lokales Arbeitsblatt, indem Sie zu Recent oder Folders » <worksheet_name> navigieren.
Rückgabe einer vorsignierten, Bereichs- oder Datei-URL in einer Abfrage unter Verwendung von einer der unterstützten Methoden.
Wählen Sie die URL in der Ergebnistabelle aus. Snowsight lädt die Datei herunter, auf die die URL verweist.
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.