Operações de sistema de arquivos no Azure Data Lake Storage Gen1 usando Python
Neste artigo, você aprenderá a usar o SDK do Python para executar operações de sistema de arquivos no Azure Data Lake Storage Gen1. Para obter instruções sobre como executar operações de gerenciamento de conta no Data Lake Storage Gen1 usando o Python, veja Operações de gerenciamento de conta no Data Lake Storage Gen1 usando o Python.
Pré-requisitos
Python. Você pode baixar o Python aqui. Este artigo usa o Python 3.6.2.
Uma assinatura do Azure. Consulte Obter a avaliação gratuita do Azure.
Conta do Azure Data Lake Storage Gen1. Siga as instruções em Introdução ao Azure Data Lake Storage Gen1 usando o portal do Azure.
Instalar os módulos
Para trabalhar com o Data Lake Storage Gen1 usando o Python, você precisa instalar três módulos.
- O módulo
azure-mgmt-resource
, que inclui módulos do Azure para o Active Directory etc. - O módulo
azure-mgmt-datalake-store
, que inclui as operações de gerenciamento de conta do Azure Data Lake Storage Gen1. Para obter mais informações sobre este módulo, confira a referência do módulo azure-datalake-store. - O módulo
azure-datalake-store
, que inclui as operações do sistema de arquivos do Azure Data Lake Storage Gen1. Para obter mais informações sobre este módulo, confira a referência do módulo de sistema de arquivos azure-datalake-store.
Use os comandos a seguir para instalar os módulos.
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Criar um novo aplicativo Python
Use o IDE de sua escolha para criar um novo aplicativo Python, por exemplo, mysample.py.
Adicione as linhas a seguir 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
Salve as alterações a mysample.py.
Autenticação
Nesta seção, falaremos sobre as diferentes maneiras de autenticar com Microsoft Entra ID. As opções disponíveis são:
- Para autenticação do usuário final para seu aplicativo, consulte Autenticação de usuário final com o Data Lake Storage Gen1 usando o Python.
- Para autenticação de serviço a serviço do aplicativo, consulte Autenticação de serviço a serviço com o Data Lake Storage Gen1 usando o Python.
Criar cliente do sistema de arquivos
O snippet a seguir primeiro cria o cliente da conta do Data Lake Storage Gen1. Ele usa o objeto cliente para criar uma conta do Data Lake Storage Gen1. Finalmente, o snippet de código cria um objeto de cliente do sistema de arquivos.
## 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')
Fazer upload de um arquivo
## Upload a file
multithread.ADLUploader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Baixar um arquivo
## Download a file
multithread.ADLDownloader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt.out', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Excluir um diretório
## Delete a directory
adlsFileSystemClient.rm('/mysampledirectory', recursive=True)