Dateisystemvorgänge in Azure Data Lake Storage Gen1 mit Python
In diesem Artikel wird beschrieben, wie Sie das Python SDK verwenden, um Dateisystemvorgänge in Azure Data Lake Storage Gen1 durchzuführen. Eine Anleitung zum Durchführen von Kontoverwaltungsvorgängen in Data Lake Storage Gen1 mit Python finden Sie unter Kontoverwaltungsvorgänge für Data Lake Storage Gen1 mit Python.
Voraussetzungen
Python. Sie können Python hier herunterladen. In diesem Artikel wird Python 3.6.2 verwendet.
Ein Azure-Abonnement. Siehe Kostenlose Azure-Testversion.
Ein Azure Data Lake Storage Gen1-Konto. Befolgen Sie die Anweisungen unter Erste Schritte mit Azure Data Lake Storage Gen1 über das Azure-Portal.
Installieren der Module
Zum Verwenden von Data Lake Storage Gen1 mit Python müssen Sie drei Module installieren.
- Das Modul
azure-mgmt-resource
, in dem Azure-Module für Active Directory usw. enthalten sind. - Das Modul
azure-mgmt-datalake-store
, das die Kontoverwaltungsvorgänge für Azure Data Lake Storage Gen1 enthält. Weitere Informationen zu diesem Modul finden Sie in der Referenz zum Modul azure-mgmt-datalake-store. - Das Modul
azure-datalake-store
, das die Dateisystemvorgänge für Azure Data Lake Storage Gen1 enthält. Weitere Informationen zu diesem Modul finden Sie in der Referenz zum Modul azure-datalake-store file-system.
Verwenden Sie die folgenden Befehle, um die Module zu installieren:
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Erstellen einer neuen Python-Anwendung
Erstellen Sie in der IDE Ihrer Wahl eine neue Python-Anwendung, z.B. mysample.py.
Fügen Sie die folgenden Zeilen hinzu, um die erforderlichen Module zu importieren:
## Use this only for Azure AD service-to-service authentication from azure.common.credentials import ServicePrincipalCredentials ## Use this only for Azure AD end-user authentication from azure.common.credentials import UserPassCredentials ## Use this only for Azure AD multi-factor authentication from msrestazure.azure_active_directory import AADTokenCredentials ## Required for Azure Data Lake Storage Gen1 account management from azure.mgmt.datalake.store import DataLakeStoreAccountManagementClient from azure.mgmt.datalake.store.models import DataLakeStoreAccount ## Required for Azure Data Lake Storage Gen1 filesystem management from azure.datalake.store import core, lib, multithread ## Common Azure imports from azure.mgmt.resource.resources import ResourceManagementClient from azure.mgmt.resource.resources.models import ResourceGroup ## Use these as needed for your application import logging, getpass, pprint, uuid, time
Speichern Sie Ihre Änderungen an „mysample.py“.
Authentifizierung
In diesem Abschnitt werden die verschiedenen Methoden zur Authentifizierung mit Microsoft Entra ID erläutert. Die verfügbaren Optionen sind:
- Informationen zur Authentifizierung von Endbenutzern für Ihre Anwendung finden Sie unter Authentifizierung von Endbenutzern mit Data Lake Storage Gen1 über Python.
- Informationen zur Dienst-zu-Dienst-Authentifizierung für Ihre Anwendung finden Sie unter Dienst-zu-Dienst-Authentifizierung mit Data Lake Storage Gen1 über Python.
Erstellen des Dateisystemclients
Der folgende Codeausschnitt erstellt zunächst den Data Lake Storage Gen1-Kontoclient. Er verwendet das Clientobjekt zum Erstellen eines Data Lake Storage Gen1-Kontos. Schließlich erstellt der Codeausschnitt ein Dateisystem-Clientobjekt.
## Declare variables
subscriptionId = 'FILL-IN-HERE'
adlsAccountName = 'FILL-IN-HERE'
## Create a filesystem client object
adlsFileSystemClient = core.AzureDLFileSystem(adlCreds, store_name=adlsAccountName)
Erstellen eines Verzeichnisses
## Create a directory
adlsFileSystemClient.mkdir('/mysampledirectory')
Hochladen einer Datei
## Upload a file
multithread.ADLUploader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Herunterladen einer Datei
## Download a file
multithread.ADLDownloader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt.out', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Löschen eines Verzeichnisses
## Delete a directory
adlsFileSystemClient.rm('/mysampledirectory', recursive=True)