Gestire il codice con i repository Git di BigQuery Studio

Puoi gestire script SQL e notebook utilizzando i repository Git di BigQuery Studio. Questa funzionalità integra il controllo della versione direttamente nel browser di file di BigQuery Studio, consentendoti di clonare i repository, gestire i rami ed eseguire operazioni Git senza uscire dalla console. Google Cloud

I repository Git di BigQuery Studio offrono un'esperienza più semplificata e basata su cartelle rispetto ai repository classici. I repository Git di BigQuery Studio vengono visualizzati direttamente nel riquadro a sinistra sotto la cartella principale dell'utente.

Utilizzando i repository Git di BigQuery Studio, puoi interagire con le risorse di codice come se fossero file e directory standard, mantenendo al contempo una connessione a un repository Git remoto.

Limitazioni

  • I repository Git di BigQuery Studio sono limitati al contesto della cartella principale dell'utente e sono destinati all'uso privato. Non condividere questi repository con altri utenti. Sebbene questi repository vengano visualizzati nella cartella root utente, che è una rappresentazione virtuale degli asset nel progetto, vengono tecnicamente creati a livello di progetto.
  • L'utilizzo di un connettore dell'account Developer Connect con un proxy Git non è supportato.
  • Le operazioni del file system all'interno della posizione di montaggio consumano la quota Dataform.
  • I repository con un numero elevato di file, file di grandi dimensioni, molti rami o una cronologia dei commit profonda e complessa richiedono più tempo per essere clonati. L'operazione di clonazione potrebbe superare il timeout dell'operazione, impedendo la creazione del repository.
  • La dimensione dei file del blocco note archiviati in un montaggio del repository Git di BigQuery Studio non può superare i 30 MB. Se i file hanno dimensioni superiori a 30 MB, salvali nella memoria locale dell'ambiente di runtime di Colab al di fuori della posizione montata.
  • Quando apporti modifiche a un repository Git al di fuori del punto di montaggio, ad esempio modificando o rinominando i file nel riquadro a sinistra, potrebbero essere necessari fino a 60 secondi prima che queste modifiche diventino visibili all'interno del punto di montaggio nel runtime del notebook. Puoi modificare questa durata passando il parametro CACHE_TTL_SECONDS al costruttore:

      FuseWidget(CACHE_TTL_SECONDS=NUMBER)
    

    Sostituisci NUMBER con il numero di secondi per cui la cache rimane valida. La diminuzione di questo valore aumenta la frequenza di sincronizzazione e consuma più rapidamente la quota Dataform.

Prima di iniziare

Abilita l'API Developer Connect nel tuo progetto Google Cloud .

Abilitare l'API

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire il codice con i repository Git di BigQuery Studio, chiedi all'amministratore di concederti il ruolo IAM Developer Connect OAuth User (roles/developerconnect.oauthUser) sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire il codice con i repository Git di BigQuery Studio. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per gestire il codice con i repository Git di BigQuery Studio sono necessarie le seguenti autorizzazioni:

  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • developerconnect.operations.list
  • developerconnect.operations.get
  • developerconnect.locations.list
  • developerconnect.locations.get
  • developerconnect.users.startOAuth
  • developerconnect.users.finishOAuth
  • developerconnect.users.fetchAccessToken
  • developerconnect.users.getSelf
  • developerconnect.users.deleteSelf
  • developerconnect.accountConnectors.get
  • developerconnect.accountConnectors.list
  • developerconnect.accountConnectors.gitProxyUse
  • developerconnect.accountConnectors.httpProxyUse
  • developerconnect.accountConnectors.gitProxyRead
  • developerconnect.accountConnectors.gitProxyWrite
  • developerconnect.accountConnectors.httpProxyRead
  • developerconnect.accountConnectors.httpProxyWrite
  • developerconnect.accountConnectors.fetchUserRepositories

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Considerazioni sulla sicurezza per i repository

