- Kategorien:
COPY_HISTORY¶
Diese Tabellenfunktion kann verwendet werden, um den Ladeverlauf der Snowflake-Daten über verschiedene Dimensionen innerhalb der letzten 14 Tage abzufragen. Die Funktion gibt Ladeaktivitäten für COPY INTO <Tabelle>-Anweisungen und kontinuierliches Datenladen mit Snowpipe zurück. Diese Tabellenfunktion weist keine Begrenzung auf 10.000 Zeilen auf wie Ansicht LOAD_HISTORY. Die Ergebnisse können mithilfe von SQL-Prädikaten gefiltert werden.
Syntax¶
COPY_HISTORY(
TABLE_NAME => '<string>'
, START_TIME => <constant_expr>
[, END_TIME => <constant_expr> ] )
Argumente¶
Erforderlich:
TABLE_NAME => 'string'
Eine Zeichenfolge, mit der ein Tabellenname angegeben wird.
START_TIME => constant_expr
Zeitstempel (im Format TIMESTAMP_LTZ) aus den letzten 14 Tagen, der den Beginn des Zeitbereichs zum Abrufen von Ladeereignissen markiert.
Optional:
END_TIME => constant_expr
Zeitstempel (im Format TIMESTAMP_LTZ) aus den letzten 14 Tagen, der das Ende des Zeitbereichs zum Abrufen von Ladeereignissen markiert.
Standard: CURRENT_TIMESTAMP.
Nutzungshinweise¶
Beim Massenladen von Daten gibt diese Funktion Ergebnisse für eine Rolle zurück, die über eine beliebige Berechtigung für die Zieltabelle verfügt.
Für das Laden von Daten in Snowpipe gibt diese Funktion nur Ergebnisse für den Pipe-Eigentümer (d. h. die Rolle mit der Berechtigung OWNERSHIP für die Pipe) oder eine Rolle mit den folgenden Mindestberechtigungen zurück:
Berechtigung
Objekt
Anmerkungen
USAGE
Datenbank und Schema, in denen die Pipe gespeichert wird
MONITOR
Pipe
Alternativ wird die globale Berechtigung MONITOR EXECUTION unterstützt.
SELECT
Tabelle in der Pipe-Definition
Beim Aufrufen einer Tabellenfunktion des Information Schema muss die Sitzung über ein aktives INFORMATION_SCHEMA-Schema verfügen oder der Funktionsname muss vollqualifiziert sein. Weitere Details dazu finden Sie unter Snowflake Information Schema.
Die Ansicht enthält nur COPY INTO-Befehle, die erfolgreich mit oder ohne Fehler ausgeführt wurden.
Wenn Sie ein Tabellenobjekt löschen oder neu erstellen, werden die historischen Daten zum Massenladen von Daten (COPY INTO <Tabelle>-Anweisungen) aus der Tabelle entfernt.
Wenn Sie ein Pipeobjekt löschen oder neu erstellen, werden die historischen Daten zum Laden von Snowpipe-Daten über diese Pipe entfernt.
Ausgabe¶
Die Funktion gibt die folgenden Spalten zurück:
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
FILE_NAME |
TEXT |
Name der Quelldatei und relativer Pfad zur Datei. |
STAGE_LOCATION |
TEXT |
Name des Stagingbereichs, in dem sich die Quelldatei befindet. |
LAST_LOAD_TIME |
TIMESTAMP_LTZ |
Datum und Uhrzeit, wann das Laden der Datei abgeschlossen war. |
ROW_COUNT |
NUMBER |
Anzahl der Zeilen, die aus der Quelldatei geladen wurden. |
ROW_PARSED |
NUMBER |
Anzahl der analysierten Zeilen aus der Quelldatei. |
FILE_SIZE |
NUMBER |
Größe der geladenen Quelldatei (in Byte). |
FIRST_ERROR_MESSAGE |
TEXT |
Erster Fehler der Quelldatei. |
FIRST_ERROR_LINE_NUMBER |
NUMBER |
Zeilennummer des ersten Fehlers. |
FIRST_ERROR_CHARACTER_POS |
NUMBER |
Position des ersten Fehlerzeichens. |
FIRST_ERROR_COLUMN_NAME |
TEXT |
Spaltenname des ersten Fehlers. |
ERROR_COUNT |
NUMBER |
Anzahl der Fehlerzeilen in der Quelldatei. |
ERROR_LIMIT |
NUMBER |
Wenn die Anzahl der Fehler diese Grenze erreicht, wird der Vorgang abgebrochen. |
STATUS |
TEXT |
Status: |
TABLE_CATALOG_NAME |
TEXT |
Name der Datenbank, in der sich die Zieltabelle befindet. |
TABLE_SCHEMA_NAME |
TEXT |
Name des Schemas, in dem sich die Zieltabelle befindet. |
TABLE_NAME |
TEXT |
Name der Zieltabelle. |
PIPE_CATALOG_NAME |
TEXT |
Name der Datenbank, in der sich die Pipe befindet. |
PIPE_SCHEMA_NAME |
TEXT |
Name des Schemas, in dem sich die Pipe befindet. |
PIPE_NAME |
TEXT |
Name der Pipe, die zum Definieren der Ladeparameter dient; |
PIPE_RECEIVED_TIME |
TIMESTAMP_LTZ |
Datum und Uhrzeit des Empfangs der INSERT-Anfrage für die über die Pipe geladene Datei; |
Beispiele¶
Abrufen von Details zu allen Ladeaktivitäten in der letzten Stunde:
select * from table(information_schema.copy_history(TABLE_NAME=>'MYTABLE', START_TIME=> DATEADD(hours, -1, CURRENT_TIMESTAMP())));