Операции файловой системы в Azure Data Lake Storage 1-го поколения с использованием пакета SDK для Python
В этой статье содержатся сведения об использовании пакета SDK для Python для выполнения операций файловой системы в Azure Data Lake Storage 1-го поколения. Дополнительные сведения о том, как выполнять операции управления учетными записями в Data Lake Storage 1-го поколения с помощью пакета SDK для Python, см. в этой статье.
Предварительные требования
Python. Скачать Python можно здесь. В этой статье используется версия Python 3.6.2.
Подписка Azure. См. страницу бесплатной пробной версии Azure.
Учетная запись Azure Data Lake Storage 1-го поколения. Следуйте инструкциям из статьи Начало работы с Azure Data Lake Storage Gen1 с помощью портала Azure.
Установка модулей
Для работы с Data Lake Storage 1-го поколения с использованием Python необходимо установить три модуля.
- Модуль
azure-mgmt-resource
, который включает в себя модули Azure для Active Directory и т. д. - Модуль
azure-mgmt-datalake-store
, который включает в себя операции по управлению учетной записью Azure Data Lake Storage 1-го поколения. Дополнительные сведения см. в справочнике по модулю azure-mgmt-datalake-store. - Модуль
azure-datalake-store
, который включает в себя операции с файловой системой Azure Data Lake Storage 1-го поколения. Дополнительные сведения см. в справочнике по модулю azure-datalake-store file-system.
Чтобы установить модули, используйте следующие команды.
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Создание приложения Python
Для создания приложения Python используйте IDE по своему усмотрению, например mysample.py.
Чтобы импортировать необходимые модули, добавьте следующие строки.
## 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
Сохраните изменения в mysample.py.
Аутентификация
В этом разделе мы поговорим о различных способах проверки подлинности с помощью Microsoft Entra ID. Доступны следующие варианты.
- Дополнительные сведения о проверке подлинности пользователей в приложении см. в статье Аутентификация пользователей в Data Lake Store с помощью Python.
- Дополнительные сведения о проверке подлинности между службами в приложении см. в статье Аутентификация между службами в Data Lake Store с помощью Python.
Создание файловой системы клиента
Приведенный ниже фрагмент кода сначала создает клиент учетной записи Data Lake Storage 1-го поколения. Затем он использует объект клиента для создания учетной записи Data Lake Storage 1-го поколения. И наконец, он создает объект клиента файловой системы.
## Declare variables
subscriptionId = 'FILL-IN-HERE'
adlsAccountName = 'FILL-IN-HERE'
## Create a filesystem client object
adlsFileSystemClient = core.AzureDLFileSystem(adlCreds, store_name=adlsAccountName)
Создание каталога
## Create a directory
adlsFileSystemClient.mkdir('/mysampledirectory')
Отправка файла
## Upload a file
multithread.ADLUploader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Скачивание файла
## Download a file
multithread.ADLDownloader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt.out', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Удаление каталога
## Delete a directory
adlsFileSystemClient.rm('/mysampledirectory', recursive=True)