Snowflake in 20 Minuten

Einführung

In diesem Tutorial werden die wichtigsten Konzepte und Funktionen von Snowflake unter Verwendung des Snowflake-Befehlszeilenclients SnowSQL vorgestellt. Dazu zählen:

  • Erstellen von Snowflake-Objekten – Sie erstellen eine Datenbank und eine Tabelle, um Daten zu speichern.

  • Laden von Daten – Wir stellen kleine CSV-Beispieldatendateien zur Verfügung, die Sie in die Tabelle laden können.

  • Abfragen – Sie untersuchen Beispielabfragen.

Bemerkung

Snowflake benötigt ein virtuelles Warehouse, um die Daten laden und Abfragen ausführen zu können. Ein aktiviertes virtuelles Warehouse verbraucht Snowflake-Credits, allerdings ist die Anzahl der bei diesem Tutorial verbrauchten Credits minimal, da Sie das gesamte Tutorial in weniger als 30 Minuten absolvieren können. Darüber hinaus stellt Snowflake einen minimalen Betrag für den Festplattenspeicher in Rechnung, der für die Beispieldaten in diesem Tutorial benötigt wird. In diesem Tutorial werden jedoch Schritte beschrieben, um die Tabelle zu löschen und die Speicherkosten zu minimieren. Wenn Sie ein 30-tägiges Testkonto verwenden, erhalten Sie kostenlose Credits, sodass Ihnen keine Kosten entstehen. Weitere Informationen zu Warehouse-Größen und -Kosten finden Sie unter Warehouse-Größe.

Lerninhalte

In diesem Tutorial lernen Sie Folgendes:

  • Snowflake-Objekte erstellen – Sie erstellen eine Datenbank und eine Tabelle, um Daten zu speichern.

  • SnowSQL installieren – Sie installieren und verwenden das Snowflake-Befehlszeilenabfragetool SnowSQL.

    Benutzer von Visual Studio Code sollten die Verwendung von Snowflake Extension for Visual Studio Code anstelle von SnowSQL in Betracht ziehen.

  • CSV-Datendateien laden – Sie verwenden verschiedene Mechanismen, um Daten aus CSV-Dateien in Tabellen zu laden.

  • Beispielabfragen schreiben und ausführen – Sie schreiben unterschiedlichste Abfragen auf neu geladene Daten und führen diese Abfragen aus.

Voraussetzungen

Für diese Tutorial sind eine Datenbank, eine Tabelle und ein virtuelles Warehouse erforderlich, um Daten laden und abfragen zu können. Für das Erstellen dieser Snowflake-Objekte ist ein Snowflake-Benutzer erforderlich, der über eine Rolle mit den erforderlichen Zugriffssteuerungsrechten verfügt. Darüber hinaus wird SnowSQL benötigt, um die SQL-Anweisungen des Tutorials auszuführen. Schließlich benötigt das Tutorial CSV-Dateien die Beispieldaten zum Laden enthalten.

Sie können das Tutorial mit einem vorhandenen Snowflake-Warehouse, einer vorhandenen Datenbank und einer vorhandenen Tabelle sowie Ihren eigenen lokalen Datendateien durchführen, aber wir empfehlen, dass Sie die von uns bereitgestellten Snowflake-Objekte und -Datendateien verwenden.

