Laden von Daten mithilfe von COPY INTO mit einem Dienstprinzipal

In diesem Artikel wird beschrieben, wie Sie den COPY INTO-Befehl verwenden, um Daten aus einem Azure Data Lake Storage Gen2(ADLS Gen2)-Container in Ihrem Azure-Konto in eine Tabelle in Databricks SQL laden.

Bei den Schritten in diesem Artikel wird davon ausgegangen, dass Ihr Administrator ein SQL-Warehouse für die Verwendung eines Azure Databricks-Dienstprinzipals konfiguriert hat, damit Sie auf Ihre Quelldateien in ADLS Gen2 zugreifen können. Wenn Ihr Administrator einen externen Unity Catalog-Speicherort mit Speicheranmeldeinformationen konfiguriert hat, finden Sie stattdessen weitere Informationen unter Laden von Daten mithilfe von COPY INTO mit Unity Catalog-Volumes oder externen Speicherorten. Wenn Ihr Administrator Ihnen temporäre Anmeldeinformationen (ein Blob-SAS-Token) zur Verfügung gestellt hat, führen Sie stattdessen die Schritte unter Laden von Daten mithilfe von COPY INTO mit temporären Anmeldeinformationen aus.

Databricks empfiehlt die Verwendung des Befehls COPY INTO für das inkrementelle Laden und Massenladen von Daten mit Databricks SQL.

Hinweis

COPY INTO funktioniert gut bei Datenquellen, die Tausende von Dateien enthalten. Databricks empfiehlt, dass Sie den Autoloader zum Laden von Millionen von Dateien verwenden, was in Databricks SQL nicht unterstützt wird.

Voraussetzungen

Stellen Sie vor dem Laden von Daten in Azure Databricks sicher, dass Sie über Folgendes verfügen:

  • Zugriff auf Daten in ADLS Gen2. Ihr Administrator muss zunächst die Schritte unter Konfigurieren des Datenzugriffs für die Erfassung ausführen, damit Ihr Databricks SQL-Warehouse Ihre Quelldateien lesen kann.
  • Ein Databricks SQL-Warehouse
  • Die Berechtigung CAN MANAGE (KANN VERWALTEN) im SQL-Warehouse.
  • Der Pfad zu Ihren Daten in einem ADLS Gen2-Container.
  • Kenntnisse der Benutzeroberfläche des Databricks SQL-Arbeitsbereichs

Schritt 1: Bestätigen des Zugriffs auf Daten im Cloudspeicher

Gehen Sie wie folgt vor, um zu bestätigen, dass Sie Zugriff auf die richtigen Daten im Cloudobjektspeicher haben:

  1. Klicken Sie auf der Randleiste auf Notebook > erstellen.

  2. Wählen Sie in der Menüleiste des SQL-Editors ein SQL-Warehouse aus.

  3. Fügen Sie folgenden Code in den SQL-Editor ein:

    select * from csv.<path>
    

    Ersetzen Sie <path> durch den ADLS Gen2-Containerpfad, den Sie von Ihrem Administrator erhalten haben. Beispiel: abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>.

  4. Klicken Sie auf Ausführen.

Schritt 2: Erstellen einer Tabelle

In diesem Schritt wird beschrieben, wie Sie eine Tabelle in Ihrem Azure Databricks-Arbeitsbereich erstellen, um die eingehenden Daten zu speichern.

  1. Fügen Sie folgenden Code in den SQL-Editor ein:

    CREATE TABLE <catalog_name>.<schema_name>.<table_name> (
      tpep_pickup_datetime  TIMESTAMP,
      tpep_dropoff_datetime TIMESTAMP,
      trip_distance DOUBLE,
      fare_amount DOUBLE,
      pickup_zip INT,
      dropoff_zip INT
    );
    
  2. Klicken Sie auf Ausführen.

Schritt 3: Laden von Daten aus dem Cloudspeicher in die Tabelle

In diesem Schritt wird beschrieben, wie Sie Daten aus einem ADLS Gen2-Container in die Tabelle in Ihrem Azure Databricks-Arbeitsbereich laden.

  1. Klicken Sie auf der Randleiste auf Notebook > erstellen.

  2. Wählen Sie in der Menüleiste des SQL-Editors ein SQL-Warehouse aus, und stellen Sie sicher, dass das SQL-Warehouse ausgeführt wird.

  3. Fügen Sie folgenden Code in den SQL-Editor ein. Ersetzen Sie in diesem Code:

    • <container> durch den Namen Ihres ADLS Gen2-Containers innerhalb Ihres Speicherkontos.
    • <storage-account> durch den Namen des ADLS Gen2-Speicherkontos.
    • <folder> durch den Namen des Ordners, der Ihre Daten enthält.
    • <blob-sas-token> durch den Wert des Blob-SAS-Tokens, das Sie von Ihrem Administrator erhalten haben.
    COPY INTO <catalog-name>.<schema-name>.<table-name>
    FROM 'abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>'
    FILEFORMAT = CSV
    FORMAT_OPTIONS (
      'header' = 'true',
      'inferSchema' = 'true'
    );
    
    SELECT * FROM <catalog-name>.<schema-name>.<table-name>;
    

    Hinweis

    FORMAT_OPTIONS unterscheidet sich von FILEFORMAT. In diesem Fall weist die header-Option Azure Databricks an, die erste Zeile der CSV-Datei als Header zu behandeln, und die inferSchema-Optionen weisen Azure Databricks an, den Datentyp jedes Felds in der CSV-Datei automatisch zu bestimmen.

  4. Klicken Sie auf Ausführen.

    Hinweis

    Wenn Sie erneut auf Ausführen klicken, werden keine neuen Daten in die Tabelle geladen. Dies liegt daran, dass der COPY INTO-Befehl nur verarbeitet, was es als neue Daten betrachtet.

Bereinigen

Sie können die zugehörigen Ressourcen in Ihrem Arbeitsbereich bereinigen, falls Sie sie nicht behalten möchten.

Löschen der Tabellen

  1. Klicken Sie auf der Randleiste auf Notebook > erstellen.

  2. Wählen Sie ein SQL-Warehouse aus, und stellen Sie sicher, dass das SQL-Warehouse ausgeführt wird.

  3. Fügen Sie folgenden Code ein:

    DROP TABLE <catalog-name>.<schema-name>.<table-name>;
    
  4. Klicken Sie auf Ausführen.

  5. Zeigen Sie auf die Registerkarte der Abfrage, und klicken Sie dann auf das Symbol X.

Löschen der Abfragen im SQL-Editor

  1. Klicken Sie in der Seitenleiste auf SQL-Editor.
  2. Zeigen Sie in der Menüleiste des SQL-Editors auf die Registerkarte für jede Abfrage, die Sie für dieses Lernprogramm erstellt haben, und klicken Sie dann auf das X-Symbol.

Zusätzliche Ressourcen