Клиентская библиотека Data Lake службы хранилища Azure для .NET версии 12.13.1

Версия сервера: 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 и 2019-02-02

Azure Data Lake предоставляет разработчикам, специалистам по обработке данных и аналитикам возможности, которые позволяют быстро сохранять данные независимо от объема, формы и скорости, а также выполнять их обработку и анализ на разных платформах и языках. Azure Data Lake упрощает получение и хранение всех ваших данных, одновременно ускоряя работу пакетной, потоковой и интерактивной аналитики.

Исходный код | Пакет (NuGet) | Справочная документация по | API Документация по | REST API Документация по продукту

Начало работы

Установка пакета

Установите клиентную библиотеку Data Lake службы хранилища Azure для .NET с помощью NuGet:

dotnet add package Azure.Storage.Files.DataLake

Предварительные требования

Для использования этого пакета вам потребуется подписка Azure и учетная запись хранения .

Чтобы создать учетную запись хранения, можно использовать портал Azure, Azure PowerShell или Azure CLI. Ниже приведен пример с использованием Azure CLI:

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

Основные понятия

Хранилище DataLake 2-го поколения предназначено для:

  • Обслуживание нескольких петабайтов информации с поддержкой сотен гигабит пропускной способности
  • Позволяет легко управлять большими объемами данных

Основные функции DataLake Storage 2-го поколения:

  • Доступ, совместимый с Hadoop
  • Надмножество разрешений POSIX
  • Экономичность с точки зрения недорогой емкости хранилища и транзакций
  • Оптимизированный драйвер для аналитики больших данных

Основная часть Data Lake Storage 2-го поколения — это добавление иерархического пространства имен в хранилище BLOB-объектов. Иерархическое пространство имен позволяет упорядочивать объекты и файлы в иерархии каталогов для эффективного доступа к данным.

Раньше облачная аналитика влияла на производительность, возможности управления и безопасность. В Data Lake Storage Gen2 все эти проблемы устранены:

  • Производительность оптимизирована, так как больше не нужно копировать или передавать данные, чтобы проанализировать их. Иерархическое пространство имен значительно ускоряет выполнение операций управления каталогом, что повышает общую производительность задания.
  • Управление стало проще, так как вы можете упорядочивать файлы в каталогах и подкаталогах и так с ними работать.
  • Безопасность соблюдается неукоснительно, поскольку можно определить разрешения POSIX для каталогов или отдельных файлов.
  • Экономичность достигается за счет того, что хранилище Data Lake Storage Gen2 создано на основе недорогого хранилища BLOB-объектов Azure. Дополнительные функции еще более снижают совокупную стоимость владения при выполнении аналитики больших данных в Azure.

Data Lake Storage 2-го поколения предлагает два типа ресурсов:

  • Файловая система, используемая через "DataLakeFileSystemClient"
  • Путь, используемый через "DataLakeFileClient" или "DataLakeDirectoryClient"
ADLS 2-го поколения BLOB-объект
Файловая система Контейнер
Путь (файл или каталог) BLOB-объект

Примечание. Эта клиентская библиотека не поддерживает отключенные учетные записи хранения в иерархическом пространстве имен (HNS).

Потокобезопасность

Мы гарантируем, что все методы экземпляра клиента являются потокобезопасны и независимы друг от друга (руководство). Это гарантирует, что рекомендации по повторному использованию экземпляров клиента всегда будут безопасными, даже в разных потоках.

Дополнительные понятия

Параметры | клиента Доступ к ответу | Длительные операции | Обработка сбоев | Диагностики | Насмешливый | Время существования клиента

Примеры

Создание DataLakeServiceClient

StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);

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

Создание 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();

Создание 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();

Создание DataLakeFileClient

Создание DataLakeFileClient из 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();

Создание DataLakeFileClient из 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();

Добавление данных в файл 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);

Чтение данных из файла DataLake

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

Перечисление или обход файловой системы DataLake

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

Настройка разрешений для файла 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);

Настройка элементов управления доступом (ACL) в файле 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);

Получение элементов управления доступом (ACL) в файле DataLake

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

Переименование файла DataLake

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

Переименование каталога DataLake

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

Получение свойств для файла DataLake

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

Получение свойств в каталоге DataLake

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

Устранение неполадок

Все операции службы File DataLake будут вызывать исключение RequestFailedException при сбое с полезнымиErrorCode s. Многие из этих ошибок можно исправить.

Дальнейшие действия

Начало работы с примерами DataLake:

  1. Hello World: добавление, чтение и перечисление файлов DataLake (или асинхронно)
  2. Проверка подлинности. Проверка подлинности с помощью открытого доступа, общих ключей, подписанных URL-адресов и Azure Active Directory.

Участие

Дополнительные сведения о создании, тестировании и участии в этой библиотеке см. в CONTRIBUTING.md хранилища.

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Дополнительные сведения см . на странице cla.microsoft.com.

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.

Просмотры