Operaciones de sistema de archivos en Azure Data Lake Storage Gen1 mediante el uso de Python
Con este artículo aprenderá a utilizar el SDK de Python para realizar operaciones de sistema de archivos en Azure Data Lake Storage Gen1. Para instrucciones sobre cómo realizar operaciones de administración de cuentas en Data Lake Storage Gen1 con Python, consulte Operaciones de administración de cuentas en Data Lake Storage Gen1 con Python.
Prerrequisitos
Python Python se puede descargar desde aquí. En este artículo se usa Python 3.6.2.
Una suscripción de Azure. Consulte Obtención de una versión de evaluación gratuita.
Cuenta de Azure Data Lake Storage Gen1. Siga las instrucciones de Introducción a Azure Data Lake Storage Gen1 con Azure Portal.
Instalación de los módulos
Para trabajar con Data Lake Storage Gen1 mediante Python, debe instalar tres módulos.
- El módulo
azure-mgmt-resource
, que incluye los módulos de Azure para Active Directory, etc. - El módulo
azure-mgmt-datalake-store
, que incluye las operaciones de administración de cuentas de Azure Data Lake Storage Gen1. Para más información acerca de este módulo, consulte referencia al módulo de azure-mgmt-datalake-store. - El módulo
azure-datalake-store
, que incluye las operaciones de sistema de archivos de Azure Data Lake Storage Gen1. Para más información acerca de este módulo, consulte la referencia al módulo de azure-datalake-store file-system.
Utilice el comando siguiente para instalar los módulos.
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Creación de una nueva aplicación de Python
En el IDE que prefiera, cree una nueva aplicación de Python, por ejemplo, mysample.py.
Agregue las líneas siguientes para importar los módulos necesarios.
## 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 los cambios en mysample.py.
Authentication
En esta sección, hablamos de las distintas formas de autenticarse con Microsoft Entra ID. Las opciones disponibles son:
- Para la autenticación del usuario final para la aplicación, consulte Autenticación de usuario final con Azure Data Lake Storage Gen1 mediante el uso de Python.
- Para la autenticación entre servicios para la aplicación, consulte Autenticación entre servicios con Data Lake Storage Gen1 usando Python.
Creación del cliente del sistema de archivos
En el siguiente fragmento de código se crea primero el cliente de la cuenta de Data Lake Storage Gen1. Usa el objeto de cliente para crear una cuenta de Data Lake Storage Gen1. Por último, el fragmento de código crea un objeto de cliente del sistema de archivos.
## Declare variables
subscriptionId = 'FILL-IN-HERE'
adlsAccountName = 'FILL-IN-HERE'
## Create a filesystem client object
adlsFileSystemClient = core.AzureDLFileSystem(adlCreds, store_name=adlsAccountName)
Creación de un directorio
## Create a directory
adlsFileSystemClient.mkdir('/mysampledirectory')
Carga de un archivo
## Upload a file
multithread.ADLUploader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Descarga de un archivo
## Download a file
multithread.ADLDownloader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt.out', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Eliminación de un directorio
## Delete a directory
adlsFileSystemClient.rm('/mysampledirectory', recursive=True)