Teilen über


Arbeiten mit Dateien in Unity-Katalogvolumes

Diese Seite enthält Beispiele zum Verwalten von Dateien in Unity-Katalogvolumes für verschiedene Benutzeroberflächen, Tools, Bibliotheken und Sprachen.

Databricks empfiehlt die Verwendung von Volumes zum Verwalten des gesamten Zugriffs auf nicht tabellarische Daten im Cloudobjektspeicher und zum Speichern von Workload-Supportdateien. Beispiele hierfür sind:

  • Datendateien zur Verarbeitung, z. B. CSV, JSON und Parquet
  • Text-, Bild- und Audiodateien für Data Science-, ML- und KI-Workloads
  • CSV- oder JSON-Artefakte, die von Azure Databricks für die Integration in externe Systeme geschrieben wurden
  • Bibliotheken, Initskripts und Erstellen von Artefakten

Volumes stellen Pfade im Stil von Portable Operating System Interface (POSIX) bereit, die mit Filesystem in Userspace (FUSE)-abhängigen Tools und Frameworks funktionieren. Dies macht sie ideal für Machine Learning Frameworks und Open Source Python-Module, die POSIX-Stil-Zugriff erfordern. Ausführliche Informationen zu URI-Schemas, POSIX-Pfaden und deren Beziehung zu Volumes finden Sie unter "Muss ich ein URI-Schema für den Zugriff auf Daten bereitstellen?".

Methoden zum Verwalten von Dateien in Volumes

Schnelle Beispiele für jede Methode finden Sie unter "Arbeiten mit Dateien in Unity-Katalogvolumes".

Schnittstelle Description
Benutzeroberfläche des Katalog-Explorers Interaktive Dateiverwaltung über den Azure Databricks-Arbeitsbereich
Programmgesteuerter Zugriff Lesen und Schreiben von Dateien mit Apache Spark, Pandas oder SQL
Databricks-Dienstprogramme Dateivorgänge mit dbutils.fs oder magischen Befehlen (%fs, %sh) in Notizbüchern
SQL-Befehle Dateivorgänge mit SQL-Schlüsselwörtern (LIST, PUT INTO, , GETREMOVE) und Connectors
Databricks-Befehlszeilenschnittstelle Befehlszeilenvorgänge mit databricks fs Befehlen
SDKs Dateivorgänge mit Python, Java oder Go SDKs
REST-API Direkter API-Zugriff für benutzerdefinierte Integrationen

Verwenden des Katalog-Explorers

Der Katalog-Explorer verfügt über Optionen für allgemeine Dateiverwaltungsaufgaben für Dateien, die mit Unity-Katalogvolumes gespeichert sind.

Gehen Sie wie folgt vor, um mit Dateien in einem Volume zu interagieren:

  1. Klicken Sie im Azure Databricks-Arbeitsbereich auf das Datensymbol.Katalog.
  2. Suchen Sie nach dem Volume, das Sie verwenden möchten, und wählen Sie es aus.

Ausführliche Informationen zum Erstellen und Verwalten von Volumes finden Sie unter Erstellen und Verwalten von Unity-Katalogvolumes.

Hochladen von Dateien auf ein Volume

Sie können Dateien eines beliebigen Formats – strukturiert, halbstrukturiert oder unstrukturiert – in ein Volume hochladen. Wenn Sie über die Benutzeroberfläche hochladen, gibt es einen Grenzwert von 5 GB Dateigröße. Volumes unterstützen jedoch Dateien bis zur maximalen Größe, die vom zugrunde liegenden Cloudspeicher unterstützt wird. Sie können sehr große Dateien mit Spark schreiben und große Dateien mithilfe der Azure Databricks-API oder SDKs hochladen.

Anforderungen

Stellen Sie sicher, dass Sie Folgendes haben, bevor Sie auf ein Volume hochladen:

  • Ein Arbeitsbereich mit aktiviertem Unity-Katalog
  • WRITE VOLUME auf dem Zielvolumen
  • USE SCHEMA im übergeordneten Schema
  • USE CATALOG im übergeordneten Katalog

