Libreria client Data Lake di File di Archiviazione di Azure per .NET - versione 12.13.1

Versione server: 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 e 2019-02-02

Azure Data Lake include tutte le funzionalità necessarie a sviluppatori, data scientist e analisti per archiviare più facilmente dati di tutte le dimensioni, forme e velocità e svolgere qualsiasi tipo di elaborazione e analisi su più piattaforme e linguaggi. Il servizio elimina le complessità correlate all'inserimento e all'archiviazione di tutti i dati, semplificando la preparazione e l'esecuzione di analisi batch, di flussi e interattive.

Codice | sorgente Pacchetto (NuGet) | Documentazione | di riferimento sulle API Documentazione | dell'API RESTDocumentazione del prodotto

Introduzione

Installare il pacchetto

Installare la libreria client Data Lake di File di archiviazione di Azure per .NET con NuGet:

dotnet add package Azure.Storage.Files.DataLake

Prerequisiti

Per usare questo pacchetto sono necessari una sottoscrizione di Azure e un account di archiviazione .

Per creare un nuovo account di archiviazione, è possibile usare il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure. Di seguito è riportato un esempio basato sull'uso dell'interfaccia della riga di comando di Azure:

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

Concetti chiave

DataLake Storage Gen2 è stato progettato per:

  • Service multiple petabyte of information while sustaining centinaia di gigabits of throughput
  • Consente di gestire facilmente grandi quantità di dati

Le funzionalità principali di DataLake Storage Gen2 includono:

  • Accesso compatibile con Hadoop
  • Un superset di autorizzazioni POSIX
  • Conveniente in termini di capacità e transazioni di archiviazione a basso costo
  • Driver ottimizzato per l'analisi dei Big Data

Una parte fondamentale di Data Lake Storage Gen2 è l'aggiunta di uno spazio dei nomi gerarchico all'archivio BLOB. Lo spazio dei nomi gerarchico organizza gli oggetti e i file in una gerarchia di directory per un accesso ai dati efficiente.

In passato, le analisi basate sul cloud imponevano il raggiungimento di un compromesso tra prestazioni, gestione e sicurezza. Data Lake Storage Gen2 gestisce ognuno di questi aspetti nei modi seguenti:

  • Le prestazioni sono ottimizzate perché non è necessario copiare o trasformare i dati come prerequisito per l'analisi. Lo spazio dei nomi gerarchico migliora notevolmente le prestazioni delle operazioni di gestione directory, consentendo di migliorare le prestazioni complessive del processo.
  • La gestione risulta più semplice poiché è possibile organizzare e gestire i file nelle directory e sottodirectory.
  • La protezione si può applicare perché è possibile definire le autorizzazioni POSIX delle directory o dei singoli file.
  • La convenienza è resa possibile dal fatto che Data Lake Storage Gen2 è compilato sulla base dell'archiviazione Blob di Azure a basso costo. Le funzionalità aggiuntive riducono ulteriormente il costo totale di proprietà per l'esecuzione di analisi dei Big Data in Azure.

Data Lake Storage Gen2 offre due tipi di risorse:

  • File system usato tramite 'DataLakeFileSystemClient'
  • Percorso usato tramite 'DataLakeFileClient' o 'DataLakeDirectoryClient'
ADLS Gen2 BLOB
File System Contenitore
Percorso (file o directory) BLOB

Nota: questa libreria client non supporta gli account di archiviazione disabilitati dello spazio dei nomi gerarchico (HNS).

Thread safety

Microsoft garantisce che tutti i metodi di istanza client siano thread-safe e indipendenti l'uno dall'altro (linee guida). Ciò garantisce che la raccomandazione di riutilizzare le istanze client sia sempre sicura, anche tra thread.

Concetti aggiuntivi

Opzioni | client Accesso alla risposta | Operazioni | a esecuzione prolungataGestione degli errori | Diagnostica | Beffardo | Durata del client

Esempio

Creare un DataLakeServiceClient

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

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

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

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

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

Creare un DataLakeFileClient

Creare DataLakeFileClient da un 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();

Creare DataLakeFileClient da un 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();

Aggiunta di dati a un file DataLake

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

Lettura di dati da un file DataLake

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

Elenco/attraversamento attraverso un file system DataLake

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

Impostare le autorizzazioni per un file DataLake

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

Impostare i controlli di accesso (ACL) in un file DataLake

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

Ottenere controlli di accesso (ACL) in un file DataLake

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

Rinominare un file DataLake

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

Rinominare una directory DataLake

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

Ottenere proprietà in un file DataLake

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

Ottenere proprietà in una directory DataLake

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

Risoluzione dei problemi

Tutte le operazioni del servizio File DataLake genereranno un'eccezione RequestFailedException in caso di errore con s utileErrorCode. Molti di questi errori sono ripristinabili.

Passaggi successivi

Introduzione agli esempi di DataLake:

  1. Hello World: accodamento, lettura ed elenco di file DataLake (o in modo asincrono)
  2. Autenticazione: eseguire l'autenticazione con accesso pubblico, chiavi condivise, firme di accesso condiviso e Azure Active Directory.

Contributo

Per informazioni dettagliate sulla compilazione, il test e il contributo a questa libreria, vedere Archiviazione CONTRIBUTING.md .

In questo progetto sono benvenuti i contributi e i suggerimenti. Per la maggior parte dei contenuti è necessario sottoscrivere un contratto di licenza di collaborazione (CLA, Contributor License Agreement) che stabilisce che l'utente ha il diritto di concedere, e di fatto concede a Microsoft i diritti d'uso del suo contributo. Per informazioni dettagliate, visitare cla.microsoft.com.

Questo progetto ha adottato il Codice di comportamento di Microsoft per l'open source. Per altre informazioni, vedere Code of Conduct FAQ (Domande frequenti sul Codice di comportamento Open Source di Microsoft) oppure contattare opencode@microsoft.com per eventuali altre domande o commenti.

Impression