Actualización de Azure Blob Storage con funcionalidades de Azure Data Lake Storage Gen2
Este artículo le ayuda a habilitar un espacio de nombres jerárquico y a desbloquear funcionalidades como la seguridad de nivel de archivo y de directorio y operaciones más rápidas. Estas funcionalidades se usan ampliamente en las cargas de trabajo de análisis de macrodatos y se conocen colectivamente como Azure Data Lake Storage Gen2. Las funcionalidades más populares incluyen:
Mayor rendimiento, operaciones de entrada y salida por segundo (IOPS) y límites de capacidad de almacenamiento.
Operaciones más rápidas (como las operaciones de cambio de nombre), ya que puede operar en URI de nodo individuales.
Motor de consultas eficaz que transfiere solo los datos necesarios para realizar una operación determinada.
Seguridad en el nivel de contenedor, directorio y archivo.
Para obtener más información sobre estas funcionalidades, consulte Introducción a Azure Data Lake Storage Gen2.
Este artículo le ayuda a evaluar el impacto en las cargas de trabajo, las aplicaciones, los costos, las integraciones de servicios, las herramientas, las características y la documentación. Asegúrese de revisar estos impactos cuidadosamente. Cuando esté listo para actualizar una cuenta, consulte esta guía paso a paso: Actualización de Azure Blob Storage con funcionalidades de Azure Data Lake Storage Gen2.
Importante
Tenga en cuenta que una actualización es unidireccional. No hay manera de revertir la cuenta una vez que haya realizado la actualización. Se recomienda validar la actualización en un entorno que no sea de producción.
Impacto en la disponibilidad
Asegúrese de planear algún tiempo de inactividad en la cuenta mientras se completa el proceso de actualización. Las operaciones de escritura estarán deshabilitadas mientras se actualiza la cuenta. Las operaciones de lectura no están deshabilitadas, pero se recomienda encarecidamente suspender las operaciones de lectura, ya que estas podrían desestabilizar el proceso de actualización.
Impacto en las cargas de trabajo y aplicaciones
Las API de blobs funcionan con cuentas que tienen un espacio de nombres jerárquico, por lo que la mayoría de las aplicaciones que interactúan con su cuenta mediante estas API siguen funcionando sin modificaciones.
Para obtener una lista completa de los problemas y las soluciones alternativas, consulte Problemas conocidos con las API de Blob Storage.
Las cargas de trabajo de Hadoop que usan el controlador de Azure Storage Blob de Windows (WASB) deben modificarse para usar el controlador de Azure Blob File System (ABFS). A diferencia del controlador WASB que realiza solicitudes al punto de conexión de Blob service, el controlador ABFS realizará solicitudes al punto de conexión de Data Lake Storage de la cuenta.
Punto de conexión de Data Lake Storage
La cuenta actualizada tendrá un punto de conexión de almacenamiento de Data Lake. Puede encontrar la dirección URL de este punto de conexión en Azure Portal si abre la página Propiedades de su cuenta.
No tiene que modificar las aplicaciones y cargas de trabajo existentes para usar ese punto de conexión. El acceso multiprotocolo en Data Lake Storage le permite usar el punto de conexión de Blob service o el de Data Lake Storage para interactuar con los datos.
Los servicios y herramientas de Azure (como AzCopy) pueden usar el punto de conexión de Data Lake Storage para interactuar con los datos de la cuenta de almacenamiento. Asimismo, deberá usar este nuevo punto de conexión para las operaciones que realice mediante los SDK de Data Lake Storage Gen2, los comandos de PowerShell o los comandos de la CLI de Azure.
Directorios
Una cuenta de Blob Storage que no tiene un espacio de nombres jerárquico organiza los archivos en un paradigma plano, en lugar de un paradigma jerárquico. Asimismo, los blobs se pueden organizar en directorios virtuales para imitar una estructura de carpetas. Un directorio virtual forma parte del nombre del blob y se indica mediante el carácter delimitador. Dado que un directorio virtual forma parte del nombre del blob, no existe realmente como un objeto independiente.
La nueva cuenta tiene un espacio de nombres jerárquico. Esto significa que los directorios no son virtuales. Son objetos concretos e independientes sobre los que puede trabajar directamente. Un directorio puede existir sin contener ningún archivo. Al eliminar un directorio, se quitan todos los archivos de ese directorio. Por lo tanto, ya no tiene que eliminar cada blob individual antes de que el directorio desaparezca.
Metadatos de blob
Antes de realizar la migración, los metadatos del blob se asocian con el nombre del blob junto con toda la ruta de acceso virtual. Después de la migración, los metadatos solo se asocian al blob. La ruta de acceso virtual al blob se convierte en una colección de directorios. Así pues, los metadatos de un blob no se aplican a ninguno de esos directorios.
Operaciones PUT
Al cargar un blob y la ruta de acceso que especifique incluya un directorio que no existe, la operación crea ese directorio y, a continuación, le agrega un blob. Este comportamiento es lógico en el contexto de una estructura jerárquica de carpetas. En una cuenta de Blob Storage que no tiene un espacio de nombres jerárquico, la operación no crea un directorio. En su lugar, el nombre del directorio se agrega al espacio de nombres del blob.
Mostrar operaciones
Una operación de tipo Enumerar blobs devuelve directorios y archivos. Cada uno se enumera por separado. Por lo tanto, los directorios aparecen en la lista como blobs de longitud cero. En una cuenta de Blob Storage que no tiene un espacio de nombres jerárquico, una operación Enumerar blobs devuelve solo blobs y no directorios. Si usa la operación Ruta de acceso: lista de Data Lake Storage Gen2, los directorios aparecerán como entradas de directorio y no como blobs de longitud cero.
El orden de la lista también es diferente. Los directorios y archivos aparecen según el orden de búsqueda de equilibrio de carga en profundidad. Una cuenta de Blob Storage que no tiene un espacio de nombres jerárquico enumera los blobs en orden lexicográfico.
Operaciones para cambiar el nombre de blobs
Cambiar el nombre de un blob es mucho más eficaz porque las aplicaciones cliente pueden cambiar el nombre de un blob en una sola operación. En las cuentas que no tienen un espacio de nombres jerárquico, las herramientas y las aplicaciones tienen que copiar un blob y, a continuación, eliminar el blob de origen.
Nota:
Al cambiar el nombre de un blob, no se actualiza la hora de la última modificación del blob. Esto se debe a que el contenido del blob no ha cambiado.
Impacto en los costos
No hay ningún costo para realizar la actualización. Después de actualizar, el costo de almacenar los datos no cambia, pero el costo de una transacción sí. Use estas páginas para evaluar los costos de comparación.
También puede usar la opción de Cuentas de almacenamiento en la Calculadora de precios de Azure para calcular el impacto de los costos después de una actualización.
Además de los cambios en los precios, tenga en cuenta el ahorro de costos asociado a las funcionalidades de Data Lake Storage Gen2. Normalmente, el costo total de la propiedad disminuye debido a un mayor rendimiento y a las operaciones optimizadas. Asimismo, un mayor rendimiento permite transferir más datos en menos tiempo. Un espacio de nombres jerárquico mejora la eficacia de las operaciones.
Impacto en las integraciones de servicios
Aunque la mayoría de las integraciones de servicios de Azure seguirán funcionando después de habilitar estas funcionalidades, algunas de ellas permanecen en versión preliminar o aún no se admiten. Consulte los servicios de Azure que admiten Azure Data Lake Storage Gen2 para comprender la compatibilidad actual con las integraciones de servicios de Azure con Data Lake Storage Gen2.
Impacto en herramientas, características y documentación
Después de realizar la actualización, cambiará la forma en que estos elementos interactúan con algunas características. En esta sección se describen esos cambios.
Compatibilidad de las características de Blob Storage
Aunque la mayoría de las características de Blob Storage seguirá funcionando después de habilitar estas funcionalidades, algunas de ellas permanecen en versión preliminar o aún no se admiten.
Consulte Características de Blob Storage disponibles en Azure Data Lake Storage Gen2 para comprender la compatibilidad actual con las características de Blob Storage con Data Lake Storage Gen2.
Registros de diagnóstico
Si habilita el registro de análisis de Storage, ahora tiene la opción de usar la versión 2.0 del formato de registro.
No tiene que usar esta nueva versión. Sin embargo, las operaciones que se aplican al punto de conexión de Data Lake Storage solo se registran en los registros de la versión 2.0. Algunos servicios y herramientas que use (como AzCopy) usarán ese punto de conexión para realizar operaciones en su cuenta. Para asegurarse de capturar la información de registro de todas las actividades, considere la posibilidad de usar la versión 2.0 del formato de registro.
Administración del ciclo de vida de Azure
Explica eficazmente que las directivas para mover o eliminar todos los blobs de un directorio no eliminarán el propio directorio hasta que se quiten todos los blobs dentro de él y el directorio se quitará el día siguiente.
Event Grid
La nueva cuenta tiene dos puntos de conexión: el punto de conexión de Data Lake y el punto de conexión de Blob service. Los servicios, las herramientas y las aplicaciones pueden usar cualquier punto de conexión para operar en los datos. Como resultado, una respuesta de evento que devuelve Event Grid puede mostrar cualquiera de estos dos puntos de conexión en el campo url que describe el blob afectado.
El siguiente JSON muestra la dirección URL de un blob que aparece en la respuesta del evento cuando se crea un blob mediante el punto de conexión de Blob service.
{
"topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/test-container/blobs/new-file.txt",
"eventType": "Microsoft.Storage.BlobCreated",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "PutBlockList",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"eTag": "\"0x8D4BCC2E4835CD0\"",
"contentType": "text/plain",
"contentLength": 524288,
"blobType": "BlockBlob",
"url": "https://my-storage-account.blob.core.windows.net/testcontainer/new-file.txt",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "",
"metadataVersion": "1"
}
El siguiente JSON muestra la dirección URL de un blob que aparece en la respuesta del evento cuando se crea un blob mediante el punto de conexión de Data Lake Storage.
{
"topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/new-file.txt",
"eventType": "Microsoft.Storage.BlobCreated",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "CreateFile",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"eTag": "\"0x8D4BCC2E4835CD0\"",
"contentType": "text/plain",
"contentLength": 0,
"contentOffset": 0,
"blobType": "BlockBlob",
"url": "https://my-storage-account.dfs.core.windows.net/my-file-system/new-file.txt",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "2",
"metadataVersion": "1"
}
Si las aplicaciones usan Event Grid, es posible que tenga que modificar esas aplicaciones para tener esto en cuenta.
Explorador de Storage
Los botones siguientes aún no aparecen en la barra de herramientas del Explorador de Azure Storage:
Botón | Motivo |
---|---|
Copiar la dirección URL | Todavía no se implementó |
Administración de instantáneas | Todavía no se implementó |
Deshacer eliminación | Depende de las características de Blob Storage que aún no se admiten con Data Lake Storage Gen2. |
Los botones siguientes se comportan de forma diferente en la nueva cuenta.
Botón | Comportamiento de Blob Storage | Comportamiento de Data Lake Storage Gen2 |
---|---|---|
Carpeta | La carpeta es virtual y desaparece si no se le agregan archivos. | La carpeta existe incluso sin archivos agregados a ella. |
Cambiar nombre | Da como resultado una copia y, a continuación, una eliminación del blob de origen | Cambia el nombre del mismo blob. Es mucho más eficaz. |
Documentación
Puede encontrar instrucciones para usar las funcionalidades de Data Lake Storage Gen2 aquí: Introducción a Azure Data Lake Storage Gen2.
No ha cambiado nada con respecto a dónde se encuentran las instrucciones para todas las características existentes de Blob Storage. Encontrará la guía aquí: Introducción a Azure Blob Storage.
A medida que se mueve entre conjuntos de contenido, observará algunas pequeñas diferencias de terminología. Por ejemplo, el contenido destacado en el contenido de Data Lake Storage Gen2 podría usar los términos archivo y sistema de archivos y en lugar de blob y contenedor. Los términos archivo y sistema de archivos están profundamente arraigados en el mundo del análisis de macrodatos, donde Data Lake Storage tiene un largo historial. El contenido alberga estos términos para que sigan relacionados con estas audiencias. Estos términos no describen cosas independientes.
Pasos siguientes
Cuando esté listo para actualizar la cuenta de almacenamiento para incluir funcionalidades de Data Lake Storage Gen2, consulte esta guía paso a paso.