Bibliothèque cliente Azure Storage Files Data Lake pour .NET - version 12.17.0

Version du serveur : 2021-02-12, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12, 2020-04-08, 2020-02-10, 2019-12-12, 2019-07-07 et 2019-02-02

Azure Data Lake (ADL) inclut toutes les fonctionnalités permettant aux développeurs, chercheurs et analystes de données de stocker des données, quels que soient leur taille, leur forme ou leur débit, et d’effectuer tous types de traitements et d’analyses sur différentes plateformes et dans différents langages. Il élimine les complexités liées à l’ingestion et au stockage de l’ensemble de vos données, tout en accélérant la mise en service avec le traitement par lot, la diffusion en continu et l’analytique interactive.

| Code sourcePackage (NuGet) | Documentation de référence sur les | APIDocumentation | sur l’API RESTDocumentation produit

Prise en main

Installer le package

Installez la bibliothèque cliente Azure Storage Files Data Lake pour .NET avec NuGet :

dotnet add package Azure.Storage.Files.DataLake

Prérequis

Vous avez besoin d’un abonnement Azure et d’un compte de stockage pour utiliser ce package.

Pour créer un compte de stockage, vous pouvez utiliser le portail Azure, Azure PowerShell ou Azure CLI. Voici un exemple utilisant Azure CLI :

az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS

Concepts clés

DataLake Storage Gen2 a été conçu pour :

  • Traiter plusieurs pétaoctets d’informations tout en conservant des centaines de gigabits de débit
  • Vous permettre de gérer facilement d’énormes quantités de données

Les principales fonctionnalités de DataLake Storage Gen2 sont les suivantes :

  • Accès compatible Hadoop
  • Sur-ensemble d’autorisations POSIX
  • Rentable en termes de capacité de stockage et de transactions à faible coût
  • Pilote optimisé pour l’analytique Big Data

Une caractéristique fondamentale de Data Lake Storage Gen2 est l’ajout d’un espace de noms hiérarchique au stockage Blob. L’espace de noms hiérarchique organise les objets/fichiers dans une hiérarchie de répertoires pour offrir un accès efficace aux données.

Dans le passé, l’analytique cloud devait trouver le meilleur compromis entre les performances, la gestion et la sécurité. Data Lake Storage Gen2 traite chacun de ces aspects de plusieurs manières :

  • Les performances sont optimisées, car vous n’avez pas besoin de copier ou transformer les données avant l’analyse. L’espace de noms hiérarchique améliore considérablement les performances des opérations de gestion de répertoires, et donc les performances générale du travail.
  • La gestion est plus facile, car vous pouvez organiser et manipuler les fichiers dans des répertoires et des sous-répertoires.
  • La sécurité est applicable, car vous pouvez définir des autorisations POSIX sur des répertoires ou des fichiers spécifiques.
  • La rentabilité est réelle, car Data Lake Storage Gen2 repose sur le Stockage Blob Azure dont le coût est faible. Les fonctionnalités supplémentaires réduisent encore le coût total de possession de l’analytique du Big Data sur Azure.

Data Lake Storage Gen2 propose deux types de ressources :

  • Système de fichiers utilisé via « DataLakeFileSystemClient »
  • Chemin d’accès utilisé via « DataLakeFileClient » ou « DataLakeDirectoryClient »
ADLS Gen2 Objet blob
FileSystem Conteneur
Chemin d’accès (fichier ou répertoire) Objet blob

Remarque : Cette bibliothèque cliente ne prend pas en charge les comptes de stockage HNS (espace de noms hiérarchiques) désactivés.

Sécurité des threads

Nous garantissons que toutes les méthodes de instance client sont sécurisées pour les threads et indépendantes les unes des autres (recommandations). Cela garantit que la recommandation de réutilisation des instances clientes est toujours sécurisée, même entre les threads.

Concepts supplémentaires

Options clientes | Accès à la réponse | Opérations de longue durée | Gestion des défaillances | Diagnostics | Moqueur | Durée de vie du client

Exemples

Créer un DataLakeServiceClient

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

// Create DataLakeServiceClient using StorageSharedKeyCredentials
DataLakeServiceClient serviceClient = new DataLakeServiceClient(serviceUri, sharedKeyCredential);

Créer un DataLakeFileSystemClient

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

// Create DataLakeServiceClient using StorageSharedKeyCredentials
DataLakeServiceClient serviceClient = new DataLakeServiceClient(serviceUri, sharedKeyCredential);

