Operações do sistema de ficheiros no Azure Data Lake Storage Gen1 com Python
Neste artigo, vai aprender a utilizar o SDK python para realizar operações do sistema de ficheiros no Azure Data Lake Storage Gen1. Para obter instruções sobre como realizar operações de gestão de contas em Data Lake Storage Gen1 com Python, veja Operações de gestão de contas em Data Lake Storage Gen1 com Python.
Pré-requisitos
Python. Pode transferir o Python aqui. Este artigo utiliza a versão Python 3.6.2.
Uma subscrição do Azure. Consulte Obter versão de avaliação gratuita do Azure.
Azure Data Lake Storage conta Gen1. Siga as instruções em Introdução ao Azure Data Lake Storage Gen1 com o portal do Azure.
Instalar os módulos
Para trabalhar com Data Lake Storage Gen1 com o Python, tem de instalar três módulos.
- O módulo
azure-mgmt-resource
, que inclui módulos do Azure para o Active Directory, etc. - O
azure-mgmt-datalake-store
módulo, que inclui as operações de gestão de contas do Azure Data Lake Storage Gen1. Para obter mais informações sobre este módulo, veja a referência do módulo azure-mgmt-datalake-store. - O
azure-datalake-store
módulo, que inclui as operações do sistema de ficheiros Azure Data Lake Storage Gen1. Para obter mais informações sobre este módulo, veja a referência do módulo azure-datalake-store file-system.
Utilize os comandos seguintes para instalar os módulos.
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Criar uma aplicação Python nova
No IDE à sua escolha, crie uma aplicação Python nova, como, por exemplo, mysample.py.
Adicione as linhas seguintes para importar os módulos necessários.
## 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
Guarde as alterações a mysample.py.
Autenticação
Nesta secção, falamos sobre as diferentes formas de autenticar com Microsoft Entra ID. As opções disponíveis são:
- Para a autenticação do utilizador final para a sua aplicação, veja Autenticação do utilizador final com Data Lake Storage Gen1 com Python.
- Para autenticação serviço a serviço para a sua aplicação, veja Autenticação serviço a serviço com Data Lake Storage Gen1 com Python.
Criar cliente do sistema de ficheiros
O fragmento seguinte cria primeiro o cliente da conta Data Lake Storage Gen1. Utiliza o objeto de cliente para criar uma conta Data Lake Storage Gen1. Por fim, o fragmento cria um objeto de cliente do sistema de ficheiros.
## Declare variables
subscriptionId = 'FILL-IN-HERE'
adlsAccountName = 'FILL-IN-HERE'
## Create a filesystem client object
adlsFileSystemClient = core.AzureDLFileSystem(adlCreds, store_name=adlsAccountName)
Criar um diretório
## Create a directory
adlsFileSystemClient.mkdir('/mysampledirectory')
Carregar um ficheiro
## Upload a file
multithread.ADLUploader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Transferir um ficheiro
## Download a file
multithread.ADLDownloader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt.out', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Eliminar um diretório
## Delete a directory
adlsFileSystemClient.rm('/mysampledirectory', recursive=True)