Biblioteca de cliente do Data Lake dos Ficheiros de Armazenamento do Azure para .NET – versão 12.13.1

Versão do Servidor: 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

O Azure Data Lake inclui todas as capacidades necessárias para facilitar aos programadores, cientistas de dados e analistas armazenar dados de qualquer tamanho, forma e velocidade e realizar todos os tipos de processamento e análise entre plataformas e idiomas. Remove as complexidades de ingerir e armazenar todos os seus dados, tornando-os mais rápidos para começar a trabalhar com lotes, transmissões em fluxo e análises interativas.

Código fonte | Pacote (NuGet) | Documentação | de referência da API Documentação | da API RESTDocumentação do produto

Introdução

Instalar o pacote

Instale a biblioteca de cliente do Data Lake dos Ficheiros de Armazenamento do Azure para .NET com NuGet:

dotnet add package Azure.Storage.Files.DataLake

Pré-requisitos

Precisa de uma subscrição do Azure e de uma Conta de Armazenamento para utilizar este pacote.

Para criar uma nova Conta de Armazenamento, pode utilizar o Portal do Azure, Azure PowerShell ou a CLI do Azure. Eis um exemplo com a CLI do Azure:

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

Conceitos-chave

O DataLake Storage Gen2 foi concebido para:

  • Service multiple petabytes of information while sustaining hundreds of gigabits of débito
  • Permitir-lhe gerir facilmente grandes quantidades de dados

As principais funcionalidades do DataLake Storage Gen2 incluem:

  • Acesso compatível com o Hadoop
  • Um superconjunto de permissões POSIX
  • Rentável em termos de capacidade de armazenamento e transações de baixo custo
  • Controlador otimizado para análise de macrodados

Uma parte fundamental do Data Lake Storage Gen2 é a adição de um espaço de nomes hierárquico ao armazenamento de Blobs. O espaço de nomes hierárquico organiza objetos/ficheiros numa hierarquia de diretórios para um acesso de dados eficiente.

No passado, a análise baseada na cloud teve de comprometer-se em áreas de desempenho, gestão e segurança. Data Lake Storage Gen2 aborda cada um destes aspetos das seguintes formas:

  • O desempenho está otimizado porque não precisa de copiar ou transformar dados como um pré-requisito para análise. O espaço de nomes hierárquico melhora significativamente o desempenho das operações de gestão de diretórios, o que melhora o desempenho geral da tarefa.
  • A gestão é mais fácil porque pode organizar e manipular ficheiros através de diretórios e subdiretórios.
  • A segurança é executável porque pode definir permissões POSIX em diretórios ou ficheiros individuais.
  • A relação custo-eficácia é possível, uma vez que Data Lake Storage Gen2 é criada com base no armazenamento de Blobs do Azure de baixo custo. As funcionalidades adicionais reduzem ainda mais o custo total de propriedade para executar a análise de macrodados no Azure.

Data Lake Storage Gen2 oferece dois tipos de recursos:

  • O sistema de ficheiros utilizado através de "DataLakeFileSystemClient"
  • O caminho utilizado através de "DataLakeFileClient" ou "DataLakeDirectoryClient"
ADLS Gen2 Blob
Filesystem Contentor
Caminho (Ficheiro ou Diretório) Blob

Nota: esta biblioteca de cliente não suporta contas de armazenamento desativadas do espaço de nomes hierárquico (HNS).

Segurança de threads

Garantimos que todos os métodos de instância de cliente são seguros para threads e independentes uns dos outros (orientação). Isto garante que a recomendação de reutilização de instâncias de cliente é sempre segura, mesmo entre threads.

Conceitos adicionais

Opções de | cliente Aceder à resposta | Operações de execução prolongada | Lidar com falhas | Diagnósticos | A gozar | Duração do cliente

Exemplos

Criar um DataLakeServiceClient

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

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

Criar um 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();

Criar um 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();

Criar um DataLakeFileClient

Criar DataLakeFileClient a partir de um 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();

Criar DataLakeFileClient a partir de um 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();

Anexar Dados a um Ficheiro 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);

Ler Dados de um Ficheiro DataLake

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

Listing/Traversing through a DataLake Filesystem

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

Definir Permissões num Ficheiro 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);

Definir Controlos de Acesso (ACLs) num Ficheiro 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);

Obter Controlos de Acesso (ACLs) num Ficheiro DataLake

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

Mudar o nome de um Ficheiro DataLake

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

Mudar o nome de um Diretório DataLake

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

Obter Propriedades num Ficheiro DataLake

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

Obter Propriedades num Diretório DataLake

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

Resolução de problemas

Todas as operações do serviço File DataLake irão lançar um RequestFailedException sobre a falha com s útilErrorCode. Muitos destes erros são recuperáveis.

Passos seguintes

Introdução aos nossos exemplos do DataLake:

  1. Hello World: Acrescentar, Ler e Listar Ficheiros do DataLake (ou de forma assíncrona)
  2. Autenticação: autenticar com acesso público, chaves partilhadas, assinaturas de acesso partilhado e Azure Active Directory.

Contribuir

Veja o CONTRIBUTING.md de Armazenamento para obter detalhes sobre como criar, testar e contribuir para esta biblioteca.

Agradecemos todas as contribuições e sugestões para este projeto. A maioria das contribuições requerem que celebre um Contrato de Licença de Contribuição (CLA) no qual se declare que tem o direito de conceder e que, na verdade, concede-nos os direitos para utilizar a sua contribuição. Para obter detalhes, visite cla.microsoft.com.

Este projeto adotou o Microsoft Open Source Code of Conduct (Código de Conduta do Microsoft Open Source). Para obter mais informações, consulte as FAQ do Código de Conduta ou o contacto opencode@microsoft.com com quaisquer perguntas ou comentários adicionais.

Impressões