Biblioteca de clientes do Data Lake dos Arquivos de Armazenamento do Azure para .NET – versão 12.17.0

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 todos os recursos necessários para que seja mais fácil para desenvolvedores, cientistas de dados e analistas armazenar dados de qualquer tamanho, forma ou velocidade, bem como realizar todo tipo de processamento e análise em diferentes plataformas e linguagens. Ele remove as complexidades de ingerir e armazenar todos os seus dados, ao mesmo tempo que acelera a execução de análises interativas, em lote e de streaming.

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

Introdução

Instalar o pacote

Instale a biblioteca de clientes do Data Lake dos Arquivos de Armazenamento do Azure para .NET com o NuGet:

dotnet add package Azure.Storage.Files.DataLake

Pré-requisitos

Você precisa de uma assinatura do Azure e uma Conta de Armazenamento para usar esse pacote.

Para criar uma nova Conta de Armazenamento, você pode usar o Portal do Azure, Azure PowerShell ou a CLI do Azure. Aqui, está um exemplo usando a CLI do Azure:

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

Principais conceitos

O DataLake Storage Gen2 foi projetado para:

  • Serviço vários petabytes de informações enquanto sustenta centenas de gigabits de taxa de transferência
  • Permitir que você gerencie facilmente grandes quantidades de dados

Os principais recursos do DataLake Storage Gen2 incluem:

  • Acesso compatível com Hadoop
  • Um superconjunto de permissões POSIX
  • Econômico em termos de capacidade de armazenamento de baixo custo e transações
  • Driver otimizado para análise de Big Data

Uma parte fundamental do Data Lake Storage Gen2 é a adição de um namespace hierárquico para armazenamento de Blobs. O namespace hierárquico organiza objetos/arquivos em uma hierarquia de diretórios para acesso eficiente a dados.

No passado, a análise baseada na nuvem tinha que se comprometer em áreas de desempenho, gerenciamento e segurança. O Data Lake Storage Gen2 aborda cada um desses aspectos das seguintes maneiras:

  • O desempenho é otimizado porque você não precisa copiar ou transformar dados como um pré-requisito para análise. O namespace hierárquico melhora muito o desempenho das operações de gerenciamento de diretório, o que melhora o desempenho geral do trabalho.
  • Gerenciamento é mais fácil porque você pode organizar e manipular arquivos por meio de diretórios e subdiretórios.
  • Segurança é aplicável porque você pode definir as permissões POSIX em arquivos individuais ou diretórios.
  • A efetividade de custo é possível porque o Data Lake Storage Gen2 é construído sobre o armazenamento de Blob do Azure de baixo custo . Os recursos adicionais reduzem ainda mais o custo total de propriedade para executar a análise de big data no Azure.

Data Lake Storage Gen2 oferece dois tipos de recursos:

  • O sistema de arquivos usado por meio de 'DataLakeFileSystemClient'
  • O caminho usado por meio de 'DataLakeFileClient' ou 'DataLakeDirectoryClient'
ADLS Gen2 Blob
Sistema de arquivos Contêiner
Caminho (Arquivo ou Diretório) Blob

Observação: essa biblioteca de clientes não dá suporte a contas de armazenamento desabilitadas de namespace hierárquico (HNS).

Acesso thread-safe

Garantimos que todos os métodos de instância do cliente sejam thread-safe e independentes uns dos outros (diretriz). Isso garante que a recomendação de reutilize instâncias de cliente seja sempre segura, mesmo entre threads.

Conceitos adicionais

Opções | do clienteAcessando a resposta | Operações de execução prolongada | Tratamento de falhas | Diagnostics | Zombando | Tempo de vida 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("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("sample-filesystem-append");
filesystem.Create();

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

Criar um DataLakeFileClient

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

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

Anexando dados a um arquivo 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);

Lendo dados de um arquivo DataLake

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

Listagem/passagem por um sistema de arquivos DataLake

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

Definir permissões em um arquivo 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);

Definir ACLs (controles de acesso) em um arquivo 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);

Obter ACLs (controles de acesso) em um arquivo DataLake

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

Renomear um arquivo DataLake

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

Renomear um Diretório DataLake

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

Obter propriedades em um arquivo DataLake

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

Obter propriedades em um diretório DataLake

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

Solução de problemas

Todas as operações de serviço File DataLake lançarão uma RequestFailedException em caso de falha com s úteisErrorCode. Muitos desses erros são recuperáveis.

Próximas etapas

Introdução aos nossos exemplos do DataLake:

  1. Olá, Mundo: acrescentar, ler e listar arquivos DataLake (ou de forma assíncrona)
  2. Autenticação: autentique-se com acesso público, chaves compartilhadas, assinaturas de acesso compartilhado e Azure Active Directory.

Participante

Consulte a CONTRIBUTING.md de Armazenamento para obter detalhes sobre como criar, testar e contribuir para essa biblioteca.

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite cla.microsoft.com.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.

Impressões