Query metadata for staged files¶
Snowflake generiert automatisch Metadaten für Dateien in internen (d. h. Snowflake) oder externen (Amazon S3, Google Cloud Storage oder Microsoft Azure) Stagingbereichen. Diese Metadaten werden in virtuellen Spalten „gespeichert“ und können für Folgendes verwendet werden:
Abfragen der Metadaten mit einer standardmäßigen SELECT-Anweisung.
Laden der Metadaten zusammen mit den regulären Datenspalten in eine Tabelle mithilfe von COPY INTO <Tabelle>. Allgemeine Informationen zum Abfragen von Staging-Datendateien finden Sie unter Query data in staged files.
Metadata columns¶
Derzeit können die folgenden Metadatenspalten abgefragt oder in Tabellen kopiert werden:
- METADATA$FILENAME
Name der Staging-Datendatei, zu der die aktuelle Zeile gehört. Enthält den vollständigen Pfad zu der Datendatei.
- METADATA$FILE_ROW_NUMBER
Zeilennummer für jeden Datensatz in der Staging-Datendatei.
- METADATA$FILE_CONTENT_KEY
Prüfsumme der Staging-Datendatei, zu der die aktuelle Zeile gehört.
- METADATA$FILE_LAST_MODIFIED
Zeitstempel der letzten Änderung an der Staging-Datendatei, zu der die aktuelle Zeile gehört. Wird als TIMESTAMP_NTZ zurückgegeben.
- METADATA$START_SCAN_TIME
Zeitstempel für den Beginn der Operation für jeden Datensatz in der Staging-Datendatei. Wird als TIMESTAMP_LTZ zurückgegeben.
Query limitations¶
Metadaten können nicht in bestehende Tabellenzeilen eingefügt werden.
Metadatenspalten können nur nach Namen abgefragt werden. Sie sind daher bei keiner der folgenden Anweisungen in die Ausgabe einbezogen:
Query examples¶
Example 1: Query the metadata columns for a CSV file¶
Im folgenden Beispiel wird das Staging mehrerer CSV-Datendateien (mit dem gleichen Dateiformat) und das anschließende Abfragen der Metadatenspalten sowie der regulären Datenspalten in den Dateien veranschaulicht.
In diesem Beispiel wird davon ausgegangen, dass die Dateien folgende Namen haben und sich im Stammverzeichnis einer macOS- oder Linux-Umgebung befinden:
/tmp/data1.csventhält zwei Datensätze:/tmp/data2.csventhält zwei Datensätze:
So führen Sie das Staging und Abfragen der Dateien aus:
Bemerkung
Das Dateiformat wird in diesem Beispiel benötigt, um die Felder in den Stagingdateien korrekt zu analysieren. Bei der zweiten Abfrage wird das Dateiformat weggelassen, wodurch das Feldtrennzeichen | ignoriert wird und die Werte für $1 und $2 zurückgegeben werden.
Wenn das Dateiformat jedoch in der Stagingbereichsdefinition enthalten ist, können Sie es in der SELECT-Anweisung weglassen. Details dazu finden Sie im nächsten Beispiel.
Example 2: Query the metadata columns for a JSON file¶
In diesem Beispiel wird das Bereitstellen einer JSON-Datendatei mit den folgenden Objekten und das anschließende Abfragen der Metadatenspalten sowie der Objekte in der Datei veranschaulicht:
In diesem Beispiel wird davon ausgegangen, dass die Datei den Namen /tmp/data1.json trägt und sich im Stammverzeichnis einer macOS- oder Linux-Umgebung befindet.
So führen Sie das Staging und Abfragen der Datei aus:
Example 3: Load metadata columns into a table¶
Der Befehl COPY INTO <Tabelle> unterstützt das Kopieren von Metadaten aus Staging-Datendateien in eine Zieltabelle. Verwenden Sie die Datentransformationssyntax (d. h. eine SELECT-Liste) in Ihrer COPY-Anweisung. Weitere Informationen zur Transformation von Daten mit einer COPY-Anweisung finden Sie unter Transform data during a load.
The following example loads the metadata columns and regular data columns from Example 1: Query the metadata columns for a CSV file into a table: