Espacio de nombres jerárquico

El espacio de nombres jerárquico es una función que ofrece Cloud Storage y que te permite organizar objetos en carpetas y almacenar tus datos en una estructura lógica de sistema de archivos, lo que facilita la optimización de las tareas de administración de datos. El espacio de nombres jerárquico proporciona la semántica de directorio de alto rendimiento y las operaciones de carpetas atómicas que se requieren para acelerar las cargas de trabajo de IA/AA y Analytics con uso intensivo de datos.

En esta página, se proporciona una descripción general del espacio de nombres jerárquico y sus casos de uso, incluidas sus capacidades, beneficios y limitaciones.

Cómo funciona

Para usar carpetas en un bucket, debes habilitar el espacio de nombres jerárquico cuando crees el bucket. No podrás cambiar la configuración del espacio de nombres jerárquico del bucket después de crearlo. Para obtener información sobre cómo habilitar el espacio de nombres jerárquico para tu bucket, consulta Crea y administra buckets con el espacio de nombres jerárquico habilitado.

En el siguiente diagrama, se muestra un ejemplo de un bucket con el espacio de nombres jerárquico habilitado en el que los objetos se organizan en una estructura jerárquica de carpetas. Una carpeta en un bucket con espacio de nombres jerárquico habilitado puede contener objetos y carpetas secundarias.

Figura 1. Jerarquía de buckets con carpetas y objetos
Figura 1. Jerarquía de buckets con carpetas y objetos

Funciones y beneficios

El espacio de nombres jerárquico proporciona las siguientes funciones y beneficios:

  • Consultas por segundo (QPS) iniciales más altas: Los buckets con espacio de nombres jerárquico habilitado ofrecen límites de QPS iniciales hasta 8 veces más altos para leer y escribir objetos en comparación con los buckets sin espacios de nombres jerárquicos habilitados. Las QPS iniciales más altas hacen que sea más fácil escalar cargas de trabajo con una gran cantidad de datos y proporcionan una capacidad de procesamiento mejorada. Para obtener información sobre los métodos de optimización del rendimiento mientras usas carpetas en buckets con espacio de nombres jerárquico habilitado, consulta Administración de carpetas.

  • Capacidad para usar carpetas: Las carpetas sirven como contenedores para objetos y carpetas secundarias, lo que permite una estructura de directorio real dentro de los buckets de Cloud Storage. Almacenar tus datos en una estructura de carpetas mejora el rendimiento, garantiza la coherencia y simplifica la administración de cargas de trabajo que consumen muchos datos y orientadas a archivos.

    Las operaciones de carpetas brindan confiabilidad y capacidades de administración, como crear, enumerar, borrar y cambiar el nombre de forma atómica.

    • Cambia el nombre de las carpetas: La operación para cambiar el nombre de las carpetas te ayuda a cambiar de forma atómica el nombre de la ruta de acceso de una carpeta y sus carpetas subyacentes sin borrar ningún objeto. Esta técnica es eficiente y te ahorra tiempo, especialmente para las carpetas grandes con varios objetos.

    • Enumera carpetas: La operación para enumerar carpetas enumera todas las carpetas en el bucket o en una carpeta específica, lo que te ayudará a administrar y comprender la estructura de los datos almacenados.

¿Cuándo deberías usar el espacio de nombres jerárquico?

Considera habilitar el espacio de nombres jerárquico cuando trabajes con aplicaciones que esperan una jerarquía y semántica de sistema de archivos. El espacio de nombres jerárquico es beneficioso para tareas con grandes volúmenes de datos, como analítica y cargas de trabajo de IA/AA. Estos son algunos casos comunes en los que deberías considerar usar el espacio de nombres jerárquico:

  • Procesamiento basado en Hadoop: Las cargas de trabajo de Hadoop y Spark tradicionalmente esperan una estructura de almacenamiento de sistema de archivos y una asignación de nombres basada en el tiempo para archivos y carpetas. El espacio de nombres jerárquico se integra en el conector de Cloud Storage para proporcionar una capacidad de procesamiento mejorada y cambios de nombre de carpetas atómicos, lo que mejora la coherencia y la integridad de los datos para muchas canalizaciones de procesamiento de datos.

  • Procesamiento de cargas de trabajo orientadas a archivos: Las cargas de trabajo como el procesamiento de análisis por lotes, los servicios financieros o la computación de alto rendimiento se estructuran en particiones según una jerarquía de carpetas y archivos. El espacio de nombres jerárquico ayuda a administrar estos entornos con una API dedicada para la administración de carpetas. Además, el espacio de nombres jerárquico simplifica la administración de carpetas que contienen otras carpetas y objetos. Con un solo comando de API, puedes renombrar rápidamente una carpeta junto con todo su contenido y, así, ahorrar tiempo y recursos valiosos.

  • Procesamiento de IA/AA: Las herramientas de IA/AA, como TensorFlow, Pandas y PyTorch, esperan semántica y control de acceso de sistema de archivos. El espacio de nombres jerárquico, en especial cuando se combina con Cloud Storage FUSE, proporciona mayor capacidad de procesamiento y acceso eficiente a los datos. Como resultado, el espacio de nombres jerárquico mejora el rendimiento y la confiabilidad de la iteración del modelo de AA.

Antes de habilitar el espacio de nombres jerárquico para tu bucket, debes considerar las limitaciones del espacio de nombres jerárquico. Para obtener información sobre las limitaciones de espacios de nombres jerárquicos, consulta Limitaciones.

Beneficios del espacio de nombres jerárquico

Cuando habilitas el espacio de nombres jerárquico para tus buckets, puedes realizar lo siguiente:

  • Optimizar la organización: Puedes organizar los datos en una estructura de carpeta jerárquica, que te ayuda a administrar y ubicar archivos o conjuntos de datos.

  • Establecer un ecosistema de sistema de archivos: El espacio de nombres jerárquico presenta funciones de sistema de archivos, como carpetas, cambio de nombre de carpetas y enumeración de carpetas, que son beneficiosas para aplicaciones orientadas a archivos, incluidos el ecosistema de Hadoop y las cargas de trabajo de IA/AA.

  • Mejora del rendimiento: escalando las cargas de trabajo que consumen muchos datos para manejar una capacidad de procesamiento más grande, puedes mejorar el rendimiento general de tu aplicación.

Plataformas compatibles

Los buckets con espacios de nombres jerárquicos admiten las siguientes capacidades de la plataforma de Cloud Storage:

  • Todas las APIs de objetos de Cloud Storage y las funciones de Cloud Storage que más se usan. Para obtener detalles sobre las funciones no compatibles, consulta Limitaciones.

  • Transferencia de datos de un bucket estándar a un bucket con espacio de nombres jerárquico mediante el Servicio de transferencia de almacenamiento.

  • Integración con los siguientes productos:

Compatibilidad con las operaciones y funciones de Cloud Storage

Los buckets con el espacio de nombres jerárquico habilitado interactúan con las operaciones de Cloud Storage de manera diferente que los buckets sin el espacio de nombres jerárquico.

Interacciones con operaciones de objetos

Los buckets con el espacio de nombres jerárquico habilitado controlan las operaciones de objetos de las siguientes maneras:

  • Las operaciones como Upload, Rewrite y Compose crean automáticamente las carpetas superiores faltantes, siempre que tengas los permisos necesarios. Como resultado, no necesitas crear previamente carpetas antes de subir objetos.
  • Si bien las carpetas se pueden crear automáticamente durante las operaciones de objetos, debes borrarlas de forma explícita con la DeleteFolder operación.
  • Cuando se usa la operación ListObjects con el parámetro delimiter, los buckets muestran cada carpeta secundaria como un prefix. Sin embargo, las carpetas vacías se excluyen de forma predeterminada. Para incluir carpetas vacías, de manera similar a una lista de sistema de archivos típica, debes configurar el parámetro includeFoldersAsPrefixes. Para obtener información sobre los métodos de optimización del rendimiento mientras enumeras objetos en buckets con espacio de nombres jerárquico habilitado, consulta Enumera objetos.

Interacciones con operaciones de bucket