Um Snowflake für dieses Tutorial einzurichten, müssen Sie folgende Schritte ausführen, bevor Sie fortfahren:

  1. Benutzer erstellen

    Um die Datenbank, die Tabelle und das virtuelle Warehouse zu erstellen, müssen Sie als Snowflake-Benutzer mit einer Rolle angemeldet sein, die über die Berechtigungen zum Erstellen dieser Objekte verfügt.

    • Wenn Sie ein 30-Tage-Testkonto verwenden, können Sie sich als der Benutzer anmelden, der für das Konto erstellt wurde. Dieser Benutzer hat die Rolle mit den Berechtigungen, die zum Erstellen der Objekte erforderlich sind.

    • Wenn Sie keinen Snowflake-Benutzer haben, können Sie dieses Tutorial nicht durchführen. Wenn Sie keine Rolle haben, mit der Sie einen Benutzer erstellen können, müssen Sie jemanden mit dieser Rolle darum bitten, diesen Schritt für Sie auszuführen. Benutzer mit der Rolle ACCOUNTADMIN oder SECURITYADMIN können Benutzer erstellen.

  2. SnowSQL installieren

    Informationen zum Installieren von SnowSQL finden Sie unter Installieren von SnowSQL.

  3. Beispieldatendateien herunterladen

    Für dieses Tutorial laden Sie Beispieldatendateien mit Mitarbeiterdaten im CSV-Format herunter, die von Snowflake bereitgestellt werden.

    So laden Sie die Beispieldatendateien herunter und entpacken diese:

    1. Laden Sie die Beispieldatendateien herunter. Klicken Sie dazu mit der rechten Maustaste auf den Namen der Archivdatei getting-started.zip, und speichern Sie den Link bzw. die Datei in Ihrem lokalen Dateisystem.

    2. Entpacken Sie die Beispieldateien. Das Tutorial setzt voraus, dass Sie die Dateien in eines der folgenden Verzeichnisse entpackt haben:

    • Linux/macOS: /tmp

    • Windows: C:\\temp

    Jede Datei enthält fünf Datensätze. Die Daten verwenden ein Komma (,) als Feldtrennzeichen. Nachfolgend sehen Sie ein Beispiel für einen Datensatz:

    Althea,Featherstone,afeatherstona@sf_tuts.com,"8172 Browning Street, Apt B",Calatrava,7/12/2017
    
    Copy

Es gibt keine Leerzeichen vor oder nach den Kommas, die die Felder in jedem Datensatz trennen. Dies ist der Standard, den Snowflake beim Laden von CSV-Daten erwartet.

Bei SnowSQL anmelden

Nachdem Sie SnowSQL haben, starten Sie SnowSQL, um eine Verbindung zu Snowflake herzustellen:

  1. Öffnen Sie ein Befehlszeilenfenster.

  2. Starten Sie SnowSQL:

    $ snowsql -a <account_identifier> -u <user_name>
    
    Copy

    Wobei:

    • <account_identifier> ist ein eindeutiger Bezeichner für Ihr Snowflake-Konto.

      Das bevorzugte Format für den Kontobezeichner ist wie folgt:

      organization_name-account_name

      Namen Ihrer Snowflake-Organisation und Ihres Snowflake-Kontos. Weitere Informationen dazu finden Sie unter Format 1 (bevorzugt): Kontoname in Ihrer Organisation.

    • <Benutzername> ist der Anmeldename für Ihren Snowflake-Benutzer.

    Bemerkung

    Wenn Ihr Konto über einen Identitätsanbieter (IdP) verfügt, der für Ihr Konto definiert wurde, können Sie zur Authentifizierung einen Webbrowser anstelle eines Kennworts verwenden, wie das folgende Beispiel zeigt.

    $ snowsql -a <account_identifier> -u <user_name> --authenticator externalbrowser
    
    Copy

    Weitere Informationen dazu finden Sie unter Verwenden eines Webbrowsers für Verbundauthentifizierung/SSO.

  3. Wenn Sie von SnowSQL aufgefordert werden, geben Sie das Kennwort des Snowflake-Benutzers ein.

Wenn die Anmeldung erfolgreich war, zeigt SnowSQL eine Eingabeaufforderung an, die Ihr aktuelles Warehouse, Ihre Datenbank und Ihr Schema enthält.

Bemerkung

Wenn Ihnen der Zugang zum Konto verwehrt wird oder Sie keinen Kontobezeichner erhalten, finden Sie diesen in der Willkommens-E-Mail, die Snowflake Ihnen bei der Anmeldung für das Testkonto geschickt hat, oder Sie können Ihren ORGADMIN (Organisationsadministrator) verwenden, um die Kontodaten zu erhalten. Sie finden die Werte für locator, cloud und region auch in der Willkommens-E-Mail.

