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> )
Copy

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>
Copy

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

Für Business Critical-Konten wird der URL direkt vor snowflakecomputing.com ein privatelink-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);
Copy

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;
Copy

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';
Copy

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.

Create a comprehensive view of unstructured data by joining a directory table with another Snowflake table

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
Copy