Delen via


Azure Storage Files Data Lake-clientbibliotheek voor .NET - versie 12.13.1

Serverversie: 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-07 en 2019-02-02

Azure Data Lake bevat alle mogelijkheden die nodig zijn om het eenvoudig te maken voor ontwikkelaars, gegevenswetenschappers en analisten om gegevens van elke grootte, vorm en snelheid op te slaan, en om alle soorten verwerking en analyse uit te voeren op verschillende platforms en talen. Het verwijdert de complexiteit van het opnemen en opslaan van al uw gegevens en maakt het sneller om aan de slag te gaan met batch-, streaming- en interactieve analyses.

Broncode | Pakket (NuGet) | API-referentiedocumentatie | REST API-documentatie | Productdocumentatie

Aan de slag

Het pakket installeren

Installeer de Azure Storage Files Data Lake-clientbibliotheek voor .NET met NuGet:

dotnet add package Azure.Storage.Files.DataLake

Vereisten

U hebt een Azure-abonnement en een opslagaccount nodig om dit pakket te kunnen gebruiken.

Als u een nieuw opslagaccount wilt maken, kunt u azure portal, Azure PowerShell of de Azure CLI gebruiken. Hier volgt een voorbeeld met behulp van de Azure CLI:

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

Belangrijkste concepten

DataLake Storage Gen2 is ontworpen voor het volgende:

  • Meerdere petabytes aan gegevens onderhouden met honderden gigabits doorvoer
  • Hiermee kunt u eenvoudig enorme hoeveelheden gegevens beheren

Belangrijke functies van DataLake Storage Gen2 zijn onder andere:

  • Hadoop-compatibele toegang
  • Een superset van POSIX-machtigingen
  • Rendabel in termen van goedkope opslagcapaciteit en transacties
  • Geoptimaliseerd stuurprogramma voor big data-analyse

De toevoeging van een hiërarchische naamruimte aan Blob Storage vormt een fundamenteel onderdeel van Data Lake Storage Gen2. Met de hiërarchische naamruimte worden objecten/bestanden georganiseerd in een hiërarchie met mappen voor efficiënte toegang tot de gegevens.

In het verleden moesten cloudgebaseerde analyses inbreuk maken op het gebied van prestaties, beheer en beveiliging. Data Lake Storage Gen2 behandelt elk van deze aspecten op de volgende manieren:

  • De prestaties worden geoptimaliseerd omdat u geen gegevens hoeft te kopiëren of transformeren als voorwaarde voor analyse. De hiërarchische naamruimte verbetert de prestaties van directorybeheerbewerkingen aanzienlijk, waardoor de algehele taakprestaties worden verbeterd.
  • Het beheer is eenvoudiger omdat u bestanden kunt ordenen en bewerken met behulp van mappen en submappen.
  • De beveiliging is afdwingbaar omdat u POSIX-machtigingen kunt definiëren voor structuren of afzonderlijke bestanden.
  • Kosteneffectiviteit wordt mogelijk gemaakt omdat Data Lake Storage Gen2 is gebouwd op de goedkope Azure Blob-opslag. De extra functies verlagen de totale beheerkosten voor het uitvoeren van big data-analyses in Azure nog verder.

Data Lake Storage Gen2 biedt twee soorten resources:

  • Het bestandssysteem dat wordt gebruikt via 'DataLakeFileSystemClient'
  • Het pad dat wordt gebruikt via 'DataLakeFileClient' of 'DataLakeDirectoryClient'
ADLS Gen2 Blob
Bestandssysteem Container
Pad (bestand of map) Blob

Opmerking: deze clientbibliotheek biedt geen ondersteuning voor HNS-opslagaccounts (Hierarchical NameSpace).

Veiligheid van schroefdraad

We garanderen dat alle clientexemplaarmethoden thread-veilig en onafhankelijk van elkaar zijn (richtlijn). Dit zorgt ervoor dat de aanbeveling om clientexemplaren opnieuw te gebruiken altijd veilig is, zelfs voor alle threads.

Aanvullende concepten

Clientopties | Toegang tot het antwoord | Langlopende bewerkingen | Afhandeling van fouten | Diagnostics | Spottende | Clientlevensduur

Voorbeelden

Een DataLakeServiceClient maken

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

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

Een DataLakeFileSystemClient maken

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

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

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

Een DataLakeDirectoryClient maken

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(Randomize("sample-filesystem-append"));
filesystem.Create();

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

Een DataLakeFileClient maken

DataLakeFileClient maken van een DataLakeDirectoryClient

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

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

DataLakeFileClient maken van een DataLakeFileSystemClient

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

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

Gegevens toevoegen aan een DataLake-bestand

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

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

Gegevens lezen uit een DataLake-bestand

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

Een DataLake-bestandssysteem weergeven/doorkruisen

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

Machtigingen instellen voor een DataLake-bestand

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

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

Toegangsbeheer (ACL's) instellen voor een DataLake-bestand

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

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

Toegangsbeheer (ACL's) ophalen voor een DataLake-bestand

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

De naam van een DataLake-bestand wijzigen

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

De naam van een DataLake-map wijzigen

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

Eigenschappen ophalen voor een DataLake-bestand

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

Eigenschappen ophalen voor een DataLake-map

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

Problemen oplossen

Alle file DataLake-servicebewerkingen genereren een RequestFailedException bij een fout met nuttige ErrorCodes. Veel van deze fouten kunnen worden hersteld.

Volgende stappen

Aan de slag met onze DataLake-voorbeelden:

  1. Hallo wereld: DataLake-bestanden toevoegen, lezen en vermelden (of asynchroon)
  2. Verificatie: verifieer met openbare toegang, gedeelde sleutels, handtekeningen voor gedeelde toegang en Azure Active Directory.

Bijdragen

Zie de Storage CONTRIBUTING.md voor meer informatie over het bouwen, testen en bijdragen aan deze bibliotheek.

Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar cla.microsoft.com voor meer informatie.

Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Zie voor meer informatie de veelgestelde vragen over de gedragscode of neem contact op opencode@microsoft.com met eventuele aanvullende vragen of opmerkingen.

Weergaven