Ausführliche Informationen finden Sie unter Unity-Katalogberechtigungen und sicherungsfähige Objekte.

Uploadschritte

  1. Klicken Sie im Katalog-Explorer auf Daten hinzufügen>auf Volume hochladen.
  2. Klicken Sie auf "Durchsuchen ", oder legen Sie Dateien in der Dropdownzone ab.
  3. Wählen Sie ein Laufwerk oder Verzeichnis aus, oder fügen Sie einen Laufwerkpfad ein.
    • Wenn im Zielschema kein Volume vorhanden ist, erstellen Sie ein Volume.
    • Sie können auch ein neues Verzeichnis innerhalb des Zielvolumes erstellen.

Dialogfeld zum Hochladen einer Datei auf ein Volume

Sie können auch auf folgende Weise auf die Upload-UI zugreifen:

  • In der Randleiste: Neu>Daten hinzufügen>Dateien ins Volume hochladen
  • Aus einem Notizbuch: Dateien auf Volume hochladen>

Nächste Schritte

Nachdem Sie ein Volume hochgeladen haben, können Sie die folgenden Aktionen ausführen:

  • Hochladen von Dokumenten für die Verwendung mit AgentBricks (z. B. Wissens-Assistent-Szenarien)

Herunterladen von Dateien von einem Volume

Gehen Sie wie folgt vor, um Dateien von einem Volume herunterzuladen:

  1. Wählen Sie mindestens eine Datei aus.
  2. Klicken Sie auf "Herunterladen ", um diese Dateien herunterzuladen.

Löschen von Dateien aus einem Volume

Gehen Sie wie folgt vor, um Dateien aus einem Volume zu löschen:

  1. Wählen Sie mindestens eine Datei aus.
  2. Klicken Sie auf Löschen.
  3. Klicken Sie auf "Löschen ", um das angezeigte Dialogfeld zu bestätigen.

Erstellen eines leeren Verzeichnisses

Gehen Sie wie folgt vor, um ein neues Verzeichnis in einem Volume zu erstellen:

  1. Klicken Sie auf der Registerkarte "Volumeübersicht" auf " Verzeichnis erstellen".
  2. Geben Sie einen Verzeichnisnamen ein.
  3. Klicken Sie auf "Erstellen".

Herunterladen eines Verzeichnisses

Gehen Sie wie folgt vor, um ein Verzeichnis in einem Volume herunterzuladen:

  1. Klicken Sie auf das Kebab-Menüsymbol. Kebab-Menü rechts neben dem Verzeichnis.
  2. Klicken Sie auf "Verzeichnis herunterladen".

Das Verzeichnis wird als ZIP-Datei heruntergeladen.

Löschen von Verzeichnissen aus einem Volume

Gehen Sie wie folgt vor, um Verzeichnisse aus einem Volume zu löschen:

  1. Wählen Sie ein oder mehrere Verzeichnisse aus.
  2. Klicken Sie auf Löschen.
  3. Klicken Sie auf "Löschen ", um das angezeigte Dialogfeld zu bestätigen.

Verwaltungsaufgaben für UI-Dateien für Volumes

Klicken Sie auf das Kebab-Menüsymbol. Klicken Sie neben einem Dateinamen auf das Kebab-Menüsymbol , um die folgenden Aktionen auszuführen:

  • Pfad kopieren
  • Herunterladen der Datei
  • Datei löschen
  • Tabelle erstellen

Erstellen einer Tabelle aus Daten in einem Volume

Azure Databricks bietet eine Benutzeroberfläche zum Erstellen einer verwalteten Unity Catalog Tabelle aus einer Datei, aus Dateien oder aus einem Verzeichnis von Dateien, die auf einem Unity Catalog-Volume gespeichert ist/sind.

