Daten aus Cloudspeicher laden: Microsoft Azure

Einführung

In diesem Tutorial wird gezeigt, wie Sie mithilfe von SQL Daten aus einem Cloudspeicher in Snowflake laden können. Für diese Aufgaben verwenden Sie eine Arbeitsblattvorlage in Snowsight. Sie können wählen, welchen Cloudanbieter Sie verwenden möchten: Amazon S3, Microsoft Azure oder Google Cloud Storage (GCS). Das Arbeitsblatt enthält angepasste SQL-Befehle für die Kompatibilität mit jedem Speichertyp.

Achtung

Das Beispiel in diesem Tutorial ist speziell für Microsoft Azure und zeigt SQL-Befehle, die für das Laden von Daten aus einem Azure-Container vorgesehen sind.

Bemerkung

Snowflake stellt einen minimalen Betrag für den Festplattenspeicher in Rechnung, der für die Beispieldaten in diesem Tutorial benötigt wird. In diesem Tutorial werden Schritte zum Löschen der Tabelle beschrieben, um die Speicherkosten zu minimieren.

Snowflake benötigt ein virtuelles Warehouse, um die Daten laden und Abfragen ausführen zu können. Ein aktives virtuelles Warehouse verbraucht Snowflake-Credits. In diesem Tutorial werden Sie ein 30-tägiges Testkonto verwenden, das kostenlose Credits bietet, sodass Ihnen keine Kosten entstehen.

Lerninhalte

In diesem Tutorial lernen Sie Folgendes:

  • Eine Rolle verwenden, die über die Berechtigungen zum Erstellen und Verwenden der in diesem Tutorial benötigten Snowflake-Objekte verfügt

  • Ein Warehouse verwenden, um auf Ressourcen zuzugreifen

  • Eine Datenbank und ein Schema erstellen

  • Eine Tabelle erstellen

  • Eine Speicherintegration für Ihre Cloudplattform erstellen

  • Einen Stagingbereich für Ihre Speicherintegration erstellen

  • Daten aus dem Stagingbereich in die Tabelle laden

  • Daten in der Tabelle abfragen

Voraussetzungen

Dieses Tutorial setzt Folgendes voraus:

Bemerkung

Dieses Tutorial ist nur für Benutzer mit einem Testkonto verfügbar. Das Musterarbeitsblatt ist für andere Typen von Konten nicht verfügbar.

Schritt 1: Mit Snowsight anmelden

Um über das öffentliche Internet auf Snowsight zuzugreifen, gehen Sie wie folgt vor:

  1. Navigieren Sie in einem unterstützten Webbrowser zu https://app.snowflake.com.

  2. Geben Sie Ihren Kontobezeichner oder Ihre Konto-URL an. Wenn Sie sich bereits zuvor bei Snowsight angemeldet haben, wird Ihnen möglicherweise ein Kontoname angezeigt, den Sie auswählen können.

  3. Melden Sie sich mit den entsprechenden Anmeldeinformationen bei Ihrem Snowflake-Konto an.

Schritt 2: Arbeitsblatt zum Laden von Daten aus dem Cloudspeicher öffnen

Sie können Arbeitsblätter zum Schreiben und Ausführen von SQL-Befehlen in Ihrer Datenbank verwenden. Ihr Testkonto hat Zugriff auf eine Arbeitsblattvorlage für dieses Tutorial. Das Arbeitsblatt enthält die SQL-Befehle, die Sie ausführen werden, um Datenbankobjekte zu erstellen, Daten zu laden und die Daten abzufragen. Da es sich um eine Arbeitsblattvorlage handelt, werden Sie aufgefordert, für bestimmte SQL-Parameter eigene Werte einzugeben. Weitere Informationen zu Arbeitsblättern finden Sie unter Erste Schritte mit Arbeitsblättern.

Das Arbeitsblatt für dieses Tutorial ist nicht im Testkonto vorinstalliert. Gehen Sie folgendermaßen vor, um das Arbeitsblatt für dieses Tutorial zu öffnen:

  1. Wenn Sie sich zum ersten Mal bei Ihrem Snowsight-Testkonto anmelden, wählen Sie auf dem Bildschirm Where do you want to start? unter Load data into Snowflake die Option Start.

    Wenn Sie den Bildschirm Where do you want to start? verlassen haben, wechseln Sie auf die Registerkarte Worksheets. Wählen Sie im Banner Continue aus.

  2. Klicken Sie auf eine beliebige Stelle im mittleren Bereich Load data from cloud storage.

    Die Vorlage [Template] Load data from cloud storage worksheet wird geöffnet, und Ihr Browser sollte ungefähr wie in der folgenden Abbildung aussehen.

SQL aus der Arbeitsblattvorlage zum Laden von Daten aus der Cloud, das die SQL-Befehle für dieses Tutorial zusammen mit beschreibenden Kommentaren enthält.

