Organizzare gli asset di codice con le cartelle

Il seguente documento descrive il funzionamento delle cartelle BigQuery. Puoi utilizzare le cartelle per organizzare gli asset di codice in una struttura gerarchica, simile a quella utilizzata dai sistemi operativi. Ad esempio, puoi creare una cartella per organizzare gli asset di codice per l'analisi delle vendite, con sottocartelle per ogni anno fiscale. Puoi anche utilizzare le cartelle per gestire l'accesso agli asset di codice. Le cartelle offrono l'ereditarietà delle policy Identity and Access Management (IAM), che puoi utilizzare per controllare l'accesso agli asset di codice in modo più efficiente. L'ereditarietà delle policy consente a sottocartelle e file di ereditare le autorizzazioni della cartella principale.

Le cartelle BigQuery sono basate su Dataform.

Per ulteriori informazioni sull'utilizzo delle cartelle in BigQuery, consulta Creare e gestire le cartelle.

Organizzare gli asset di codice con le cartelle

Puoi accedere agli asset di codice e organizzarli utilizzando le cartelle nel riquadro File di BigQuery Studio:

La posizione del riquadro **File** in BigQuery Studio.

Una cartella è il contenitore di base per l'organizzazione degli asset di codice, simile a una cartella del file system standard. Puoi creare e organizzare sottocartelle all'interno di una cartella principale e spostare gli asset di codice all'interno e all'esterno delle cartelle. Quando concedi le autorizzazioni per una cartella, queste vengono propagate a tutte le cartelle e i file contenuti nella cartella.

Puoi utilizzare le cartelle solo per organizzare gli asset di codice a file singolo, come notebook, query salvate, canvas di dati e file di preparazione dei dati.

Tipi di cartelle

BigQuery supporta i seguenti tipi di cartelle:

  • Cartelle utente: ogni utente ha una cartella principale personale, visualizzata come Utente (indirizzo email utente). La cartella utente contiene tutti gli asset di codice creati nel progetto e nella località specificati. Puoi creare sottocartelle nella cartella utente per organizzare questi asset di codice. I file e le cartelle nella cartella utente sono accessibili solo a te, a meno che tu non scelga di condividerli con altri utenti.

  • Cartelle del team: una cartella del team è progettata per la collaborazione del team, in modo simile a un Drive condiviso in Google Drive. Puoi utilizzare le cartelle del team per organizzare gli asset di codice appartenenti a un team specifico. Solo gli utenti che dispongono delle autorizzazioni di proprietario per la cartella del team principale possono concedere le autorizzazioni per consentire ad altri utenti di utilizzare la cartella del team.

Regioni di codice delle cartelle

Puoi avere cartelle e asset di codice in regioni di codice diverse. Ad esempio, potresti avere folderA e gli asset di codice che contiene nella regione us-west1, e folderB e gli asset di codice che contiene nella regione us-central1. La regione che stai visualizzando viene mostrata nel riquadro File:

La regione di codice corrente viene visualizzata accanto al nome del progetto nel riquadro **File**.

Ereditarietà delle policy IAM

L'accesso IAM per le risorse di file e cartelle utilizza una struttura gerarchica. Questa gerarchia garantisce che le policy di accesso vengano ereditate dalle cartelle principali ai relativi contenuti.

Quando una policy IAM viene impostata su una cartella, le autorizzazioni concesse dalla policy si applicano anche a tutti i file e le sottocartelle nidificate nell'albero secondario della cartella. Ciò ha le seguenti conseguenze:

  • Le autorizzazioni vengono ereditate tramite la gerarchia delle cartelle. Quando a un utente viene concesso un ruolo specifico in una cartella di livello superiore, l'utente dispone delle autorizzazioni incluse nel ruolo per tutte le risorse contenute nella cartella e nelle relative sottocartelle.
  • Le autorizzazioni di un utente per una risorsa sono costituite dalle policy impostate direttamente sulla risorsa e da tutte le policy ereditate da ogni cartella nel relativo percorso fino alla radice.

Di conseguenza, non hai bisogno delle autorizzazioni a livello di progetto per eseguire azioni sulle risorse che si trovano in una struttura di cartelle. Ti serve solo l'autorizzazione appropriata per qualsiasi cartella nel percorso della risorsa. Ad esempio, se vuoi creare un file in una sottocartella, devi disporre delle autorizzazioni necessarie per la sottocartella specifica o per una delle relative cartelle principali, inclusa la cartella di primo livello.

Di seguito sono riportate le best practice per l'applicazione delle policy IAM a file e cartelle:

  • Applica le policy IAM alla cartella più alta nella gerarchia in cui le autorizzazioni sono necessarie in modo uniforme. Ad esempio, se un team ha bisogno dell'accesso a tutti i dati nella directory del team, concedi i ruoli necessari a livello della cartella del team anziché a livello delle singole sottocartelle del progetto.
  • Concedi sempre il set minimo di autorizzazioni necessarie agli utenti o ai servizi per svolgere le loro attività. Evita di concedere ruoli generici quando puoi utilizzare ruoli e autorizzazioni a livello di cartella più specifici.

Ruoli IAM concessi al momento della creazione delle risorse

Quando crei una cartella, i seguenti ruoli vengono concessi automaticamente:

  • Gli utenti che creano cartelle nel nodo principale dell'utente ricevono automaticamente il ruolo Dataform Admin (roles/dataform.admin) per queste cartelle.
  • Il creatore di una cartella del team principale riceve automaticamente il ruolo Dataform Admin (roles/dataform.admin) per la cartella del team.

Puoi utilizzare l'API Config per concedere un ruolo specifico al momento della creazione delle risorse.

Non ricevi automaticamente alcun ruolo quando crei nuovi file o cartelle nell'albero secondario di una cartella del team.

Risorse occupate

Una cartella utente o una cartella del team è "occupata" se è attivamente coinvolta in un'operazione di spostamento, sia come oggetto spostato sia come destinazione dello spostamento. Il sistema limita le seguenti azioni sulle risorse occupate per garantire l'integrità dei dati durante lo spostamento:

  • Essere l'oggetto di un'altra operazione di spostamento.
  • Essere la destinazione di un'altra operazione di spostamento.
  • Essere un predecessore di un oggetto di spostamento.
  • Essere l'oggetto di un'operazione di eliminazione.

Limitazioni

Le cartelle BigQuery presentano le seguenti limitazioni:

  • Puoi nidificare le cartelle solo fino a 5 livelli di profondità.
  • Un numero molto elevato di cartelle (centinaia di migliaia) rallenta le prestazioni quando lavori con le cartelle. Ad esempio, quando carichi Esplora file o espandi una cartella.
  • Non puoi spostare una cartella che contiene più di 100 file o cartelle.

Località

Le cartelle BigQuery sono supportate in tutte le località Dataform.

Passaggi successivi