Bibliothèque cliente du service Azure DataLake pour Python - version 12.14.0
Vue d’ensemble
Ce package de préversion pour Python inclut la prise en charge de l’API spécifique à ADLS Gen2 mise à disposition dans le Kit de développement logiciel (SDK) Stockage. notamment :
- Nouvelles opérations au niveau du répertoire (Créer, Renommer, Supprimer) pour le compte de stockage HNS (Espace de noms hiérarchique). Pour les comptes HNS activés, les opérations de renommage/déplacement sont atomiques.
- Opérations liées aux autorisations (Get/Set ACL) pour les comptes HNS (Espace de noms hiérarchiques activés).
| Code sourcePackage (PyPi) | Package (Conda) | Documentation de référence sur les | API | Documentation produitÉchantillons
Prise en main
Prérequis
- Python 3.7 ou version ultérieure est requis pour utiliser ce package. Pour plus d’informations, consultez notre page sur la stratégie de prise en charge des versions du Kit de développement logiciel (SDK) Azure pour Python.
- Vous devez disposer d’un abonnement Azure et d’un compte de stockage Azure pour utiliser ce package.
Installer le package
Installez la bibliothèque cliente Stockage Azure DataLake pour Python avec pip :
pip install azure-storage-file-datalake --pre
Créez un compte de stockage.
Si vous souhaitez créer un compte de stockage, vous pouvez utiliser le portail Azure, Azure PowerShell ou Azure CLI :
# Create a new resource group to hold the storage account -
# if using an existing resource group, skip this step
az group create --name my-resource-group --location westus2
# Install the extension 'Storage-Preview'
az extension add --name storage-preview
# Create the storage account
az storage account create --name my-storage-account-name --resource-group my-resource-group --sku Standard_LRS --kind StorageV2 --hierarchical-namespace true
Authentifier le client
L’interaction avec DataLake Storage commence par un instance de la classe DataLakeServiceClient. Vous avez besoin d’un compte de stockage existant, de son URL et d’informations d’identification pour instancier l’objet client.
Récupérer les informations d’identification
Pour authentifier le client, vous disposez de quelques options :
- Utiliser une chaîne de jeton SAS
- Utiliser une clé d’accès partagé de compte
- Utiliser des informations d’identification de jeton à partir d’azure.identity
Vous pouvez également vous authentifier auprès d’un chaîne de connexion de stockage à l’aide de la from_connection_string
méthode . Voir l’exemple : Création de client avec un chaîne de connexion.
Vous pouvez omettre les informations d’identification si l’URL de votre compte a déjà un jeton SAP.
Créer un client
Une fois l’URL et les informations d’identification de votre compte prêtes, vous pouvez créer le DataLakeServiceClient :
from azure.storage.filedatalake import DataLakeServiceClient
service = DataLakeServiceClient(account_url="https://<my-storage-account-name>.dfs.core.windows.net/", credential=credential)
Concepts clés
Le stockage DataLake offre quatre types de ressources :
- Le compte de stockage
- Un système de fichiers dans le compte de stockage
- Répertoire sous le système de fichiers
- Un fichier dans un système de fichiers ou sous le répertoire
Clients asynchrones
Cette bibliothèque inclut une API asynchrone complète prise en charge sur Python 3.5+. Pour l’utiliser, vous devez d’abord installer un transport asynchrone, tel que aiohttp. Pour plus d’informations, consultez la documentation azure-core .
Les clients et les informations d’identification asynchrones doivent être fermés lorsqu’ils ne sont plus nécessaires. Ces objets sont des gestionnaires de contexte asynchrones et définissent des méthodes asynchrones close
.
Clients
Le Kit de développement logiciel (SDK) DataLake Storage fournit quatre clients différents pour interagir avec le service DataLake :
- DataLakeServiceClient : ce client interagit avec le service DataLake au niveau du compte.
Il fournit des opérations pour récupérer et configurer les propriétés du compte, ainsi que répertorier, créer et supprimer des systèmes de fichiers au sein du compte.
Pour les opérations relatives à un système de fichiers, un répertoire ou un fichier spécifique, les clients de ces entités peuvent également être récupérés à l’aide des
get_file_client
fonctions ouget_directory_client
get_file_system_client
. - FileSystemClient : ce client représente l’interaction avec un système de fichiers spécifique, même si ce système de fichiers n’existe pas encore. Il fournit des opérations pour créer, supprimer ou configurer des systèmes de fichiers et inclut des opérations de liste des chemins d’accès sous le système de fichiers, de chargement et de suppression de fichier ou de répertoire dans le système de fichiers.
Pour les opérations relatives à un fichier spécifique, le client peut également être récupéré à l’aide de la
get_file_client
fonction . Pour les opérations relatives à un répertoire spécifique, le client peut être récupéré à l’aide de laget_directory_client
fonction . - DataLakeDirectoryClient : ce client représente l’interaction avec un répertoire spécifique, même si ce répertoire n’existe pas encore. Il fournit des opérations de création, de suppression, de renommage, d’obtention de propriétés et d’opérations de définition des propriétés.
- DataLakeFileClient : ce client représente l’interaction avec un fichier spécifique, même si ce fichier n’existe pas encore. Il fournit des opérations de fichier pour ajouter des données, vider des données, supprimer, créer et lire un fichier.
- DataLakeLeaseClient : ce client représente les interactions de bail avec un FileSystemClient, DataLakeDirectoryClient ou DataLakeFileClient. Il fournit des opérations d’acquisition, de renouvellement, de libération, de modification et d’interruption des baux sur les ressources.
Exemples
Les sections suivantes fournissent plusieurs extraits de code couvrant certaines des tâches les plus courantes de Stockage DataLake, notamment :
- Création de client avec un chaîne de connexion
- Téléchargement d’un fichier
- Téléchargement d’un fichier
- Énumération des chemins d’accès
Création de client avec un chaîne de connexion
Créez dataLakeServiceClient à l’aide de la chaîne de connexion à votre compte Stockage Azure.
from azure.storage.filedatalake import DataLakeServiceClient
service = DataLakeServiceClient.from_connection_string(conn_str="my_connection_string")
Téléchargement d’un fichier
Chargez un fichier dans votre système de fichiers.
from azure.storage.filedatalake import DataLakeFileClient
data = b"abc"
file = DataLakeFileClient.from_connection_string("my_connection_string",
file_system_name="myfilesystem", file_path="myfile")
file.create_file ()
file.append_data(data, offset=0, length=len(data))
file.flush_data(len(data))
Téléchargement d’un fichier
Téléchargez un fichier à partir de votre système de fichiers.
from azure.storage.filedatalake import DataLakeFileClient
file = DataLakeFileClient.from_connection_string("my_connection_string",
file_system_name="myfilesystem", file_path="myfile")
with open("./BlockDestination.txt", "wb") as my_file:
download = file.download_file()
download.readinto(my_file)
Énumération des chemins d’accès
Répertoriez les chemins d’accès dans votre système de fichiers.
from azure.storage.filedatalake import FileSystemClient
file_system = FileSystemClient.from_connection_string("my_connection_string", file_system_name="myfilesystem")
paths = file_system.get_paths()
for path in paths:
print(path.name + '\n')
Configuration facultative
Facultatif mot clé arguments qui peuvent être transmis au niveau du client et par opération.
Configuration de la stratégie de nouvelle tentative
Utilisez les arguments mot clé suivants lors de l’instanciation d’un client pour configurer la stratégie de nouvelle tentative :
- retry_total (int) : nombre total de nouvelles tentatives à autoriser. Est prioritaire sur d’autres nombres.
Transmettez
retry_total=0
si vous ne souhaitez pas réessayer sur les demandes. La valeur par défaut est 10. - retry_connect (int) : nombre d’erreurs liées à la connexion à retenter. La valeur par défaut est 3.
- retry_read (int) : nombre de nouvelles tentatives en cas d’erreurs de lecture. La valeur par défaut est 3.
- retry_status (int) : nombre de nouvelles tentatives sur des codes de status incorrects. La valeur par défaut est 3.
- retry_to_secondary (bool) : indique si la demande doit être retentée au niveau secondaire, si possible.
Cela ne doit être activé que si les comptes RA-GRS sont utilisés et que les données potentiellement obsolètes peuvent être gérées.
La valeur par défaut est
False
.
Autre configuration client/ par opération
D’autres configurations facultatives mot clé arguments qui peuvent être spécifiés sur le client ou par opération.
Arguments de mot clé client :
- connection_timeout (int) : nombre de secondes pendant lesquelles le client attend pour établir une connexion au serveur. La valeur par défaut est de 20 secondes.
- read_timeout (int) : nombre de secondes pendant lesquelles le client attend une réponse du serveur entre les opérations de lecture consécutives. Il s’agit d’un délai d’attente au niveau du socket qui n’est pas affecté par la taille globale des données. Les délais de lecture côté client sont automatiquement retentés. La valeur par défaut est de 60 secondes.
- transport (Any) : transport fourni par l’utilisateur pour envoyer la requête HTTP.
Arguments de mot clé par opération :
- raw_response_hook (appelable) : le rappel donné utilise la réponse retournée par le service.
- raw_request_hook (appelable) : le rappel donné utilise la requête avant d’être envoyé au service.
- client_request_id (str) : identification facultative spécifiée par l’utilisateur de la demande.
- user_agent (str) : ajoute la valeur personnalisée à l’en-tête user-agent à envoyer avec la demande.
- logging_enable (bool) : active la journalisation au niveau DEBUG. Valeur par défaut False. Peut également être transmis au niveau du client pour l’activer pour toutes les demandes.
- logging_body (bool) : active la journalisation du corps de la requête et de la réponse. Valeur par défaut False. Peut également être transmis au niveau du client pour l’activer pour toutes les demandes.
- en-têtes (dict) : passez des en-têtes personnalisés en tant que paires de clés et de valeurs. Par exemple,
headers={'CustomValue': value}
Dépannage
Général
Les clients DataLake Storage déclenchent des exceptions définies dans Azure Core.
Cette liste peut être utilisée à des fins de référence pour intercepter les exceptions levées. Pour obtenir le code d’erreur spécifique de l’exception, utilisez l’attribut error_code
, exception.error_code
c’est-à-dire .
Journalisation
Cette bibliothèque utilise la bibliothèque de journalisation standard pour la journalisation. Les informations de base sur les sessions HTTP (URL, en-têtes, etc.) sont enregistrées au niveau INFO.
La journalisation détaillée au niveau DEBUG, y compris les corps de requête/réponse et les en-têtes non expurgés, peut être activée sur un client avec l’argument logging_enable
:
import sys
import logging
from azure.storage.filedatalake import DataLakeServiceClient
# Create a logger for the 'azure.storage.filedatalake' SDK
logger = logging.getLogger('azure.storage')
logger.setLevel(logging.DEBUG)
# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)
# This client will log detailed information about its HTTP sessions, at DEBUG level
service_client = DataLakeServiceClient.from_connection_string("your_connection_string", logging_enable=True)
De la même façon, logging_enable
peut activer la journalisation détaillée pour une seule opération, même quand elle n’est pas activée pour le client :
service_client.list_file_systems(logging_enable=True)
Étapes suivantes
Autres exemples de code
Bien démarrer avec nos exemples Azure DataLake.
Plusieurs exemples de kit de développement logiciel (SDK) Python DataLake Storage sont disponibles dans le référentiel GitHub du SDK. Ces exemples fournissent un exemple de code pour d’autres scénarios couramment rencontrés lors de l’utilisation de DataLake Storage :
datalake_samples_access_control.py
- Exemples de tâches de stockage DataLake courantes :- Configurer un système de fichiers
- Créer un répertoire
- Définir/Obtenir le contrôle d’accès pour le répertoire
- Créer des fichiers sous le répertoire
- Définir/obtenir le contrôle d’accès pour chaque fichier
- Supprimer un système de fichiers
datalake_samples_upload_download.py
- Exemples de tâches de stockage DataLake courantes :- Configurer un système de fichiers
- Créer un fichier
- Ajouter des données au fichier
- Vider les données dans le fichier
- Télécharger les données chargées
- Supprimer un système de fichiers
Documentation complémentaire
Table pour le mappage des API ADLS Gen1 vers ADLS Gen2 Pour obtenir une documentation REST plus complète sur Data Lake Storage Gen2, consultez la documentation Data Lake Storage Gen2 sur docs.microsoft.com.
Contribution
Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.
Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.
Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.
Azure SDK for Python