Sie müssen über CREATE TABLE-Berechtigungen im Zielschema verfügen und Zugriff auf ein ausgeführtes SQL Warehouse haben.

  1. Wählen Sie eine oder mehrere Dateien oder ein Verzeichnis aus. Die Dateien sollten das gleiche Datenlayout haben.

  2. Klicken Sie auf "Tabelle erstellen". Der Dialog Tabelle aus Volumes erstellen wird angezeigt.

  3. Über den angezeigten Dialog können Sie eine Vorschau der Daten prüfen und die folgenden Konfigurationen vervollständigen:

    • Wählen Sie aus, ob Eine neue Tabelle erstellt oder Vorhandene Tabelle überschrieben werden soll
    • Wählen Sie den Zielkatalog und das Zielschema aus.
    • Geben Sie den Tabellennamen an.
    • (Optional) Überschreiben Sie die voreingestellten Spaltennamen und -typen, oder schließen Sie Spalten aus.

    Hinweis

    Klicken Sie auf "Erweiterte Attribute" , um weitere Optionen anzuzeigen.

  4. Klicken Sie auf "Tabelle erstellen", um die Tabelle mit den angegebenen Attributen zu erstellen. Nach Abschluss des Katalog-Explorers werden die Tabellendetails angezeigt.

Programmgesteuertes Arbeiten mit Dateien in Volumes

Lesen und Schreiben von Dateien in Volumes aus allen unterstützten Sprachen und Arbeitsbereichs-Editoren mit dem folgenden Format:

/Volumes/catalog_name/schema_name/volume_name/path/to/files

Sie interagieren mit Dateien in Volumen auf die gleiche Weise wie mit Dateien an einem beliebigen Cloudobjektspeicherort. Das bedeutet: Wenn Sie derzeit Code verwalten, der Cloud-URIs, DBFS-Bereitstellungspfade oder DBFS-Stammpfade für die Interaktion mit Daten oder Dateien verwendet, können Sie den Code stattdessen aktualisieren, um Volumen zu verwenden.

Hinweis

Volumen werden nur für nicht tabellarische Daten verwendet. Databricks empfiehlt, tabellarische Daten mithilfe von Unity Catalog Tabellen zu registrieren und dann Daten mithilfe von Tabellennamen zu lesen und zu schreiben.

Lesen und Schreiben von Daten in Volumen

Verwenden Sie Apache Spark, Pandas, Spark SQL und andere OSS-Bibliotheken, um Datendateien in Volumes zu lesen und zu schreiben.

Die folgenden Beispiele veranschaulichen das Lesen einer CSV-Datei, die in einem Volumen gespeichert ist:

Python

df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")

display(df)

Pandas

import pandas as pd

df = pd.read_csv('/Volumes/catalog_name/schema_name/volume_name/data.csv')

display(df)

SQL

SELECT * FROM csv.`/Volumes/catalog_name/schema_name/volume_name/data.csv`

Hilfsbefehle für Dateien in Volumen

Databricks bietet die folgenden Tools zum Verwalten von Dateien in Volumen:

  • Das dbutils.fs Untermodul in Databricks-Dienstprogrammen. Siehe Dateisystem-Hilfsprogramm (dbutils.fs).
  • Der %fs-Magic-Befehl, der ein Alias für dbutils.fs ist.
  • Der %sh-Magic-Befehl, die Bash Befehl gegen Volumen zulässt.

Ein Beispiel für die Verwendung dieser Tools zum Herunterladen von Dateien aus dem Internet, zum Entzippen von Dateien und zum Verschieben von Dateien aus ephemerem Blockspeicher in Volumes finden Sie unter Herunterladen von Daten aus dem Internet.

Sie können OSS-Pakete auch für Dateihilfsbefehle wie das Python-Modul os verwenden, wie im folgenden Beispiel gezeigt:

import os

os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')

Verwalten von Dateien in Volumen aus externen Tools

Databricks bietet eine Reihe von Tools zum programmgesteuerten Verwalten von Dateien in Volumen aus Ihrer lokalen Umgebung oder integrierten Systemen.

SQL-Befehle für Dateien in Volumen

Azure Databricks unterstützt die folgenden SQL-Schlüsselwörter für die Interaktion mit Dateien in Volumen:

