Abrufen archivierter Daten¶
Lesen Sie archivierte Daten mithilfe des Befehls CREATE TABLE … FROM ARCHIVE OF.
Die folgende Anweisung erstellt beispielsweise eine neue Tabelle aus archivierten Zeilen, bei denen der Wert in der Spalte event_timestamp zwischen dem 15. und 20. Januar 2023 liegt:
Details zur Syntax und eine Beschreibung der Parameter finden Sie unter CREATE TABLE … FROM ARCHIVE OF in der Dokumentation zu:doc:CREATE TABLE </sql-reference/sql/create-table>.
Bemerkung
Für die Verwendung dieses Befehls ist die Berechtigung OWNERSHIP für die Quelltabelle erforderlich.
Die Angabe von Spaltendefinitionen, Richtlinien, Tags oder anderen Einschränkungen wird nicht unterstützt. Snowflake ruft automatisch das Tabellenschema, die Richtlinien, Tags und Einschränkungen aus der Quelltabelle ab.
Die WHERE-Klausel ist erforderlich. Das Lesen archivierter Daten ist teuer und sollte nur selten durchgeführt werden. Durch das Filtern der Ergebnisse mit der WHERE-Klausel können Sie die Kosten minimieren, indem Sie sicherstellen, dass Snowflake nur die Daten aus dem Archivspeicher liest, die Sie benötigen.
Um die Anzahl der Dateien abzuschätzen, die Snowflake aus dem Archivspeicher abruft, führen Sie den Befehl EXPLAIN vor dieser Operation aus. Die Ausgabe enthält eine
createTableFromArchiveData-Operation und zeigtARCHIVE OF <table>in der Spalteobjectsfür die TableScan-Operation an. Weitere Informationen dazu finden Sie unter Abrufkosten mit EXPLAIN schätzen.Um den Verlauf der Datenabrufe aus dem Archivspeicher anzuzeigen, verwenden Sie die Ansicht ARCHIVE_STORAGE_DATA_RETRIEVAL_USAGE_HISTORY.
Zum Abrufen von Daten aus dem COLD Tier des Archivspeichers muss Snowflake zuerst die Dateien aus dem externen Cloudspeicher wiederherstellen. Dieser Prozess kann bis zu 48 Stunden dauern.
Um diesen Prozess zu unterstützen, stellen Sie die folgenden Parameter entsprechend ein:
STATEMENT_TIMEOUT_IN_SECONDS muss mindestens 48 Stunden betragen.
ABORT_DETACHED_QUERY muss FALSE sein.
Die Wiederherstellungsvorgänge für den Storage Tier COLD unterstützen maximal 1 Millionen Dateien pro Wiederherstellungsoperation.
Wenn Sie eine CREATE TABLE-Operation abbrechen, die Daten aus dem Archivspeicher abruft, können Ihnen immer noch Abrufkosten entstehen.
Anzeige der Metadaten des Archivs vor dem Abrufen¶
Bevor Sie archivierte Daten abrufen, können Sie die Metadaten des Archivs prüfen, um zu verstehen, welche Daten verfügbar sind. Verwenden Sie zur Anzeige die Funktion SYSTEM$GET_TABLE_ARCHIVE_METADATA:
Gesamtzeilenzahl im Archiv
Spaltendatentypen
Mindest- und Höchstwerte für numerische Spalten und Zeitstempelspalten
Dies hilft Ihnen bei der Entscheidung, welche Daten abgerufen werden sollen, ohne dass Abrufkosten anfallen.
Bemerkung
Der Tabelleneigentümer oder ein Kontoadministrator (ein Benutzer mit der ACCOUNTADMIN-Rolle), der Zugriff auf die Tabelle hat, kann diese -Funktion ausführen.
Abrufkosten mit EXPLAIN schätzen¶
Verwenden Sie den Befehl EXPLAIN, um zu schätzen, wie viele Dateien Snowflake aus dem Archivspeicher abrufen wird.
Die Befehlsausgabe enthält folgende Daten:
Einen
createTableFromArchiveData-Vorgang in der Spalteoperation.ARCHIVE OF <table>in der Spalte:code:objectsfür den TableScan-Vorgang.Die Anzahl der Partitionen, die in der Spalte
assignedPartitionsfür den TableScan-Archivvorgang abgerufen werden. Dieser Wert gibt die Anzahl der Partitionen an, die Snowflake aus dem Cold Tier wiederherstellt, um die Daten aus dem Archivspeicher abzurufen.Die Anzahl der Bytes, die in der
bytesAssigned-Spalte abgerufen werden.
Beispiel: