Share via


Azure Storage Files Data Lake-Clientbibliothek für .NET– Version 12.17.0

Serverversion: 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 und 2019-02-02-02

Azure Data Lake umfasst alle erforderlichen Funktionen, die Entwickler, Data Scientists und Analysten benötigen, um Daten problemlos speichern zu können – und zwar unabhängig von der Größe, vom Format und von der Geschwindigkeit der Daten. Darüber hinaus können die Daten mit Data Lake auf verschiedene Art, auf verschiedenen Plattformen und unter Verwendung verschiedener Sprachen verarbeitet und analysiert werden. Mit Data Lake gehört die Komplexität beim Erfassen und Speichern von Daten der Vergangenheit an, und mit Batch-, Streaming- und interaktiven Analysen können Sie Ihre Analysen jetzt noch schneller ausführen.

Quellcode | Paket (NuGet) | API-Referenzdokumentation | REST-API-Dokumentation | Produktdokumentation

Erste Schritte

Installieren des Pakets

Installieren Sie die Azure Storage Files Data Lake-Clientbibliothek für .NET mit NuGet:

dotnet add package Azure.Storage.Files.DataLake

Voraussetzungen

Sie benötigen ein Azure-Abonnement und ein Speicherkonto , um dieses Paket verwenden zu können.

Zum Erstellen eines neuen Speicherkontos können Sie das Azure-Portal, Azure PowerShell oder die Azure CLI verwenden. Beispiel für die Verwendung der Azure-Befehlszeilenschnittstelle:

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

Wichtige Begriffe

DataLake Storage Gen2 wurde für Folgendes konzipiert:

  • Verarbeiten von Informationen mit mehreren Petabytes bei gleichzeitiger Beibehaltung von Hunderten von Gigabit Durchsatz
  • Einfaches Verwalten großer Datenmengen

Zu den wichtigsten Features von DataLake Storage Gen2 gehören:

  • Hadoop-kompatibler Zugriff
  • Eine Obermenge von POSIX-Berechtigungen
  • Kosteneffizient in Bezug auf kostengünstige Speicherkapazität und Transaktionen
  • Optimierter Treiber für Big Data-Analysen

Ein wesentlicher Bestandteil von Data Lake Storage Gen2 ist das Hinzufügen eines hierarchischen Namespace zum Blobspeicher. Der hierarchische Namespace organisiert Objekte/Dateien in einer Hierarchie von Verzeichnissen für den effizienten Datenzugriff.

In der Vergangenheit mussten bei cloudbasierten Analysen Kompromisse in puncto Leistung, Verwaltung und Sicherheit eingegangen werden. Data Lake Storage Gen2 geht jeden dieser Aspekte auf folgende Weise an:

  • Die Leistung ist optimiert, da Sie keine Daten als Voraussetzung für die Analyse kopieren oder transformieren müssen. Der hierarchische Namespace verbessert die Leistung von Verzeichnisverwaltungsvorgängen erheblich, wodurch die gesamte Auftragsverarbeitungsleistung gesteigert wird.
  • Die Verwaltung ist einfacher, weil Sie Dateien mithilfe von Verzeichnissen und Unterverzeichnissen organisieren und bearbeiten können.
  • Die Sicherheit ist durchsetzbar, da Sie POSIX-Berechtigungen für Verzeichnisse oder einzelne Dateien definieren können.
  • Kosteneffizienz wird ermöglicht, da Data Lake Storage Gen2 auf kostengünstigem Azure Blob Storage aufsetzt. Durch diese zusätzlichen Features werden die Gesamtbetriebskosten für Big Data-Analysen in Azure weiter gesenkt.

Data Lake Storage Gen2 bietet zwei Arten von Ressourcen:

  • Das über "DataLakeFileSystemClient" verwendete Dateisystem
  • Der über "DataLakeFileClient" oder "DataLakeDirectoryClient" verwendete Pfad
ADLS Gen2 Blob
Dateisystem Container
Pfad (Datei oder Verzeichnis) Blob

Hinweis: Diese Clientbibliothek unterstützt keine deaktivierten Speicherkonten für den hierarchischen Namespace (HNS).

Threadsicherheit

Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.

Zusätzliche Konzepte

Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer

Beispiele

Erstellen eines DataLakeServiceClient

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

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

Erstellen eines 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();

Erstellen eines 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();

Erstellen eines DataLakeFileClient

Erstellen von DataLakeFileClient aus einem 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();

Erstellen von DataLakeFileClient aus einem 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();

Anfügen von Daten an eine DataLake-Datei

// 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);

Lesen von Daten aus einer DataLake-Datei

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

Auflisten/Durchlaufen eines DataLake-Dateisystems

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

Festlegen von Berechtigungen für eine DataLake-Datei

// 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);

Festlegen von Zugriffssteuerungen (ACLs) für eine DataLake-Datei

// 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);

Abrufen von Zugriffssteuerungen (ACLs) für eine DataLake-Datei

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

Umbenennen einer DataLake-Datei

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

Umbenennen eines DataLake-Verzeichnisses

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

Abrufen von Eigenschaften für eine DataLake-Datei

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

Abrufen von Eigenschaften für ein DataLake-Verzeichnis

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

Problembehandlung

Alle File DataLake-Dienstvorgänge lösen bei Fehlern eine RequestFailedException mit hilfreichenErrorCode s aus. Viele dieser Fehler können wiederhergestellt werden.

Nächste Schritte

Erste Schritte mit unseren DataLake-Beispielen:

  1. Hallo Welt: Anfügen, Lesen und Auflisten von DataLake-Dateien (oder asynchron)
  2. Authentifizierung: Authentifizieren Sie sich mit öffentlichem Zugriff, freigegebenen Schlüsseln, Shared Access Signatures und Azure Active Directory.

Mitwirken

Ausführliche Informationen zum Erstellen, Testen und Mitwirken zu dieser Bibliothek finden Sie unter Storage CONTRIBUTING.md .

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.

Aufrufe