In Azure Databricks-Notizbüchern und dem SQL-Abfrage-Editor wird nur der LIST Befehl unterstützt. Die anderen SQL-Befehle (PUT INTO, GETund REMOVE) sind über die folgenden Databricks SQL-Connectors und -Treiber verfügbar, die das Verwalten von Dateien in Volumes unterstützen:

Verwalten von Dateien in Volumes mit der Databricks CLI

Verwenden Sie die Unterbefehle in databricks fs. Siehe fs Befehlsgruppe.

Hinweis

Die Databricks CLI erfordert, dass das Schema dbfs:/ allen Volumenpfaden vorausgeht. Beispiel: dbfs:/Volumes/catalog_name/schema_name/volume_name/path/to/data.

Verwalten von Dateien in Volumen mit SDKs

Die folgenden SDKs unterstützen das Verwalten von Dateien in Volumen:

Verwalten von Dateien in Volumen mit der REST-API

Verwenden Sie die Datei-API , um Dateien in Volumes zu verwalten.

REST-API-Beispiele für Dateien in Volumen

In den folgenden Beispielen wird curl und die Databricks-REST-API zum Ausführen von Dateiverwaltungsaufgaben in Volumen verwendet.

Im folgenden Beispiel wird ein leerer Ordner erstellt, der im angegebenen Volumen my-folder genannt wird.

curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Im folgenden Beispiel wird eine Datei data.csv mit den angegebenen Daten im angegebenen Pfad im Volumen erstellt.

curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv?overwrite=true" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--header "Content-Type: application/octet-stream" \
--data-binary $'id,Text\n1,Hello World!'

Im folgenden Beispiel werden die Inhalte eines Volumen im angegebenen Pfad aufgelistet. In diesem Beispiel wird jq verwendet, um den JSON-Code des Antworttexts zu formatieren, um das Lesen zu erleichtern.

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .

Im folgenden Beispiel werden die Inhalte eines Ordners in einem Volumen im angegebenen Pfad aufgelistet. In diesem Beispiel wird jq verwendet, um den JSON-Code des Antworttexts zu formatieren, um das Lesen zu erleichtern.

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .

Im folgenden Beispiel wird der Inhalt einer Datei im angegebenen Pfad in einem Volumen gedruckt.

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Im folgenden Beispiel wird eine Datei im angegebenen Pfad aus einem Volumen gelöscht.

curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Im folgenden Beispiel wird ein Ordner aus dem angegebenen Volumen gelöscht.

curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Einschränkungen beim Arbeiten mit Dateien in Volumes

Beachten Sie vor dem Arbeiten mit Dateien in Volumes die folgenden Einschränkungen:

  • Direct-Append- oder nicht sequenzielle (zufällige) Schreibvorgänge werden nicht unterstützt. Dies wirkt sich auf Vorgänge wie das Schreiben von ZIP- und Excel-Dateien aus. Für diese Workloads:

    1. Führen Sie zuerst die Vorgänge auf einem lokalen Datenträger aus.
    2. Kopieren Sie die Ergebnisse auf das Volume.

    Beispiel:

    # python
    import xlsxwriter
    from shutil import copyfile
    
    workbook = xlsxwriter.Workbook('/local_disk0/tmp/excel.xlsx')
    worksheet = workbook.add_worksheet()
    worksheet.write(0, 0, "Key")
    worksheet.write(0, 1, "Value")
    workbook.close()
    
    copyfile('/local_disk0/tmp/excel.xlsx', '/Volumes/my_catalog/my_schema/my_volume/excel.xlsx')
    
  • Sparse-Dateien werden nicht unterstützt. Verwenden Sie cp --sparse=neverFolgendes, um sparse Dateien zu kopieren:

    $ cp sparse.file /Volumes/my_catalog/my_schema/my_volume/sparse.file
    error writing '/dbfs/sparse.file': Operation not supported
    $ cp --sparse=never sparse.file /Volumes/my_catalog/my_schema/my_volume/sparse.file