Schritt 3: Rolle und Warehouse festlegen

Die Rolle, die Sie verwenden, bestimmt die Berechtigungen, die Sie haben. In diesem Tutorial verwenden Sie die Systemrolle ACCOUNTADMIN, damit Sie Objekte in Ihrem Konto anzeigen und verwalten können. Weitere Informationen dazu finden Sie unter Verwenden der ACCOUNTADMIN-Rolle.

Ein Warehouse stellt die Computeressourcen bereit, die Sie zum Ausführen von DML-Operationen, zum Laden von Daten und zum Ausführen von Abfragen benötigen. Zu diesen Ressourcen gehören CPU, Arbeitsspeicher und temporärer Speicher. Ihr Testkonto verfügt über ein virtuelles Warehouse (compute_wh), das Sie für dieses Tutorial verwenden können. Weitere Informationen dazu finden Sie unter Virtuelle Warehouses.

Um Rolle und Warehouse festzulegen, die im Weiteren verwendet werden sollen, gehen Sie wie folgt vor:

  1. Platzieren Sie den Cursor im geöffneten Arbeitsblatt in der USE ROLE-Zeile.

    USE ROLE accountadmin;
    
    Copy
  2. Wählen Sie in der rechten oberen Ecke des Arbeitsblatts die Option Run aus.

    Bemerkung

    In diesem Tutorial führen Sie die SQL-Anweisungen nacheinander aus. Wählen Sie nicht Run All aus.

  3. Platzieren Sie den Cursor in der USE WAREHOUSE-Zeile, und wählen Sie dann Run aus.

    USE WAREHOUSE compute_wh;
    
    Copy

Schritt 4: Tabelle zum Befüllen einrichten

Eine Datenbank ist ein Repository für Ihre Daten. Die Daten werden in Tabellen gespeichert, die Sie verwalten und abfragen können. Ein Schema ist eine logische Gruppierung von Datenbankobjekten wie Tabellen und Ansichten. Ein Schema kann beispielsweise die für eine bestimmte Anwendung erforderlichen Datenbankobjekte enthalten. Weitere Informationen dazu finden Sie unter Datenbanken, Tabellen und Ansichten – Überblick.

Um eine Datenbank, ein Schema und eine Tabelle zu erstellen, die Sie befüllen können, gehen Sie wie folgt vor:

  1. Platzieren Sie den Cursor im geöffneten Arbeitsblatt in der Zeile CREATE OR REPLACE DATABASE, geben Sie einen Namen für Ihre Datenbank und optional einen Kommentar ein, und wählen Sie dann Run aus. Beispiel:

    CREATE OR REPLACE DATABASE cloud_data_db
      COMMENT = 'Database for loading cloud data';
    
    Copy
  2. Platzieren Sie den Cursor in der Zeile CREATE OR REPLACE SCHEMA, geben Sie einen Namen für Ihr Schema und optional einen Kommentar ein, und wählen Sie dann Run aus. Beispiel:

    CREATE OR REPLACE SCHEMA cloud_data_db.azure_data
      COMMENT = 'Schema for tables loaded from Azure';
    
    Copy
  3. Platzieren Sie den Cursor in den Zeile CREATE OR REPLACE TABLE-Zeilen, vervollständigen Sie die Tabellendefinition, fügen Sie optional einen Kommentar hinzu, und wählen Sie Run aus. Die folgende Tabelle enthält zum Beispiel sechs Spalten:

    CREATE OR REPLACE TABLE cloud_data_db.azure_data.calendar
      (
      full_date DATE
      ,day_name VARCHAR(10)
      ,month_name VARCHAR(10)
      ,day_number VARCHAR(2)
      ,full_year VARCHAR(4)
      ,holiday BOOLEAN
      )
      COMMENT = 'Table to be loaded from Azure calendar data file';
    
    Copy
  4. Um zu bestätigen, dass die Tabelle erfolgreich erstellt wurde, platzieren Sie den Cursor in der Zeile SELECT, und wählen Sie dann Run aus.

    SELECT * FROM cloud_data_db.azure_data.calendar;
    
    Copy

    Die Ausgabe zeigt die Spalten der von Ihnen erstellten Tabelle an. Derzeit enthält die Tabelle keine Zeilen.

Schritt 5: Speicherintegration erstellen

Bevor Sie Daten aus einem Cloudspeicher laden können, müssen Sie eine Speicherintegration konfigurieren, die für Ihren Cloudanbieter spezifisch ist. Das folgende Beispiel ist spezifisch für Microsoft Azure-Speicher.

Speicherintegrationen sind benannte First-Class-Snowflake-Objekte, bei denen keine expliziten Cloudanbieter-Anmeldeinformationen wie geheime Schlüssel oder Zugriffstoken übergeben werden müssen. Integrationsobjekte speichern die Benutzer-ID aus der Identitäts- und Zugriffsverwaltung (IAM) von Azure. Diese wird als App-Registrierung bezeichnet.

