Kopieren von Daten aus einem Azure-Stagingbereich

Laden Sie Daten aus Ihren Stagingdateien in die Zieltabelle.

Unter diesem Thema:

Laden Ihrer Daten

Führen Sie COPY INTO <Tabelle> aus, um Ihre Daten in die Zieltabelle zu laden.

Bemerkung

Das Laden von Daten erfordert ein Warehouse. Wenn Sie ein Warehouse verwenden, das nicht für die automatische Fortsetzung konfiguriert ist, führen Sie ALTER WAREHOUSE aus, um das Warehouse fortzusetzen. Beachten Sie, dass der Start eines Warehouse bis zu fünf Minuten dauern kann.

ALTER WAREHOUSE mywarehouse RESUME;

Im folgenden Beispiel werden Daten aus Dateien in den benannten my_azure_stage-Stagingbereich geladen, der in Erstellen eines Azure-Stagingbereichs erstellt wurden. Mithilfe der Mustererkennung lädt die Anweisung nur Dateien, deren Namen mit der Zeichenfolge sales beginnen:

COPY INTO mytable
  FROM @my_azure_stage
  PATTERN='.*sales.*.csv';

Beachten Sie, dass keine Dateiformatoptionen angegeben werden, da in der Stagingbereichsdefinition ein benanntes Dateiformat enthalten ist.

Im folgenden Beispiel werden alle Dateien mit dem Präfix data/files in Ihren Azure-Container unter Verwendung des benannten my_csv_format-Dateiformats geladen, das in Vorbereiten des Ladens von Daten erstellt wurde.

COPY INTO mytable
  FROM 'azure://myaccount.blob.core.windows.net/mycontainer/data/files'
  CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D')
  ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'kPxX0jzYfIamtnJEUTHwq80Au6NbSgPH5r4BDDwOaO8=')
  FILE_FORMAT = (FORMAT_NAME = my_csv_format);

Im folgenden Ad-hoc-Beispiel werden Daten aus allen im Azure-Container befindlichen Dateien geladen. Der Befehl COPY gibt Dateiformatoptionen an, anstatt auf ein benanntes Dateiformat zu verweisen. In diesem Beispiel werden CSV-Dateien mit einem Feldtrennzeichen für Pipe (|) geladen. Der Befehl COPY überspringt die erste Zeile in den Datendateien:

COPY INTO mytable
  FROM 'azure://myaccount.blob.core.windows.net/mycontainer/data/files'
  CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D')
  ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'kPxX0jzYfIamtnJEUTHwq80Au6NbSgPH5r4BDDwOaO8=')
  FILE_FORMAT = (TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1);

Validieren Ihrer Daten

Vor dem Laden Ihrer Daten können Sie überprüfen, ob die Daten in den hochgeladenen Dateien korrekt geladen werden.

Um Daten in einer hochgeladenen Datei zu validieren, führen Sie COPY INTO <Tabelle> im Validierungsmodus mit dem Parameter VALIDATION_MODE aus. Der Parameter VALIDATION_MODE gibt Fehler zurück, die er in der Datei findet. Sie können dann die Daten in der Datei ändern, um sicherzustellen, dass sie ohne Fehler geladen werden.

Darüber hinaus stellt COPY INTO <Tabelle> die Kopieroption ON_ERROR zur Verfügung, um eine Aktion anzugeben, die ausgeführt werden soll, wenn beim Laden Fehler in einer Datei auftreten.

Überwachen des Ladens von Daten

Snowflake speichert historische Daten für COPY INTO-Befehle, die in den letzten 14 Tagen ausgeführt wurden. Die Metadaten können zur Überwachung und Verwaltung des Ladevorgangs verwendet werden, einschließlich des Löschens von Dateien nach Abschluss des Hochladens:

  • Überwachen Sie den Status der einzelnen COPY INTO <Tabelle>-Befehle auf der Seite History History tab der Snowflake-Weboberfläche.

  • Verwenden Sie die Information Schema-Ansicht LOAD_HISTORY, um den Verlauf der in Tabellen geladenen Daten mit dem Befehl COPY INTO abzurufen.