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ą ErrorCode
pozycją s. Wiele z tych błędów można odzyskać.
Następne kroki
Wprowadzenie do naszych przykładów usługi DataLake:
- Hello world: dołączanie, odczytywanie i wyświetlanie listy plików DataLake (lub asynchronicznie)
- 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.