En las siguientes secciones, se describe cómo se controlan las operaciones de bucket cuando se habilita el espacio de nombres jerárquico.

  • Puedes enumerar todos los buckets con el espacio de nombres jerárquico habilitado, sin importar su diseño de almacenamiento. El diseño de almacenamiento de un bucket describe cómo se organizan los objetos dentro de un bucket, ya sea en un espacio de nombres plano o en un espacio de nombres jerárquico. Para obtener instrucciones sobre cómo ver el diseño de almacenamiento de un bucket, consulta Obtén el diseño de almacenamiento de un bucket. Para enumerar todos los buckets, sigue las instrucciones detalladas en Enumera buckets.

  • Puedes borrar buckets con el espacio de nombres jerárquico habilitado siempre que el bucket esté vacío. Los buckets vacíos no contienen objetos ni carpetas administradas. Los buckets vacíos pueden contener carpetas vacías (sin objetos dentro).

Interacciones con operaciones de Administración del ciclo de vida de los objetos

La Administración del ciclo de vida de los objetos te permite automatizar acciones en objetos según las condiciones, como la antigüedad o el prefijo. Sin embargo, las reglas de Administración del ciclo de vida de los objetos pueden comportarse de manera diferente en los buckets con espacio de nombres jerárquico y en los buckets con un espacio de nombres plano debido a la operación RenameFolder:

Control de acceso para carpetas con carpetas administradas asociadas

En Cloud Storage, una carpeta es el directorio real que contiene tus datos, mientras que una carpeta administrada es un recurso independiente y especializado que se usa para aplicar permisos de IAM al directorio. Para controlar el acceso a una carpeta y a los recursos que contiene, crea una carpeta administrada asociada y configura políticas de IAM en la carpeta administrada asociada. Una carpeta administrada asociada es una carpeta administrada que tiene el mismo nombre y ruta de acceso que tu carpeta real.

La carpeta administrada asociada actúa como una capa administrativa sobre el directorio creado por la carpeta, lo que significa que una carpeta y su carpeta administrada asociada están vinculadas de forma inextricable. Por ejemplo, si borras una carpeta que tiene una carpeta administrada asociada, la carpeta administrada asociada también se borra junto con sus políticas de IAM. Para obtener detalles sobre cómo las operaciones de carpetas afectan a las carpetas administradas asociadas, consulta Interacciones entre carpetas y carpetas administradas asociadas.

Nombres para carpetas con carpetas administradas asociadas

Se aplican las reglas de nombres de carpetas y las reglas de nombres de carpetas administradas cuando se crean carpetas con carpetas administradas asociadas. Los nombres de carpetas se pueden anidar hasta 50 niveles de profundidad, pero los nombres de carpetas administradas solo se pueden anidar hasta 15 niveles de profundidad. El tamaño máximo para un nombre de carpeta administrada es de 512 bytes cuando se codifica en UTF-8. Esto significa que, si planeas crear una carpeta y una carpeta administrada asociada, la carpeta solo puede tener 15 carpetas secundarias apiladas, y su tamaño máximo de nombre es de 512 bytes cuando se codifica en UTF-8.

Precios

Para obtener información sobre los precios, consulta Precios de Cloud Storage.

Limitaciones

Las siguientes son las limitaciones del espacio de nombres jerárquico:

  • Debes elegir si usar o no el espacio de nombres jerárquico cuando crees el bucket. No podrás cambiar la configuración del espacio de nombres jerárquico del bucket después de crearlo.

  • Para habilitar el espacio de nombres jerárquico, un bucket también debe habilitar el acceso uniforme a nivel de bucket.

  • En los buckets con el espacio de nombres jerárquico habilitado, el tamaño máximo del nombre de un objeto es de 1,024 bytes cuando se codifica en UTF-8, en el que el segmento de nombre de carpeta y el segmento de nombre base tienen un límite de 512 bytes cuando se codifican en UTF-8. En los buckets de espacio de nombres plano, los nombres de objetos no contienen segmentos de nombres de carpetas y tienen un límite de 1,024 bytes cuando se codifican en UTF-8. Para obtener más información sobre los límites de nombres de objetos, consulta Acerca de los objetos.

  • Los nombres de carpetas se pueden anidar hasta 50 niveles de profundidad (o 15 niveles de profundidad si la carpeta tiene una carpeta administrada asociada).

  • Las siguientes capacidades de Cloud Storage no se admiten para los buckets que usan espacio de nombres jerárquico:

    • Bloqueo del bucket
    • Reubicación de buckets
    • Replicación entre bucket
    • Conservaciones de objetos
    • Listas de control de acceso (LCA) a nivel del objeto
    • Bloqueo de retención de objetos
    • Control de versiones de objetos

¿Qué sigue?