Wenn Ihr Snowflake-Benutzer keine Standard-Einstellungen für Warehouse, Datenbank und Schema hat, oder wenn Sie SnowSQL nicht so konfiguriert haben, dass Standard-Warehouse, Standard-Datenbank und Standard-Schema angegeben werden, zeigt die Eingabeaufforderung no warehouse, no database und no schema an. Beispiel:

user-name#(no warehouse)@(no database).(no schema)>
Copy

Diese Eingabeaufforderung zeigt an, dass für die aktuelle Sitzung kein Warehouse, keine Datenbank und kein Schema ausgewählt ist. Diese Objekte erstellen Sie im nächsten Schritt. Wenn Sie die nächsten Schritte in diesem Tutorial ausführen, um diese Objekte zu erstellen, wird die Eingabeaufforderung automatisch aktualisiert und enthält dann die Namen dieser Objekte.

Weitere Informationen dazu finden Sie unter Verbinden über SnowSQL.

Snowflake-Objekte erstellen

In diesem Schritt erstellen Sie die folgenden Snowflake-Objekte:

  • Eine Datenbank (sf_tuts) und eine Tabelle (emp_basic). Sie laden Beispieldaten in diese Tabelle.

  • Ein virtuelles Warehouse (sf_tuts_wh). Dieses Warehouse stellt die Computeressourcen bereit, die zum Laden von Daten in die Tabelle und für Abfragen auf der Tabelle erforderlich sind. In diesem Tutorial erstellen Sie ein Warehouse der Größe „X-Small“.

Nach Abschluss dieses Tutorials werden Sie diese Objekte wieder entfernen.

Datenbank erstellen

Erstellen Sie mit dem Befehl CREATE DATABASE die Datenbank sf_tuts:

CREATE OR REPLACE DATABASE sf_tuts;
Copy

In diesem Tutorial werden Sie das für jede Datenbank verfügbare Standardschema (public) verwenden, sodass Sie kein neues Schema erstellen müssen.

Beachten Sie, dass die soeben erstellte Datenbank einschließlich Schema nun für Ihre aktuelle Sitzung verwendet wird, wie von der SnowSQL-Eingabeaufforderung angezeigt. Sie können auch die Kontextfunktionen verwenden, um diese Informationen zu erhalten.

SELECT CURRENT_DATABASE(), CURRENT_SCHEMA();
Copy

Nachfolgend ein Beispiel für ein Ergebnis:

+--------------------+------------------+
| CURRENT_DATABASE() | CURRENT_SCHEMA() |
|--------------------+------------------|
| SF_TUTS            | PUBLIC           |
+--------------------+------------------+

Tabelle erstellen

Erstellen Sie eine Tabelle mit dem Namen emp_basic in sf_tuts.public mit dem Befehl CREATE TABLE:

CREATE OR REPLACE TABLE emp_basic (
   first_name STRING ,
   last_name STRING ,
   email STRING ,
   streetaddress STRING ,
   city STRING ,
   start_date DATE
   );
Copy

Beachten Sie, dass die Anzahl der Spalten in der Tabelle, die Spaltenpositionen sowie die Datentypen der Spalten den Feldern der CSV-Beispieldatendateien entsprechen, die Sie im nächsten Schritt dieses Tutorials im Stagingbereich bereitstellen.

Virtuelles Warehouse erstellen

Erstellen Sie ein X-Small-Warehouse namens sf_tuts_wh mit dem Befehl CREATE WAREHOUSE:

CREATE OR REPLACE WAREHOUSE sf_tuts_wh WITH
   WAREHOUSE_SIZE='X-SMALL'
   AUTO_SUSPEND = 180
   AUTO_RESUME = TRUE
   INITIALLY_SUSPENDED=TRUE;
Copy

Das Warehouse sf_tuts_wh wird zunächst angehalten, aber die DML-Anweisung wird auch auf AUTO_RESUME = true gesetzt. Die AUTO_RESUME-Einstellung bewirkt, dass ein Warehouse automatisch gestartet wird, wenn SQL-Anweisungen ausgeführt werden, die Computeressourcen benötigen.

