Biblioteka klienta usługi Azure Storage Data Lake dla platformy .NET — wersja 12.13.1

Wersja serwera: 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 i 2019-02-02

Usługa Azure Data Lake oferuje wszystkie funkcje wymagane do ułatwienia deweloperom, analitykom danych i analitykom przechowywania danych o dowolnym rozmiarze, kształcie i szybkości oraz analizie wszystkich typów przetwarzania i analizy na różnych platformach i językach. Usuwa ona złożoność pozyskiwania i przechowywania wszystkich danych, jednocześnie przyspieszając pracę z usługą batch, streamingiem i interaktywną analizą.

Kod | źródłowy Pakiet (NuGet) | Dokumentacja referencyjna interfejsu | API Dokumentacja interfejsu | API REST Dokumentacja produktu

Wprowadzenie

Instalowanie pakietu

Zainstaluj bibliotekę klienta usługi Azure Storage Files Data Lake dla platformy .NET przy użyciu narzędzia NuGet:

dotnet add package Azure.Storage.Files.DataLake

Wymagania wstępne

Do korzystania z tego pakietu potrzebna jest subskrypcja platformy Azure i konto magazynu .

Aby utworzyć nowe konto magazynu, możesz użyć witryny Azure Portal, Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Oto przykład użycia interfejsu wiersza polecenia platformy Azure:

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

Kluczowe pojęcia

Usługa DataLake Storage Gen2 została zaprojektowana w celu:

  • Obsługa wielu petabajtów informacji przy jednoczesnym utrzymaniu setek gigabitów przepływności
  • Umożliwia łatwe zarządzanie ogromnymi ilościami danych

Najważniejsze funkcje usługi DataLake Storage Gen2 obejmują:

  • Dostęp zgodny z usługą Hadoop
  • Nadzbiór uprawnień POSIX
  • Opłacalne pod względem pojemności i transakcji magazynu o niskich kosztach
  • Zoptymalizowany sterownik do analizy danych big data

Podstawową częścią Data Lake Storage Gen2 jest dodanie hierarchicznej przestrzeni nazw do usługi Blob Storage. Hierarchiczna przestrzeń nazw porządkuje obiekty/pliki w hierarchię katalogów w celu wydajnego dostępu do danych.

W przeszłości analiza oparta na chmurze musiała naruszyć bezpieczeństwo w obszarach wydajności, zarządzania i zabezpieczeń. Data Lake Storage Gen2 odnosi się do każdego z tych aspektów w następujący sposób:

  • Wydajność jest zoptymalizowana, ponieważ nie trzeba kopiować ani przekształcać danych jako wymagań wstępnych do analizy. Hierarchiczna przestrzeń nazw znacznie poprawia wydajność operacji zarządzania katalogami, co zwiększa ogólną wydajność zadań.
  • Zarządzanie jest łatwiejsze, ponieważ można organizować i manipulować plikami za pomocą katalogów i podkatalogów.
  • Zabezpieczenia można wymusić, ponieważ można zdefiniować uprawnienia POSIX w katalogach lub pojedynczych plikach.
  • Efektywność kosztów jest możliwa, ponieważ Data Lake Storage Gen2 jest oparta na taniej usłudze Azure Blob Storage. Dodatkowe funkcje jeszcze bardziej obniżają całkowity koszt posiadania na potrzeby uruchamiania analizy danych big data na platformie Azure.

Data Lake Storage Gen2 oferuje dwa typy zasobów:

  • System plików używany za pośrednictwem elementu "DataLakeFileSystemClient"
  • Ścieżka używana za pośrednictwem elementu "DataLakeFileClient" lub "DataLakeDirectoryClient"
ADLS Gen2 Obiekt blob
Filesystem Kontener
Ścieżka (plik lub katalog) Obiekt blob

Uwaga: ta biblioteka klienta nie obsługuje hierarchicznych kont magazynu wyłączonych przestrzeni nazw (HNS).

Bezpieczeństwo wątkowe

Gwarantujemy, że wszystkie metody wystąpienia klienta są bezpieczne wątkowo i niezależne od siebie (wytyczne). Dzięki temu zalecenie ponownego instalowania wystąpień klienta jest zawsze bezpieczne, nawet w wątkach.

Dodatkowe pojęcia

Opcje | klienta Uzyskiwanie dostępu do odpowiedzi | Długotrwałe operacje | Obsługa błędów | Diagnostyka | Szyderczy | Okres istnienia klienta

Przykłady

Tworzenie elementu DataLakeServiceClient

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

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

Tworzenie elementu 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();

Tworzenie elementu 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();

Tworzenie elementu DataLakeFileClient

Tworzenie obiektu DataLakeFileClient na podstawie elementu 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();

Tworzenie obiektu DataLakeFileClient na podstawie elementu 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();

Dołączanie danych do pliku 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);

Odczytywanie danych z pliku DataLake

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

Wyświetlanie listy/przechodzenie przez system plików DataLake

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

Ustawianie uprawnień w pliku 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);

Ustawianie kontroli dostępu (ACL) w pliku 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);

Pobieranie kontroli dostępu (ACL) w pliku DataLake

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

Zmienianie nazwy pliku DataLake

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

Zmienianie nazwy katalogu DataLake

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

Pobieranie właściwości w pliku DataLake

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

Pobieranie właściwości w katalogu DataLake

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

Rozwiązywanie problemów

Wszystkie operacje usługi File DataLake będą zgłaszać błąd RequestFailedException z pomocną ErrorCodepozycją s. Wiele z tych błędów można odzyskać.

Następne kroki

Wprowadzenie do naszych przykładów usługi DataLake:

  1. Hello world: dołączanie, odczytywanie i wyświetlanie listy plików DataLake (lub asynchronicznie)
  2. Uwierzytelnianie: Uwierzytelnianie przy użyciu dostępu publicznego, kluczy udostępnionych, sygnatur dostępu współdzielonego i usługi Azure Active Directory.

Współtworzenie

Zobacz CONTRIBUTING.md Storage, aby uzyskać szczegółowe informacje na temat kompilowania, testowania i współtworzenia tej biblioteki.

W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę cla.microsoft.com.

W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com dodatkowymi pytaniami lub komentarzami.

Wrażenia