Biblioteca cliente de Data Lake de Azure Storage Files para .NET: versión 12.17.0
Versión del 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 y 2019-02-02
Azure Data Lake incluye todas las funcionalidades necesarias para facilitar a los desarrolladores, científicos de datos y analistas el almacenamiento de datos de cualquier tamaño, forma y velocidad, y realizar todos los tipos de procesamiento y análisis entre plataformas y lenguajes. Quita las complejidades de ingesta y almacenamiento de todos los datos acelerando al mismo tiempo la puesta en marcha y ejecución con análisis de lotes, streaming e interactivos.
Código | fuentePaquete (NuGet) | Documentación | de referencia de APIDocumentación | de la API RESTDocumentación del producto
Introducción
Instalar el paquete
Instale la biblioteca cliente de Data Lake de Azure Storage Files para .NET con NuGet:
dotnet add package Azure.Storage.Files.DataLake
Requisitos previos
Necesita una suscripción de Azure y una cuenta de almacenamiento para usar este paquete.
Para crear una cuenta de almacenamiento, puede usar Azure Portal, Azure PowerShell o la CLI de Azure. A continuación se facilita un ejemplo mediante el uso de la CLI de Azure:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Conceptos clave
DataLake Storage Gen2 se diseñó para:
- Servicio de varios petabytes de información al tiempo que mantiene cientos de gigabits de rendimiento
- Le permite administrar fácilmente grandes cantidades de datos.
Entre las características clave de DataLake Storage Gen2 se incluyen:
- Acceso compatible con Hadoop
- Superconjunto de permisos POSIX
- Rentable en términos de capacidad de almacenamiento y transacciones de bajo costo
- Controlador optimizado para el análisis de macrodatos
Parte fundamental de Data Lake Storage Gen2 es la incorporación de un espacio de nombres jerárquico en Blob Storage. El espacio de nombres jerárquico organiza los objetos o archivos en una jerarquía de directorios para un acceso eficaz a los datos.
Anteriormente, los análisis basados en la nube tenían que llegar a un acuerdo en materia de rendimiento, administración y seguridad. Data Lake Storage Gen2 aborda cada uno de estos aspectos de las siguientes formas:
- El rendimiento se optimiza porque no es necesario copiar ni transformar datos como requisito previo para el análisis. El espacio de nombres jerárquico mejora considerablemente el rendimiento de las operaciones de administración de directorios y, consecuentemente, el rendimiento general del trabajo.
- La administración es más fácil, ya que puede organizar y manipular archivos a través de directorios y subdirectorios.
- La seguridad se aplicable porque se pueden definir permisos POSIX en los directorios o archivos individuales.
- La rentabilidad se hace posible gracias a que Data Lake Storage Gen2 se ha diseñado a partir de Azure Blob Storage de bajo costo. Las características adicionales reducen aún más el costo total de propiedad para la ejecución de análisis de macrodatos en Azure.
Data Lake Storage Gen2 ofrece dos tipos de recursos:
- El sistema de archivos usado a través de "DataLakeFileSystemClient"
- La ruta de acceso usada a través de "DataLakeFileClient" o "DataLakeDirectoryClient"
ADLS Gen2 | Blob |
---|---|
Sistema de archivos | Contenedor |
Ruta de acceso (archivo o directorio) | Blob |
Nota: Esta biblioteca cliente no admite cuentas de almacenamiento deshabilitadas del espacio de nombres jerárquico (HNS).
Seguridad para subprocesos
Garantizamos que todos los métodos de instancia de cliente sean seguros para subprocesos e independientes entre sí (guía). Esto garantiza que la recomendación de reutilizar instancias de cliente siempre es segura, incluso entre subprocesos.
Conceptos adicionales
Opciones | de clienteAcceso a la respuesta | Operaciones | de larga duraciónControl de errores | Diagnóstico | Burla | Duración del cliente
Ejemplos
Creación de un objeto DataLakeServiceClient
StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(storageAccountName, storageAccountKey);
// Create DataLakeServiceClient using StorageSharedKeyCredentials
DataLakeServiceClient serviceClient = new DataLakeServiceClient(serviceUri, sharedKeyCredential);
Creación de un 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();
Creación de un 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();
Creación de un dataLakeFileClient
Creación de DataLakeFileClient desde 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();
Creación de DataLakeFileClient desde 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();
Anexar datos a un archivo 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);
Leer datos de un archivo DataLake
Response<FileDownloadInfo> fileContents = file.Read();
Enumeración o recorrido a través de un sistema de archivos de DataLake
foreach (PathItem pathItem in filesystem.GetPaths())
{
names.Add(pathItem.Name);
}
Establecer permisos en un archivo 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);
Establecer controles de acceso (ACL) en un archivo 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);
Obtener controles de acceso (ACL) en un archivo DataLake
// Get Access Control List
PathAccessControl accessControlResponse = fileClient.GetAccessControl();
Cambiar el nombre de un archivo DataLake
DataLakeFileClient renamedFileClient = fileClient.Rename("sample-file2");
Cambiar el nombre de un directorio de DataLake
DataLakeDirectoryClient renamedDirectoryClient = directoryClient.Rename("sample-directory2");
Obtener propiedades en un archivo DataLake
// Get Properties on a File
PathProperties filePathProperties = fileClient.GetProperties();
Obtener propiedades en un directorio DataLake
// Get Properties on a Directory
PathProperties directoryPathProperties = directoryClient.GetProperties();
Solución de problemas
Todas las operaciones del servicio File DataLake producirán una excepción RequestFailedException en caso de error con s útilesErrorCode
. Muchos de estos errores son recuperables.
Pasos siguientes
Introducción a nuestros ejemplos de DataLake:
- Hola mundo: Anexar, leer y enumerar archivos dataLake (o de forma asincrónica)
- Autenticación: autenticación con acceso público, claves compartidas, firmas de acceso compartido y Azure Active Directory.
Contribuciones
Consulte storage CONTRIBUTING.md para obtener más información sobre la compilación, las pruebas y la contribución a esta biblioteca.
Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más información, visite cla.microsoft.com.
Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.