Nachdem Sie das Warehouse erstellt haben, wird es nun für die aktuelle Sitzung verwendet. Diese Informationen werden in Ihrer SnowSQL-Eingabeaufforderung angezeigt. Sie können auch den Namen des Warehouses abrufen, indem Sie die folgende Kontextfunktion verwenden:

SELECT CURRENT_WAREHOUSE();
Copy

Nachfolgend ein Beispiel für ein Ergebnis:

+---------------------+
| CURRENT_WAREHOUSE() |
|---------------------|
| SF_TUTS_WH          |
+---------------------+

Datendateien im Stagingbereich bereitstellen

Eine Snowflake-Stagingbereich ist ein Ort im Cloudspeicher, den Sie zum Laden und Entladen von Daten aus einer Tabelle verwenden. Snowflake unterstützt die folgenden Typen von Stagingbereichen:

  • Interne Stagingbereiche – Wird zum internen Speichern von Datendateien innerhalb von Snowflake verwendet. Jeder Benutzer und jede Tabelle in Snowflake erhält standardmäßig einen internen Stagingbereich für die Bereitstellung von Datendateien.

  • Externe Stagingbereiche: – Werden verwendet, um Datendateien extern in Amazon S3, Google Cloud Storage oder Microsoft Azure zu speichern. Wenn Ihre Daten bereits bei diesen Cloudspeicherdiensten gespeichert werden, können Sie einen externen Stagingbereich verwenden, um Daten in Snowflake-Tabellen zu laden.

In diesem Tutorial laden wir die Beispieldatendateien (im Abschnitt Voraussetzungen heruntergeladen) in den für die zuvor erstellt Tabelle emp_basic vorgesehenen internen Stagingbereich hoch. Verwenden Sie den Befehl PUT, um die Beispieldatendateien in diesen Stagingbereich hochzuladen.

Beispieldatendateien im Stagingbereich bereitstellen

Führen Sie in SnowSQL den Befehl PUT aus, um lokale Datendateien in den Tabellen-Stagingbereich hochzuladen, der für die von Ihnen erstellte Tabelle emp_basic vorgesehen ist.

PUT file://<file-path>[/\]employees0*.csv @sf_tuts.public.%emp_basic;
Copy

Beispiel:

  • Linux oder macOS

    PUT file:///tmp/employees0*.csv @sf_tuts.public.%emp_basic;
    
    Copy
  • Windows

    PUT file://C:\temp\employees0*.csv @sf_tuts.public.%emp_basic;
    
    Copy

Lassen Sie uns einen genaueren Blick auf den Befehl werfen:

  • file://<file-path>[/\]employees0*.csv gibt den vollständigen Verzeichnispfad und die Namen der Dateien auf Ihrem lokalen Computer an, die im Stagingbereich bereitgestellt werden sollen. Beachten Sie, dass Platzhalter für das Dateisystem zulässig sind und dass, wenn mehrere Dateien dem Muster entsprechen, alle angezeigt werden.

  • @<Namespace>.%<Tabellenname> zeigt an, dass die angegebene Tabelle, in diesem Fall die Tabelle emp_basic, im Stagingbereich verwendet werden soll.

Der Befehl liefert das folgende Ergebnis, das die Stagingdateien anzeigt:

+-----------------+--------------------+-------------+-------------+--------------------+--------------------+----------+---------+
| source          | target             | source_size | target_size | source_compression | target_compression | status   | message |
|-----------------+--------------------+-------------+-------------+--------------------+--------------------+----------+---------|
| employees01.csv | employees01.csv.gz |         360 |         287 | NONE               | GZIP               | UPLOADED |         |
| employees02.csv | employees02.csv.gz |         355 |         274 | NONE               | GZIP               | UPLOADED |         |
| employees03.csv | employees03.csv.gz |         397 |         295 | NONE               | GZIP               | UPLOADED |         |
| employees04.csv | employees04.csv.gz |         366 |         288 | NONE               | GZIP               | UPLOADED |         |
| employees05.csv | employees05.csv.gz |         394 |         299 | NONE               | GZIP               | UPLOADED |         |
+-----------------+--------------------+-------------+-------------+--------------------+--------------------+----------+---------+