Um eine Speicherintegration für Azure zu erstellen, gehen Sie wie folgt vor:

  1. Verwenden Sie das Azure-Portal, um einen Azure-Container zum Laden von Daten zu konfigurieren. Weitere Details dazu finden Sie unter Konfigurieren eines Azure-Containers zum Laden von Daten.

  2. Platzieren Sie den Cursor im geöffneten Arbeitsblatt in den CREATE OR REPLACE STORAGE INTEGRATION-Zeilen, definieren Sie die gewünschten Parameter, und wählen Sie Run aus. Beispiel:

    CREATE OR REPLACE STORAGE INTEGRATION azure_data_integration
      TYPE = EXTERNAL_STAGE
      STORAGE_PROVIDER = 'AZURE'
      AZURE_TENANT_ID = '075f576e-6f9b-4955-8e99-4086736225d9'
      ENABLED = TRUE
      STORAGE_ALLOWED_LOCATIONS = ('azure://tutorial99.blob.core.windows.net/snow-tutorial-container/');
    
    Copy

    Setzen Sie AZURE_TENANT_ID auf die Office 365-Tenant-ID für das Speicherkonto, das die zulässigen Speicherorte enthält, die Sie verwenden möchten. Sie finden diese ID im Azure-Portal unter Microsoft Entra ID > Properties > Tenant ID. (Microsoft Entra-ID ist der neue Name für Azure Active Directory).

    Setzen Sie STORAGE_ALLOWED_LOCATIONS auf den Pfad für den Azure-Container, in dem Ihre Quelldatendatei gespeichert ist. Verwenden Sie das in diesem Beispiel gezeigte Format, wobei tutorial99 der Name des Speicherkontos und snow-tutorial-container der Name des Containers ist.

  3. Platzieren Sie den Cursor in der Zeile DESCRIBE INTEGRATION, geben Sie den Namen der von Ihnen erstellten Speicherintegration an, und wählen Sie Run aus.

    DESCRIBE INTEGRATION azure_data_integration;
    
    Copy

    Dieser Befehl ruft die Werte für AZURE_CONSENT_URL und AZURE_MULTI_TENANT_APP_NAME für die Clientanwendung ab, die automatisch für Ihr Snowflake-Konto erstellt wurde. Sie werden diese Werte verwenden, um die Berechtigungen für Snowflake im Azure-Portal zu konfigurieren.

    Die Ausgabe für diesen Befehl sollte in etwa wie folgt aussehen:

    Ausgabe des Befehls DESCRIBE INTEGRATION mit den folgenden Spalten: property, property_type, property_value, property_default.
  4. Platzieren Sie den Cursor in der Zeile SHOW INTEGRATIONS, und wählen Sie Run aus. Dieser Befehl gibt Informationen über die von Ihnen erstellte Speicherintegration zurück.

    SHOW INTEGRATIONS;
    
    Copy

    Die Ausgabe für diesen Befehl sollte in etwa wie folgt aussehen:

    Ausgabe des Befehls SHOW INTEGRATIONS mit den folgenden Spalten: name, type, category, enabled, comment, created_on.
  5. Verwenden Sie das Azure-Portal, um die Berechtigungen für die Clientanwendung (die automatisch für Ihr Testkonto erstellt wurde) für den Zugriff auf Speichercontainer zu konfigurieren. Führen Sie Schritt 2: Snowflake Zugriff auf die Speicherorte gewähren unter Konfigurieren eines Azure-Containers zum Laden von Daten aus.

Schritt 6: Stagingbereich erstellen

Ein Stagingbereich ist ein Speicherort, der Datendateien bereithält, um sie in eine Snowflake-Datenbank zu laden. In diesem Tutorial wird ein Stagingbereich erstellt, der Daten aus einem bestimmten Cloudspeicher, z. B. einem Azure-Container, laden kann.

Um einen Stagingbereich zu erstellen, gehen Sie wie folgt vor:

  1. Platzieren Sie den Cursor im geöffneten Arbeitsblatt in den CREATE OR REPLACE STAGE-Zeilen, geben Sie einen Namen, die von Ihnen erstellte Speicherintegration, die Bucket-URL und das korrekte Dateiformat an, und wählen Sie dann Run aus. Beispiel:

    CREATE OR REPLACE STAGE cloud_data_db.azure_data.azuredata_stage
      STORAGE_INTEGRATION = azure_data_integration
      URL = 'azure://tutorial99.blob.core.windows.net/snow-tutorial-container/'
      FILE_FORMAT = (TYPE = CSV);
    
    Copy
  2. Geben Sie Informationen zu dem von Ihnen erstellten Stagingbereich zurück:

    SHOW STAGES;
    
    Copy

    Die Ausgabe für diesen Befehl sollte in etwa wie folgt aussehen:

    Ausgabe des Befehls SHOW STAGES mit den folgenden Spalten: created_on, name, database_name, schema_name, url.