// Create a DataLake Filesystem
DataLakeFileSystemClient filesystem = serviceClient.GetFileSystemClient("sample-filesystem");
filesystem.Create();

Créer un DataLakeDirectoryClient

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

// Create DataLakeServiceClient using StorageSharedKeyCredentials
DataLakeServiceClient serviceClient = new DataLakeServiceClient(serviceUri, sharedKeyCredential);

// Get a reference to a filesystem named "sample-filesystem-append" and then create it
DataLakeFileSystemClient filesystem = serviceClient.GetFileSystemClient("sample-filesystem-append");
filesystem.Create();

// Create
DataLakeDirectoryClient directory = filesystem.GetDirectoryClient("sample-file");
directory.Create();

Créer un DataLakeFileClient

Créer DataLakeFileClient à partir d’un DataLakeDirectoryClient

// Create a DataLake Directory
DataLakeDirectoryClient directory = filesystem.CreateDirectory("sample-directory");
directory.Create();

// Create a DataLake File using a DataLake Directory
DataLakeFileClient file = directory.GetFileClient("sample-file");
file.Create();

Créer DataLakeFileClient à partir d’un DataLakeFileSystemClient

// Create a DataLake Filesystem
DataLakeFileSystemClient filesystem = serviceClient.GetFileSystemClient("sample-filesystem");
filesystem.Create();

// Create a DataLake file using a DataLake Filesystem
DataLakeFileClient file = filesystem.GetFileClient("sample-file");
file.Create();

Ajout de données à un fichier DataLake

// Create a file
DataLakeFileClient file = filesystem.GetFileClient("sample-file");
file.Create();

// Append data to the DataLake File
file.Append(File.OpenRead(sampleFilePath), 0);
file.Flush(SampleFileContent.Length);

Lecture de données à partir d’un fichier DataLake

Response<FileDownloadInfo> fileContents = file.Read();

Référencement/traversée via un système de fichiers DataLake

foreach (PathItem pathItem in filesystem.GetPaths())
{
    names.Add(pathItem.Name);
}

Définir des autorisations sur un fichier DataLake

// Create a DataLake file so we can set the Access Controls on the files
DataLakeFileClient fileClient = filesystem.GetFileClient("sample-file");
fileClient.Create();

// Set the Permissions of the file
PathPermissions pathPermissions = PathPermissions.ParseSymbolicPermissions("rwxrwxrwx");
fileClient.SetPermissions(permissions: pathPermissions);

Définir des contrôles d’accès (ACL) sur un fichier DataLake

// Create a DataLake file so we can set the Access Controls on the files
DataLakeFileClient fileClient = filesystem.GetFileClient("sample-file");
fileClient.Create();

// Set Access Control List
IList<PathAccessControlItem> accessControlList
    = PathAccessControlExtensions.ParseAccessControlList("user::rwx,group::r--,mask::rwx,other::---");
fileClient.SetAccessControlList(accessControlList);

Obtenir des contrôles d’accès (ACL) sur un fichier DataLake

// Get Access Control List
PathAccessControl accessControlResponse = fileClient.GetAccessControl();

Renommer un fichier DataLake

DataLakeFileClient renamedFileClient = fileClient.Rename("sample-file2");

Renommer un répertoire DataLake

DataLakeDirectoryClient renamedDirectoryClient = directoryClient.Rename("sample-directory2");

Obtenir des propriétés sur un fichier DataLake

// Get Properties on a File
PathProperties filePathProperties = fileClient.GetProperties();

Obtenir des propriétés sur un répertoire DataLake

// Get Properties on a Directory
PathProperties directoryPathProperties = directoryClient.GetProperties();

Dépannage

Toutes les opérations du service File DataLake lèvent une exception RequestFailedException en cas d’échec avec des s utilesErrorCode. La plupart de ces erreurs peuvent être récupérées.

Étapes suivantes

Prise en main de nos exemples DataLake :

  1. Hello World : ajouter, lire et répertorier des fichiers DataLake (ou de manière asynchrone)
  2. Authentification : authez-vous avec un accès public, des clés partagées, des signatures d’accès partagé et Azure Active Directory.

Contribution

Pour plus d’informations sur la création, le test et la contribution à cette bibliothèque, consultez le CONTRIBUTING.md stockage .

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, consultez cla.microsoft.com.

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.

Impressions