Beim PUT-Befehl werden Dateien standardmäßig mit gzip komprimiert, wie in der Spalte TARGET_COMPRESSION angegeben.

Auflisten der Stagingdateien (optional)

Sie können die Stagingdateien mit dem Befehl LIST auflisten.

LIST @sf_tuts.public.%emp_basic;
Copy

Nachfolgend ein Beispiel für ein Ergebnis:

+--------------------+------+----------------------------------+------------------------------+
| name               | size | md5                              | last_modified                |
|--------------------+------+----------------------------------+------------------------------|
| employees01.csv.gz |  288 | a851f2cc56138b0cd16cb603a97e74b1 | Tue, 9 Jan 2018 15:31:44 GMT |
| employees02.csv.gz |  288 | 125f5645ea500b0fde0cdd5f54029db9 | Tue, 9 Jan 2018 15:31:44 GMT |
| employees03.csv.gz |  304 | eafee33d3e62f079a054260503ddb921 | Tue, 9 Jan 2018 15:31:45 GMT |
| employees04.csv.gz |  304 | 9984ab077684fbcec93ae37479fa2f4d | Tue, 9 Jan 2018 15:31:44 GMT |
| employees05.csv.gz |  304 | 8ad4dc63a095332e158786cb6e8532d0 | Tue, 9 Jan 2018 15:31:44 GMT |
+--------------------+------+----------------------------------+------------------------------+

Kopieren von Daten in Zieltabellen

Zum Laden Ihrer im Stagingbereich bereitgestellten Daten in die Zieltabelle führen Sie COPY INTO <Tabelle> aus.

Der Befehl COPY INTO <Tabelle> verwendet zum Kopieren von Dateien das virtuelle Warehouse, das Sie unter Snowflake-Objekte erstellen erstellt haben.

COPY INTO emp_basic
  FROM @%emp_basic
  FILE_FORMAT = (type = csv field_optionally_enclosed_by='"')
  PATTERN = '.*employees0[1-5].csv.gz'
  ON_ERROR = 'skip_file';
Copy