Poiché gli asset di codice in BigQuery sono basati su Dataform, devi considerare le seguenti implicazioni per la sicurezza per gli utenti con accesso a questi asset:

  • La visibilità degli asset di codice è regolata dalle autorizzazioni Dataform a livello di progetto. Gli utenti con l'autorizzazione dataform.repositories.list, inclusa nei ruoli BigQuery standard come Utente job BigQuery, Utente BigQuery Studio e Utente BigQuery, possono visualizzare tutti gli asset di codice nel riquadro Explorer del progetto Google Cloud , indipendentemente dal fatto che li abbiano creati o che siano stati condivisi con loro. Per limitare la visibilità, puoi creare ruoli personalizzati che escludono l'autorizzazione dataform.repositories.list.
  • Qualsiasi secret condiviso con l'agente di servizio Dataform può potenzialmente essere accessibile agli utenti che possono modificare questi asset. Per proteggere le tue credenziali, limita l'accesso alla creazione e alla modifica agli utenti attendibili e limita i secret accessibili all'agente di servizio Dataform. Per saperne di più, consulta Accesso ai secret durante l'installazione del pacchetto.

Per saperne di più, consulta Considerazioni sulla sicurezza per le autorizzazioni Dataform.

Crea un repository Git BigQuery Studio

Quando crei un repository Git, tieni conto di questi requisiti:

  • Il collegamento di un repository Git remoto a un repository Git può non riuscire se il repository remoto non è aperto a internet pubblico, ad esempio se si trova dietro un firewall. In questo caso, aggiungi gli intervalli di indirizzi IP di uscita di Dataform richiesti alle regole firewall per abilitare le connessioni ai repository remoti protetti.
  • Per creare un repository Git connesso a un repository Git remoto che non è incluso nella lista consentita nella policy dell'organizzazione dataform.restrictGitRemotes, aggiungi prima il repository Git remoto all'elenco allowedValues nella policy, quindi crea il repository Git. Per saperne di più, consulta Limitare i repository remoti.

Per creare un repository Git:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su File per aprire il browser dei file.

    Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro a sinistra per aprirlo.

  3. Accanto al nodo principale dell'utente, fai clic su Visualizza azioni > Crea > Repository Git.

  4. Inserisci l'URL del repository Git remoto.

  5. BigQuery Studio rileva se è disponibile un connettore di account Developer Connect esistente. Hai le seguenti opzioni:

    • Se viene trovato un connettore di account, il nome visualizzato del repository Git viene precompilato. Puoi modificare questi valori.
    • Se non esiste alcun connettore di account, fai clic su Crea connettore di account per crearne uno nuovo.
    • Se preferisci non utilizzare un connettore dell'account Developer Connect, fai clic su Utilizza un tipo di connessione diverso per connetterti tramite HTTPS o SSH.
  6. Fai clic su Connetti.

Modificare un file

Per modificare un file, fai clic su un nodo di file, ad esempio uno script SQL o un blocco note, per aprire il file in una nuova scheda dell'editor.

Tutte le modifiche apportate vengono salvate automaticamente.

Gestione file

Puoi eseguire le attività di gestione standard utilizzando il menu Azioni associato a ogni elemento. Per accedere a queste opzioni, fai clic su Apri azioni accanto a qualsiasi directory o file.

A livello di directory, puoi eseguire le seguenti operazioni:

  • Crea nel repository: crea nuove risorse di codice, tra cui query SQL, notebook, canvas di dati, preparazioni dei dati, file o sottodirectory.
  • Carica nel repository: importa i file esistenti dalla macchina locale nella directory selezionata.
  • Rinomina: modifica il nome della directory.
  • Sposta: sposta la directory. Puoi spostare una directory in un'altra posizione all'interno dello stesso repository Git. Per saperne di più, vedi Spostare o copiare file e directory.
  • Elimina: rimuove definitivamente la directory e tutti i suoi contenuti dallo spazio di lavoro locale.

A livello di file, puoi eseguire le seguenti attività:

  • Apri o Apri in: visualizza il file nell'editor predefinito o in un'applicazione specifica, ad esempio un ambiente notebook specifico.
  • Rinomina: modifica il nome del file.
  • Copia: crea un duplicato del file. Puoi copiare i file solo nelle directory all'interno dello stesso repository Git.
  • Sposta: sposta il file in un'altra directory all'interno dello stesso repository Git. Per saperne di più, vedi Spostare o copiare file e directory.
  • Scarica: salva una copia del file sul tuo computer locale.
  • Elimina: rimuovi il file dallo spazio di lavoro.

Spostare o copiare file e directory

Puoi spostare o copiare file e directory, ma devono rimanere all'interno dello stesso repository Git.

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su File per aprire il browser dei file.

  3. Trova il file o la directory che vuoi spostare o copiare.

  4. Fai clic su Apri azioni > Sposta o Copia.

  5. Nella finestra di dialogo visualizzata, seleziona la directory di destinazione all'interno dello stesso repository Git.

  6. Fai clic su Sposta o Copia.

