Organizar 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, puedes crear una carpeta para organizar los recursos de código de un análisis de ventas, con subcarpetas para cada año fiscal. También puedes usar carpetas para gestionar el acceso a los recursos de código. Las carpetas ofrecen la herencia de políticas de gestión de identidades y accesos, que puedes usar para controlar el acceso a los recursos de código de forma 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 se basan en Dataform.

Para obtener más información sobre cómo trabajar con carpetas en BigQuery, consulta el artículo Crear y gestionar carpetas.

Organizar recursos de código con carpetas

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

Ubicación del panel **Archivos** en BigQuery Studio.

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

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

Tipos de carpetas

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 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: están diseñadas para la colaboración en equipo, de forma similar a las unidades compartidas de Google Drive. Puedes usar carpetas de equipo para organizar el código y los recursos que pertenecen a un equipo concreto. Solo los usuarios que tengan permisos de propietario en la carpeta raíz del equipo pueden conceder permisos para que otros usuarios puedan usar la carpeta del equipo.

Regiones de código de carpetas

Puedes tener carpetas y recursos de código en diferentes regiones de código. Por ejemplo, podría tener folderA y los recursos de código que contiene en la región us-west1, así como 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 gestión de identidades y accesos

El acceso de gestión de identidades y accesos a los recursos de archivos y carpetas usa una estructura jerárquica. Esta jerarquía asegura que las políticas de acceso se hereden de las carpetas superiores a su contenido.

Cuando se define 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 del subárbol de la carpeta. Esto tiene las siguientes consecuencias:

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

Por lo tanto, no necesitas permisos a nivel de proyecto para realizar acciones en recursos ubicados en una estructura de carpetas compleja. Solo necesitas el permiso adecuado en cualquier carpeta de la ruta a ese recurso. Por ejemplo, si quieres 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 gestión de identidades y accesos a archivos y carpetas:

  • Aplica las políticas de gestión de identidades y accesos a la carpeta de mayor nivel de la jerarquía en la que se necesiten los permisos de forma uniforme. Por ejemplo, si un equipo necesita acceder a todos los datos del directorio de su equipo, asigna los roles necesarios a nivel de la carpeta del equipo en lugar de a nivel de las subcarpetas de proyectos individuales.
  • Concede siempre el conjunto mínimo de permisos necesarios para que los usuarios o los servicios puedan realizar sus tareas. Evita asignar roles generales cuando puedas usar roles y permisos más específicos a nivel de carpeta.

Roles de gestión de identidades y accesos concedidos al crear el recurso

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

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

No se te asignará ningún rol automáticamente cuando crees archivos o carpetas en el 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 objeto que se mueve o como destino del movimiento. El sistema impide que los recursos ocupados realicen las siguientes acciones para asegurar la integridad de los datos durante la transferencia:

  • Ser el objeto de otra operación de reordenamiento.
  • Ser el destino de otra operación de movimiento.
  • Ser un ancestro de un objeto de movimiento.
  • Ser el objeto de una operación de eliminación.

Limitaciones

Las carpetas de BigQuery tienen las siguientes limitaciones:

  • Solo puedes anidar carpetas en cinco niveles.
  • Tener un número muy elevado de carpetas (cientos de miles) ralentiza el rendimiento al trabajar con ellas. Por ejemplo, al cargar el explorador de archivos o al expandir una carpeta.
  • No puedes mover una carpeta que contenga más de 100 archivos o carpetas.

Ubicaciones

Las carpetas de BigQuery se admiten en todas las ubicaciones de Dataform.

Siguientes pasos