Wobei:

  • Die FROM-Klausel gibt den Speicherort der Datendateien an (der interne Stagingbereich für die Tabelle).

  • Die FILE_FORMAT-Klausel gibt CSV als Dateityp und das doppelte Anführungszeichen (") als Zeichen zum Umschließen von Zeichenfolgen an. Snowflake unterstützt verschiedene Dateitypen und Optionen. Diese sind unter CREATE FILE FORMAT beschrieben.

  • Die PATTERN-Klausel gibt an, dass der Befehl Daten aus Dateien mit Namen laden soll, die dem regulären Ausdruck .*employees0[1-5].csv.gz entsprechen.

  • Die ON_ERROR-Klausel gibt an, was zu tun ist, wenn der COPY-Befehl Fehler in den Dateien feststellt. Der Befehl stoppt standardmäßig das Laden von Daten, wenn der erste Fehler auftritt. In diesem Beispiel wird jede Datei übersprungen, die einen Fehler enthält, und dann mit dem Laden der nächsten Datei fortgefahren. (Keine der Dateien in diesem Tutorial enthält Fehler, dies dient nur der Veranschaulichung.)

Der COPY-Befehl bietet auch eine Option, mit der Sie Dateien vor dem Laden überprüfen können. Weitere Informationen zu Fehlerprüfung und Validierung finden Sie unter dem Thema COPY INTO <Tabelle> und in den anderen Tutorials zum Laden von Daten.

Der COPY-Befehl gibt als Ergebnis eine Liste der kopierten Dateien und zugehörige Informationen zurück:

+--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
| file               | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name |
|--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| employees02.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees04.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees05.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees03.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees01.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
+--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+

Geladen Daten abfragen

Sie können die in die Tabelle emp_basic geladenen Daten mit Standard-SQL sowie mit allen unterstützten Funktionen und Operatoren abfragen.

Sie können die Daten auch bearbeiten, z. B. die geladenen Daten aktualisieren oder weitere Daten einfügen, indem Sie standardmäßige DML-Befehle verwenden.

Alle Daten abrufen

Rückgabe aller Zeilen und Spalten der Tabelle:

SELECT * FROM emp_basic;
Copy

Im Folgenden sehen Sie ein Teilergebnis:

+------------+--------------+---------------------------+-----------------------------+--------------------+------------+
| FIRST_NAME | LAST_NAME    | EMAIL                     | STREETADDRESS               | CITY               | START_DATE |
|------------+--------------+---------------------------+-----------------------------+--------------------+------------|
| Arlene     | Davidovits   | adavidovitsk@sf_tuts.com  | 7571 New Castle Circle      | Meniko             | 2017-05-03 |
| Violette   | Shermore     | vshermorel@sf_tuts.com    | 899 Merchant Center         | Troitsk            | 2017-01-19 |
| Ron        | Mattys       | rmattysm@sf_tuts.com      | 423 Lien Pass               | Bayaguana          | 2017-11-15 |
 ...
 ...
 ...
| Carson     | Bedder       | cbedderh@sf_tuts.co.au    | 71 Clyde Gallagher Place    | Leninskoye         | 2017-03-29 |
| Dana       | Avory        | davoryi@sf_tuts.com       | 2 Holy Cross Pass           | Wenlin             | 2017-05-11 |
| Ronny      | Talmadge     | rtalmadgej@sf_tuts.co.uk  | 588 Chinook Street          | Yawata             | 2017-06-02 |
+------------+--------------+---------------------------+-----------------------------+--------------------+------------+
Copy

Zusätzliche Datenzeilen einfügen

Zusätzlich zum Laden von Daten aus bereitgestellten Dateien in eine Tabelle können Sie mit dem DML-Befehl INSERT Zeilen direkt in eine Tabelle einfügen.

Beispiel für das Einfügen von zwei zusätzlichen Zeilen in die Tabelle:

INSERT INTO emp_basic VALUES
   ('Clementine','Adamou','cadamou@sf_tuts.com','10510 Sachs Road','Klenak','2017-9-22') ,
   ('Marlowe','De Anesy','madamouc@sf_tuts.co.uk','36768 Northfield Plaza','Fangshan','2017-1-26');
Copy

Zeilen auf Basis der E-Mail-Adresse abfragen

Geben Sie mit der Funktion LIKE eine Liste von E-Mail-Adressen zurück, bei denen das Vereinigte Königreich die Top-Level-Domain ist:

SELECT email FROM emp_basic WHERE email LIKE '%.uk';
Copy

Nachfolgend ein Beispiel für ein Ergebnis:

+--------------------------+
| EMAIL                    |
|--------------------------|
| gbassfordo@sf_tuts.co.uk |
| rtalmadgej@sf_tuts.co.uk |
| madamouc@sf_tuts.co.uk   |
+--------------------------+

Zeilen auf Basis des Startdatums abfragen

Um beispielsweise zu berechnen, wann bestimmte Leistungsansprüche der Mitarbeiter wirksam werden könnten, fügen Sie mit der Funktion DATEADD 90 Tage zu den Startdaten der Mitarbeiter hinzu. Filtern Sie die Liste nach Mitarbeitern, deren Startdatum vor dem 1. Januar 2017 liegt:

SELECT first_name, last_name, DATEADD('day',90,start_date) FROM emp_basic WHERE start_date <= '2017-01-01';
Copy

Nachfolgend ein Beispiel für ein Ergebnis:

+------------+-----------+------------------------------+
| FIRST_NAME | LAST_NAME | DATEADD('DAY',90,START_DATE) |
|------------+-----------+------------------------------|
| Granger    | Bassford  | 2017-03-30                   |
| Catherin   | Devereu   | 2017-03-17                   |
| Cesar      | Hovie     | 2017-03-21                   |
| Wallis     | Sizey     | 2017-03-30                   |
+------------+-----------+------------------------------+

Zusammenfassung, Bereinigen und weitere Informationen

Herzlichen Glückwunsch! Sie haben dieses Einführungstutorial erfolgreich abgeschlossen.

Nehmen Sie sich nun ein paar Minuten Zeit, um noch einmal eine kurze Zusammenfassung und die wichtigsten Punkte des Tutorials zu lesen. Möglicherweise sollten Sie auch eine Bereinigung des Datenspeichers in Betracht ziehen, indem Sie alle Objekte, die Sie im Tutorial erstellt haben, wieder löschen. Weitere Informationen finden Sie unter den anderen Themen der Snowflake-Dokumentation.

Zusammenfassung und Kernpunkte

Zusammenfassend erfolgt das Laden der Daten in zwei Schritten:

  1. Bereitstellen der zu ladende Datendateien in einem Stagingbereich. Die Dateien können intern (in Snowflake) oder an einem externen Speicherort bereitgestellt werden. In diesem Tutorial stellen Sie Dateien in einem internen Stagingbereich bereit.

  2. Kopieren der Daten aus den Stagingdateien in eine vorhandene Zieltabelle. Für diesen Schritt ist ein aktives Warehouse erforderlich.

Beachten Sie die folgenden wichtigen Punkte zum Laden von CSV-Dateien:

  • Eine CSV-Datei besteht aus einem oder mehreren Datensätzen, mit einem oder mehreren Feldern in jedem Datensatz und manchmal mit einem Kopfdatensatz.

  • Datensätze und Felder in jeder Datei sind durch Trennzeichen getrennt. Die Standardtrennzeichen sind:

    Datensätze

    Zeilenumbrüche

    Felder

    Kommas

    Mit anderen Worten, Snowflake erwartet, dass in einer CSV-Datei alle Datensätze durch ein Neue-Zeile-Zeichen und alle Felder (d. h. die einzelnen Werte) eines Datensatzes durch Kommas getrennt sind. Wenn die als Datensatz- und Feldtrennzeichen verwendeten Zeichen unterschiedlich sind, müssen Sie dies beim Laden explizit als Teil des Dateiformats angeben.

  • Zwischen den Feldern in den Dateien und den Spalten der Tabelle, in die die Daten geladen werden, gibt es eine direkte Korrelation bezüglich:

    • Anzahl der Felder (in der Datei) und Spalten (in der Zieltabelle).

    • Positionen der Felder und Spalten innerhalb der jeweiligen Datei/Tabelle.

    • Datentypen, wie Zeichenfolge (string), Zahl (number) oder Datum (date), für Felder und Spalten.

    Wenn die Anzahl der Felder, die Positionen und die Datentypen nicht vollständig übereinstimmen, werden die Datensätze nicht geladen.

    Bemerkung

    Snowflake unterstützt das Laden von Dateien, bei denen die Felder nicht genau mit den Spalten der Zieltabelle übereinstimmen. Dies gehört jedoch zu den fortgeschrittenen Aspekten des Ladens von Daten (behandelt unter Transformieren von Daten während eines Ladevorgangs).

Tutorialdaten bereinigen (optional)

Wenn die Objekte, die Sie in diesem Tutorial erstellt haben, nicht mehr benötigt werden, können Sie sie mit DROP <Objekt>-Anweisungen aus dem System entfernen.

DROP DATABASE IF EXISTS sf_tuts;

DROP WAREHOUSE IF EXISTS sf_tuts_wh;
Copy

Verbindung schließen

Um eine Verbindung zu beenden, verwenden Sie den Befehl !exit für SnowSQL (oder sein Alias !disconnect).

Durch das Beenden wird aktuelle Verbindung gelöscht. Wenn es sich um die letzte Verbindung handelte, wird SnowSQL beendet.

Nächste Schritte

Setzen Sie die Einarbeitung in Snowflake mithilfe der folgenden Ressourcen fort: