Auf einen Blick: Das Laden von CSV-Dateien von Amazon S3 auf Snowflake erfordert detaillierte Schritte zur Tabellenerstellung und Datenkopierung sowie Codeschnipsel zur Datenverarbeitung. Dieses Tutorial bietet praktische Anleitungen zur effizienten Verwaltung von CSV-Daten.
- Schritt-für-Schritt-Anweisungen zum Laden von CSV-Dateien in Snowflake.
- Codebeispiele zum Erstellen von Tabellen und zum Kopieren von Daten aus S3.
In diesen Tutorials zeigen wir, wie man eine CSV-Datei von Amazon S3 in eine Snowflake-Tabelle lädt.
Wir haben auch behandelt , wie man JSON-Dateien in Snowflake lädt.
Beispieldaten
Man braucht einige Daten, um dieses Beispiel durchzugehen. Laden Sie hier 1.000 Wetterdaten herunter. (Wir haben 20 Jahre Wetterdaten für Paphos, Zypern, von OpenWeather gekauft. Dies ist nur eine kleine Teilmenge von 1.000 Datensätzen, die in CSV-Format umgewandelt wurden.)
Lade diese Daten so auf Amazon S3 hoch:
aws s3 cp paphosWeather.csv s3://gluebmcwalkerrowe/paphosWeather.csv
Tabelle in Snowflake erstellen
Leider liest Snowflake den Header-Datensatz nicht und erstellt die Tabelle nicht für Sie. (Vermutlich liegt das daran, dass sie es bevorzugen, wenn Sie die Spaltendatentypen, Zahlengenauigkeit und Größe definieren.)
create table weather(
dt integer,
temp decimal(6,2),
temp_min decimal(6,2),
temp_max decimal(6,2),
pressure int,
humidity int,
speed decimal(6,2),
deg int,
main varchar(50),
description varchar(50))
Kopiere die Datendatei in den Snowflake-Bühnenbereich
Dann erstelle einen Snowflake-Bühnenbereich wie diesen.
Es spielt keine Rolle, welche Snowflake-Zugangsdaten Sie haben. Geben Sie Ihre Amazon AWS-Zugangsdaten ein. Tatsächlich gibt es keinen Ort, um Ihre Snowflake-Zugangsdaten nachzuschlagen, da sie mit Ihren Amazon IAM-Zugangsdaten identisch sind – selbst wenn Sie sie auf einer Snowflake-Instanz ausführen, also Snowflake nicht lokal auf Ihren EC2-Servern installiert haben.
create or replace stage paphosweather
url='s3://gluebmcwalkerrowe/paphosWeather.csv'
credentials=(aws_key_id='xxxxxxx' aws_secret_key='xxxxxxx')
Kopiere jetzt die Daten in die oben erstellte Tabelle.
copy into weather
from 's3://gluebmcwalkerrowe/paphosWeather.csv'
credentials=(aws_key_id='xxxxxxx' aws_secret_key='xxxxxxxx')
file_format = (type = csv field_delimiter = ',' skip_header = 1);
Konvertiere die Epochenzeit in lesbares Format
Die DT-Spalte ist die Epochenzeit, also die Anzahl der Sekunden seit dem 1. Januar 1970. Sie können sie in ein lesbares Format (z. B. 2000-01-01 01:00:00.000) so umwandeln.
select to_timestamp(dt) from weather
Snowflake-Datums- und Zeitformate
Snowflake scheint einige Einschränkungen beim Import von Datums- und Zeitwerten zu haben. Die Daten, die ich hatte, enthielten sowohl die Epochenzeit () als auch die Zeit in diesem Format:
2020-09-12 23:00:00 +0000 UTC
das ich in dieses Format konvertierte, wobei +00,00 den Zeitzonen-Offset in hh:mm bedeutet:
2020-09-12 23:00:00+00:00
Dieses Format ist ebenfalls verfügbar, das die Zeitzone ganz entfernt:
2020-09-12 23:00:00
Da ich keinen dieser Werte laden konnte, habe ich die Epochenzeit genutzt. (Wenn du es zum Laufen bringst, schreibe uns auf blogs@bmc.com.)
2020-09-12 23:00:00+00:00 sollte mit dieser Formatierungsanweisung übereinstimmen, die Sie mit der Alter Session-Timestamp-Anweisung vor dem Laden der CSV-Datei festgelegt haben:
alter session set TIMESTAMP_INPUT_FORMAT = 'yyyy-mm-dd HH24:MI:SS+TZH:TZM'
Aber Snowflake hat einen Fehler angezeigt, dass sie nicht übereinstimmen. Das ergibt keinen Sinn, da diese Aussage, die das testet, problemlos funktionierte:
select to_timestamp('2000-01-01 00:00:00+00:00', 'yyyy-mm-dd HH24:MI:SS+TZH:TZM');
Als ich weiter recherchiert habe, habe ich in der Dokumentation gesehen, dass das Snowflake-Datetime-Format keine Millisekunden- oder Zeitzonenverschiebung unterstützt. Aber ich bekam trotzdem eine Fehlermeldung, als ich diesen Teil des Datums weggelassen habe. Das Zeitstempelformat hat auch nicht funktioniert. (Noch einmal: Schreib uns, wenn du das bei blogs@bmc.com zum Laufen bringst.)
Zusätzliche Ressourcen
Für weitere Tutorials wie dieses entdecken Sie diese Ressourcen:
Schneeflocken-Leitfaden
- Snowflake 101: Einführung in die Snowflake Data Cloud
- Wie man Amazon S3-Daten in Snowflake importiert
- Wie man JSON-Daten in Snowflake abfragt
- CSV-Dateien von S3 in Snowflake laden
- Snowflake: Verwendung von Analytik und statistischen Funktionen
- Snowflake-Fensterfunktionen: Partitionieren nach und ordnen nach
- Schneeflocken-Verzögerungsfunktion und gleitende Durchschnitte
- Snowflake SQL Aggregate Functions & Table Joins
- Benutzerdefinierte Funktionen (UDFs) in Snowflake
- Schneeflockenströme erstellen und nutzen
- Verwendung von gespeicherten Verfahren in Snowflake
- Schneeflocke vs. Redshift: Was ist der Unterschied und wie wählt man?
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.