Bestandssysteembewerkingen in Azure Data Lake Storage Gen1 met behulp van Python
In dit artikel leert u hoe u python-SDK gebruikt om bestandssysteembewerkingen uit te voeren op Azure Data Lake Storage Gen1. Zie Accountbeheerbewerkingen op Data Lake Storage Gen1 met Python voor instructies over het uitvoeren van accountbeheerbewerkingen op Data Lake Storage Gen1 met behulp van Python.
Vereisten
Python. U kunt Python hier downloaden. In dit artikel wordt Python 3.6.2 gebruikt.
Een Azure-abonnement. Zie Gratis proefversie van Azure ophalen.
Azure Data Lake Storage Gen1-account. Volg de instructies in Aan de slag met Azure Data Lake Storage Gen1 met behulp van de Azure Portal.
De modules installeren
Als u met Data Lake Storage Gen1 python wilt werken, moet u drie modules installeren.
- Module
azure-mgmt-resource
, die Azure-modules bevat voor Active Directory enzovoort. - De
azure-mgmt-datalake-store
module, die de Azure Data Lake Storage Gen1-accountbeheerbewerkingen bevat. Zie de naslaginformatie over de module azure-mgmt-datalake-store voor meer informatie over deze module. - De
azure-datalake-store
module, die de Azure Data Lake Storage Gen1-bestandssysteembewerkingen bevat. Zie de naslaginformatie over de bestandssysteemmodule azure-datalake-store voor meer informatie over deze module.
Gebruik de volgende opdrachten om de modules te installeren.
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Een nieuwe Python-toepassing maken
Gebruik de gewenste IDE om een nieuwe Python-toepassing te maken, bijvoorbeeld mysample.py.
Voeg de volgende regels toe om de vereiste modules te importeren.
## 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
Sla de wijzigingen in mysample.py op.
Verificatie
In deze sectie bespreken we de verschillende manieren om te verifiëren met Microsoft Entra ID. De beschikbare opties zijn:
- Zie Eindgebruikersverificatie met Data Lake Storage Gen1 met Behulp van Python voor eindgebruikersverificatie voor uw toepassing.
- Zie Service-naar-serviceverificatie met Data Lake Storage Gen1 met behulp van Python voor service-naar-serviceverificatie voor uw toepassing.
Bestandssysteemclient maken
Met het volgende codefragment wordt eerst de Data Lake Storage Gen1-accountclient gemaakt. Het clientobject wordt gebruikt om een Data Lake Storage Gen1-account te maken. Ten slotte maakt het fragment een clientobject voor het bestandssysteem.
## Declare variables
subscriptionId = 'FILL-IN-HERE'
adlsAccountName = 'FILL-IN-HERE'
## Create a filesystem client object
adlsFileSystemClient = core.AzureDLFileSystem(adlCreds, store_name=adlsAccountName)
Een map maken
## Create a directory
adlsFileSystemClient.mkdir('/mysampledirectory')
Een bestand uploaden
## Upload a file
multithread.ADLUploader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Een bestand downloaden
## Download a file
multithread.ADLDownloader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt.out', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Een map verwijderen
## Delete a directory
adlsFileSystemClient.rm('/mysampledirectory', recursive=True)