Abfragen von Verzeichnistabellen¶
Unter diesem Thema wird erläutert, wie Sie Abfragen auf einer Verzeichnistabelle ausführen, um eine Liste aller Dateien eines Stagingbereich inklusive Metadaten zu jeder Datei, wie die Snowflake-Datei-URL, zu erhalten.
Syntax für das Abfragen einer Verzeichnistabelle:
SELECT * FROM DIRECTORY( @<stage_name> )
Wobei:
stage_name
Name eines Stagingbereichs, der über eine aktivierte Verzeichnistabelle verfügt.
Weitere Informationen zu SELECT als Anweisung und zu den anderen Klauseln in dieser Anweisung finden Sie in der Snowflake SQL-Befehlsübersicht unter Abfragesyntax.
Ausgabe¶
Die Ausgabe einer Verzeichnistabellenabfrage kann die folgenden Spalten enthalten:
Spalte
Datentyp
Beschreibung
RELATIVE_PATH
TEXT
Pfad zu den Dateien, auf die mit der Datei-URL zugegriffen werden soll.
SIZE
NUMBER
Größe der Datei (in Byte)
LAST_MODIFIED
TIMESTAMP_LTZ
Zeitstempel, wann die Datei im Stagingbereich zuletzt aktualisiert wurde
MD5
HEX
MD5-Prüfsumme für die Datei
ETAG
HEX
ETag-Header für die Datei
FILE_URL
TEXT
Snowflake-Datei-URL für die Datei.
Die Datei-URL hat das folgende Format:
https://<account_identifier>/api/files/<db_name>.<schema_name>.<stage_name>/<relative_path>Wobei:
account_identifier
Hostname des Snowflake-Kontos für Ihren Stagingbereich. Der Hostname beginnt mit einem eindeutigen Konto-Locator (von Snowflake bereitgestellt) und endet mit der Snowflake-Domain (
snowflakecomputing.com
):
account_locator.snowflakecomputing.com
Weitere Details dazu finden Sie unter Kontobezeichner.
Bemerkung
Bei Business Critical-Konten wird der URL direkt vor
snowflakecomputing.com
einprivatelink
-Segment vorangestellt (privatelink.snowflakecomputing.com
), auch wenn private Konnektivität zum Snowflake-Dienst für Ihr Konto nicht aktiviert ist.db_name
Name der Datenbank, die den Stagingbereich enthält, in dem sich Ihre Dateien befinden.
schema_name
Name des Schemas, das den Stagingbereich enthält, in dem sich Ihre Dateien befinden.
stage_name
Name des Stagingbereichs, in dem sich Ihre Dateien befinden.
relative_path
Pfad zu den Dateien, auf die mit der Datei-URL zugegriffen werden soll.
Nutzungshinweise¶
Wenn aus einem internen Stagingbereich heruntergeladene Dateien beschädigt sind, überprüfen Sie mit dem Ersteller des Stagingbereichs, ob
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
für den Stagingbereich eingestellt ist.
Beispiele¶
In diesem Beispiel werden alle Metadatenspalten der Verzeichnistabelle eines Stagingbereichs namens mystage
abgerufen:
SELECT * FROM DIRECTORY(@mystage);
In diesem Beispiel werden die FILE_URL-Spaltenwerte aus einer Verzeichnistabelle für Dateien abgerufen, die größer als 100.000 Bytes sind:
SELECT FILE_URL FROM DIRECTORY(@mystage) WHERE SIZE > 100000;
Dieses Beispiel ruft die Werte der Spalte FILE_URL aus einer Verzeichnistabelle für Dateien mit kommagetrennten Werten ab:
SELECT FILE_URL FROM DIRECTORY(@mystage) WHERE RELATIVE_PATH LIKE '%.csv';
Erstellen einer Ansicht für unstrukturierte Daten mithilfe einer Verzeichnistabelle¶
Sie können eine Verzeichnistabelle mit anderen Snowflake-Tabellen verbinden, um eine Ansicht unstrukturierter Daten zu erstellen, die die Datei-URLs mit Metadaten zu den Dateien kombiniert.
Die folgende Abbildung veranschaulicht, wie Sie einen Stagingbereich mit aktivierter Verzeichnistabelle zusammen mit einer separaten Datentabelle verwenden können, um eine umfassende Ansicht der unstrukturierten Dateien eines Stagingbereichs zu erstellen.
Beispiel: Erstellen einer Ansicht der PDF-Dateien und deren Daten
Im folgenden Beispiel wird eine Ansicht namens reports_information
erstellt, indem die Verzeichnistabelle eines Stagingbereichs namens my_pdf_stage
mit einer Tabelle namens report_metadata
unter Verwendung des Schlüssels file_url
verknüpft wird. Der Stagingbereich enthält PDF-Berichte, während die Tabelle report_metadata
strukturierte Informationen zu jedem PDF-Bericht enthält, wie author
und publish_date
. Die sich daraus ergebende Ansicht bietet eine Möglichkeit, Informationen über die unstrukturierten PDFs und ihren zugehörigen strukturierten Metadaten zu erhalten.
CREATE VIEW reports_information AS
SELECT
file_url as report_link,
author,
publish_date,
approved_date,
geography,
num_of_pages
FROM directory(@my_pdf_stage) s
JOIN report_metadata m
ON s.file_url = m.file_url