Esegui il commit e il push delle modifiche

Per sincronizzare le modifiche locali con il repository remoto:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Repository.

  3. (Facoltativo) Passa il mouse sopra un file modificato e fai clic su Visualizza diff per visualizzare un confronto riga per riga tra la tua versione locale e l'ultima versione di cui è stato eseguito il commit.

  4. Nel campo Messaggio di commit, inserisci una descrizione delle modifiche.

  5. Fai clic su Commit. Le modifiche vengono salvate nella cronologia Git del ramo locale.

  6. Fai clic su Esegui il push sul branch remoto. Le modifiche vengono sincronizzate con il repository remoto.

Passa a un nuovo branch

Puoi gestire le filiali locali e crearne una nuova in base a una filiale di monitoraggio locale o remota esistente.

Nella scheda Repository, nella sezione Rami, puoi vedere i rami locali estratti. L'etichetta CURRENT indica il ramo attivo, mentre l'etichetta DEFAULT indica il ramo predefinito del repository.

Per estrarre un nuovo branch:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Repository.

  3. Espandi la sezione Rami.

  4. Fai clic su Apri azioni accanto a un ramo, quindi fai clic su Estrai nuovo ramo.

  5. Nel menu Branch di origine, seleziona il branch su cui vuoi basare il nuovo branch, ad esempio origin/main.

  6. Nel campo Nome ramo, inserisci un nome per il nuovo ramo.

  7. Fai clic su Paga. BigQuery Studio estrae prima il ramo di origine. Se il nome della filiale fornito indica una nuova filiale, questa viene creata in base a questa origine. Il nuovo ramo diventa il ramo attivo e i contenuti del repository Git vengono aggiornati automaticamente per riflettere lo stato del ramo estratto.

Accedere ai file blocco note in un punto di montaggio del repository Git

Quando accedi a un notebook da un repository Git di BigQuery Studio, puoi montare il repository Git host nel runtime del notebook. Un mount è una connessione che fa apparire il repository Git remoto come se fosse un repository locale nel runtime del notebook. In questo modo, il notebook può accedere direttamente, leggere e scrivere in altri file e script di query all'interno dello stesso repository.

Monta il repository Git

Per montare il repository Git, esegui il seguente codice Python nel notebook:

from google_dataform_fuse_widget import FuseWidget
FuseWidget()

Quando il notebook è collegato al supporto, si verificano le seguenti modifiche:

  • La directory di lavoro corrente della sessione del notebook viene aggiornata in modo da riflettere il relativo percorso all'interno del repository Git. In questo modo, l'accesso ai file basato sul percorso funziona automaticamente.
  • Il percorso del repository Git nel runtime del notebook viene aggiunto al percorso di sistema Python, il che ti consente di utilizzare le istruzioni di importazione Python standard per caricare script e file di query dal repository Git direttamente nel notebook.

Gestire il supporto e la connessione

Utilizza i seguenti controlli per gestire il tuo spazio di lavoro:

  • Monta spazio di lavoro: avvia il processo di montaggio del repository Git. Il mount è una risorsa condivisa, quindi se più notebook nello stesso runtime di Colab utilizzano lo stesso repository Git, utilizzano lo stesso mount.
  • Smonta workspace: interrompe il processo di montaggio del repository Git. Se smonti lo spazio di lavoro, il montaggio non sarà più disponibile per tutti i blocchi note nell'ambiente di runtime Colab che lo utilizzavano.
  • Connetti spazio di lavoro: avvia la connessione a un punto di montaggio attivo per la sessione del notebook corrente. La connessione aggiorna la directory di lavoro e il percorso di sistema del notebook in modo da includere il repository Git, il che ti consente di accedere ai file e importarli.
  • Scollega workspace: termina la connessione di montaggio per la sessione del notebook corrente e la ripristina allo stato predefinito. La disconnessione non influisce sullo stato della connessione di montaggio per altre sessioni attive del notebook. Per terminare la connessione della sessione, ti consigliamo di utilizzare il pulsante Disconnetti spazio di lavoro.
  • Repair: ripristina un montaggio o una connessione a uno stato integro se diventa inutilizzabile.

Dopo aver inizializzato il supporto, fai riferimento alla barra Stato per visualizzare in tempo reale l'integrità e il percorso attivo del supporto. Gli stati di integrità possibili sono Connesso, Montato, Arrestato e Non integro.

Passaggi successivi