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:
Klicken Sie auf der Randleiste auf Notebook > erstellen.
Wählen Sie in der Menüleiste des SQL-Editors ein SQL-Warehouse aus.
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>
.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.
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 );
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.
Klicken Sie auf der Randleiste auf Notebook > erstellen.
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.
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 vonFILEFORMAT
. In diesem Fall weist dieheader
-Option Azure Databricks an, die erste Zeile der CSV-Datei als Header zu behandeln, und dieinferSchema
-Optionen weisen Azure Databricks an, den Datentyp jedes Felds in der CSV-Datei automatisch zu bestimmen.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
Klicken Sie auf der Randleiste auf Notebook > erstellen.
Wählen Sie ein SQL-Warehouse aus, und stellen Sie sicher, dass das SQL-Warehouse ausgeführt wird.
Fügen Sie folgenden Code ein:
DROP TABLE <catalog-name>.<schema-name>.<table-name>;
Klicken Sie auf Ausführen.
Zeigen Sie auf die Registerkarte der Abfrage, und klicken Sie dann auf das Symbol X.
Löschen der Abfragen im SQL-Editor
- Klicken Sie in der Seitenleiste auf SQL-Editor.
- 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
- Der COPY INTO-Verweisartikel