Schritt 7: Daten aus dem Stagingbereich laden

Laden Sie mit dem Befehl COPY INTO <Tabelle> Daten aus dem von Ihnen erstellten Stagingbereich in die Tabelle. Weitere Informationen zum Laden aus Azure-Containern finden Sie unter Kopieren von Daten aus einem Azure-Stagingbereich.

Um die Daten in die Tabelle zu laden, platzieren Sie den Cursor in die COPY INTO-Zeilen, geben Sie den Tabellennamen, den von Ihnen erstellten Stagingbereich und die Namen der zu ladenden Dateien an, und wählen Sie dann Run aus. Beispiel:

COPY INTO cloud_data_db.azure_data.calendar
  FROM @cloud_data_db.azure_data.azuredata_stage
    FILES = ('calendar.txt');
Copy

Die Ausgabe sollte ungefähr wie in der folgenden Abbildung aussehen.

Es wurden fünf Zeilen in die Tabelle kopiert. Die Ausgabe enthält die folgenden Spalten: file, status, rows_parsed, rows_loaded, error_limit.

Schritt 8. Tabelle abfragen

Jetzt, wo die Daten geladen sind, können Sie Abfragen auf der Tabelle calendar ausführen.

Um eine Abfrage im geöffneten Arbeitsblatt auszuführen, markieren Sie die Zeile oder die Zeilen des SELECT-Befehls, und wählen Sie Run aus. Führen Sie zum Beispiel folgende Abfrage aus:

SELECT * FROM cloud_data_db.azure_data.calendar;
Copy

Die Ausgabe sollte ungefähr wie in der folgenden Abbildung aussehen.

Alle Zeilen der Tabelle sind ausgewählt. Dieses Beispiel enthält die Spalten: full_date, day_name, month_name, day_num, year_num und holiday.

Schritt 9. Bereinigung, Zusammenfassung und zusätzliche Ressourcen

Herzlichen Glückwunsch! Sie haben dieses Tutorial für Testkonten 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. Sie können zum Beispiel die von Ihnen erstellte und geladene Tabelle löschen:

DROP TABLE calendar;
Copy

Wenn sie nicht mehr benötigt werden, können Sie auch die anderen von Ihnen erstellten Objekte, wie Speicherintegration, Stagingbereich, Datenbank und Schema, löschen. Weitere Details dazu finden Sie unter Befehle der DDL (Datendefinitionssprache).

Zusammenfassung und Kernpunkte

Zusammenfassend haben Sie eine für dieses Tutorial vorinstallierte Snowsight-Arbeitsblattvorlage verwendet, um die folgenden Schritte auszuführen:

  1. Rolle und Warehouse zur Verwendung im Tutorial festlegen

  2. Eine Datenbank, ein Schema und eine Tabelle erstellen

  3. Eine Speicherintegration erstellen und Berechtigungen für den Cloudspeicher konfigurieren

  4. Einen Stagingbereich erstellen und Daten aus dem Stagingbereich in die Tabelle laden

  5. Abfragen auf den Daten ausführen

Im Folgenden sind noch einmal die wichtigsten Punkte aufgeführt, die Sie beim Laden und Abfragen von Daten beachten sollten:

  • Sie benötigen die erforderlichen Berechtigungen, um Objekte in Ihrem Konto zu erstellen und zu verwalten. In diesem Tutorial verwenden Sie die Systemrolle ACCOUNTADMIN für diese Berechtigungen.

    Diese Rolle wird normalerweise nicht zum Erstellen von Objekten verwendet. Wir empfehlen stattdessen, eine Rollenhierarchie zu erstellen, die auf die Geschäftsfunktionen in Ihrer Organisation abgestimmt ist. Weitere Informationen dazu finden Sie unter Verwenden der ACCOUNTADMIN-Rolle.

  • Sie benötigen ein Warehouse für die Ressourcen, die zum Erstellen und Verwalten von Objekten und zum Ausführen von SQL-Befehlen erforderlich sind. In diesem Tutorial wird das Warehouse compute_wh verwendet, das für Ihr Testkonto zur Verfügung gestellt wird.

  • Sie haben eine Datenbank zum Speichern der Daten und ein Schema zum logischen Gruppieren der Datenbankobjekte erstellt.

  • Sie haben eine Speicherintegration und einen Stagingbereich zum Laden von Daten aus einer CSV-Datei erstellt, die in einem Azure-Container gespeichert ist.

  • Nachdem die Daten in Ihre Datenbank geladen wurden, haben Sie sie mit einer SELECT-Anweisung abgefragt.

Nächste Schritte

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