Organiza los recursos de código con carpetas

En el siguiente documento, se describe cómo funcionan las carpetas de BigQuery. Puedes usar carpetas para organizar los recursos de código en una estructura jerárquica, similar a la que usan los sistemas operativos. Por ejemplo, podrías crear una carpeta para organizar los recursos de código para el análisis de ventas, con subcarpetas para cada año fiscal. También puedes usar carpetas para administrar el acceso a los recursos de código. Las carpetas ofrecen herencia de políticas de Identity and Access Management (IAM), que puedes usar para controlar el acceso a los recursos de código de manera más eficiente. La herencia de políticas permite que las subcarpetas y los archivos hereden los permisos de su carpeta superior.

Las carpetas de BigQuery funcionan con Dataform.

Para obtener más información sobre cómo trabajar con carpetas en BigQuery, consulta Crea y administra carpetas.

Organiza los recursos de código con carpetas

Puedes acceder a tus recursos de código y organizarlos con carpetas en el panel Archivos de BigQuery Studio:

Ubicación del panel **Files** en BigQuery Studio

Una carpeta es el contenedor básico para organizar los recursos de código, de manera similar a una carpeta estándar del sistema de archivos. Puedes crear y organizar subcarpetas dentro de una carpeta principal, y puedes mover recursos de código dentro y fuera de las carpetas. Cuando otorgas permisos en una carpeta, estos se propagan a todas las carpetas y los archivos que contiene.

Solo puedes usar carpetas para organizar elementos de código de un solo archivo, como notebooks, consultas guardadas, lienzos de datos y archivos de preparación de datos.

Tipos de carpeta

BigQuery admite los siguientes tipos de carpetas:

  • Carpetas de usuario: Cada usuario tiene una carpeta raíz personal, que se muestra como Usuario (dirección de correo electrónico del usuario). Tu carpeta de usuario contiene todos los recursos de código que creas en el proyecto y la ubicación determinados. Puedes crear subcarpetas en tu carpeta de usuario para organizar estos recursos de código. Solo tú puedes acceder a los archivos y las carpetas de tu carpeta de usuario, a menos que decidas compartirlos con otros usuarios.

  • Carpetas de equipo: Las carpetas de equipo están diseñadas para la colaboración en equipo, de manera similar a una unidad compartida en Google Drive. Puedes usar carpetas de equipo para organizar los recursos de código que pertenecen a un equipo en particular. Solo los usuarios que tienen permisos de propietario en la carpeta raíz del equipo pueden otorgar permisos para que otros usuarios usen la carpeta del equipo.

Regiones de código de carpeta

Puedes tener carpetas y recursos de código en diferentes regiones de código. Por ejemplo, podrías tener folderA y los recursos de código que contiene en la región us-west1, y folderB y los recursos de código que contiene en la región us-central1. La región que estás viendo se muestra en el panel Archivos:

La región de código actual se muestra junto al nombre del proyecto en el panel **Archivos**.

Herencia de políticas de IAM

El acceso de IAM para los recursos de archivos y carpetas usa una estructura jerárquica. Esta jerarquía garantiza que las políticas de acceso se hereden de las carpetas principales a su contenido.

Cuando se establece una política de IAM en una carpeta, los permisos que otorga esa política también se aplican a todos los archivos y subcarpetas anidadas en el subárbol de la carpeta. Esto tiene las siguientes consecuencias:

  • Los permisos se heredan a través de la jerarquía de carpetas. Cuando a un usuario se le otorga un rol específico en una carpeta de nivel superior, posee los permisos incluidos en ese rol para todos los recursos contenidos en esa carpeta y sus subcarpetas.
  • Los permisos que tiene un usuario en un recurso consisten en las políticas establecidas directamente en ese recurso y todas las políticas heredadas de cada carpeta en su ruta de acceso hasta la raíz.

Como resultado, no necesitas permisos a nivel del proyecto para realizar acciones en recursos ubicados en lo profundo de una estructura de carpetas. Solo necesitas el permiso adecuado en cualquier carpeta de la ruta de acceso a ese recurso. Por ejemplo, si deseas crear un archivo en una subcarpeta, necesitas los permisos necesarios en la subcarpeta específica o en cualquiera de sus carpetas superiores, incluida la carpeta de nivel superior.

A continuación, se indican las prácticas recomendadas para aplicar políticas de IAM a archivos y carpetas:

  • Aplica políticas de IAM a la carpeta más alta de la jerarquía en la que los permisos se necesiten de manera uniforme. Por ejemplo, si un equipo necesita acceso a todos los datos del directorio de su equipo, otorga los roles necesarios a nivel de la carpeta del equipo en lugar de a nivel de las subcarpetas de proyectos individuales.
  • Siempre otorga el conjunto mínimo de permisos necesarios para que los usuarios o servicios realicen sus tareas. Evita otorgar roles amplios cuando puedas usar roles y permisos más específicos a nivel de la carpeta.

Roles de IAM otorgados en la creación de recursos

Cuando creas una carpeta, se otorgan automáticamente los siguientes roles:

  • Los usuarios que crean carpetas en su nodo raíz de usuario reciben automáticamente el rol Administrador de Dataform (roles/dataform.admin) en esas carpetas.
  • El creador de una carpeta de equipo raíz recibe automáticamente el rol de administrador de Dataform (roles/dataform.admin) en esa carpeta de equipo.

No recibirás automáticamente ningún rol cuando crees archivos o carpetas nuevos dentro del subárbol de una carpeta de equipo.

Recursos ocupados

Una carpeta de usuario o de equipo está "ocupada" si participa activamente en una operación de movimiento, ya sea como el objeto que se mueve o el destino del movimiento. Para garantizar la integridad de los datos durante la transferencia, el sistema restringe los recursos ocupados de las siguientes acciones:

  • El objeto es el destino de otra operación de movimiento.
  • Ser el destino de otra operación de movimiento
  • Ser un ancestro de un objeto de movimiento
  • Es el objeto de una operación de borrado.

Limitaciones

Las carpetas de BigQuery tienen las siguientes limitaciones:

  • Solo puedes anidar carpetas hasta 5 niveles de profundidad.
  • Tener una gran cantidad de carpetas (cientos de miles) ralentiza el rendimiento cuando se trabaja con ellas. Por ejemplo, cuando se carga el explorador de archivos o se expande una carpeta.
  • No puedes mover una carpeta que contenga más de 100 archivos o carpetas.

Ubicaciones

Las carpetas de BigQuery son compatibles con todas las ubicaciones de Dataform.

¿Qué sigue?