Introduzione alla gerarchia delle risorse

Le risorse BigQuery sono organizzate in modo gerarchico, come altri serviziGoogle Cloud . Comprendere questa gerarchia ti aiuta a strutturare le tue risorse BigQuery per gestire i workload, controllare le autorizzazioni, allocare le quote di allocazione, assegnare le prenotazioni degli slot e monitorare la fatturazione.

Gerarchia delle risorse

BigQuery eredita la gerarchia delle risorseGoogle Cloud e aggiunge un ulteriore meccanismo di raggruppamento chiamato set di dati, specifico per BigQuery. Questa sezione descrive gli elementi di questa gerarchia.

Organizzazioni

La risorsa Organizzazione rappresenta un'organizzazione (ad esempio un'azienda) ed è il nodo radice nella gerarchia delle risorseGoogle Cloud .

Non è necessaria una risorsa Organization per iniziare a utilizzare BigQuery, ma ti consigliamo di crearne una. L'utilizzo di una risorsa Organizzazione consente agli amministratori di controllare centralmente le risorse BigQuery, anziché lasciare che i singoli utenti controllino le risorse che creano.

Cartelle

Le cartelle sono un ulteriore meccanismo di raggruppamento sopra i progetti. I progetti e le cartelle all'interno di una cartella ereditano automaticamente le policy di accesso della cartella principale. Le cartelle possono essere utilizzate per modellare diversi soggetti giuridici, reparti e team all'interno di un'azienda.

Le cartelle descritte qui fanno parte della gerarchia delle risorseGoogle Cloud . Non devono essere confuse con le cartelle BigQuery, che puoi utilizzare per organizzare gli asset di codice.

Progetti

Ogni set di dati BigQuery è associato a un progetto. Per utilizzare Google Cloud, devi creare almeno un progetto. I progetti sono la base per creare, abilitare e utilizzare tutti i servizi Google Cloud . Per saperne di più, consulta Gerarchia delle risorse. Un progetto può contenere più set di dati e set di dati con località diverse possono esistere nello stesso progetto.

Quando esegui operazioni sui dati BigQuery, ad esempio esegui una query o importi dati in una tabella, crei un job. Un job è sempre associato a un progetto, ma non deve essere eseguito nello stesso progetto che contiene i dati. In effetti, un job potrebbe fare riferimento a tabelle di set di dati in più progetti. Un job di query, caricamento o estrazione viene sempre eseguito nella stessa località delle tabelle a cui fa riferimento.

A ogni progetto è associato un account di fatturazione Cloud. I costi maturati per un progetto vengono fatturati a questo account. Se utilizzi i prezzi on demand, le query vengono fatturate al progetto che le esegue. Se utilizzi i prezzi basati sulla capacità, le prenotazioni degli slot vengono fatturate al progetto di amministrazione utilizzato per acquistare gli slot. Lo spazio di archiviazione viene addebitato al progetto in cui si trova il set di dati.

Set di dati

I set di dati sono container logici utilizzati per organizzare e controllare l'accesso alle risorse BigQuery. I set di dati sono simili agli schemi di altri sistemi di database.

La maggior parte delle risorse BigQuery che crei, tra cui tabelle, viste, funzioni e procedure, viene creata all'interno di un set di dati. Le connessioni e i job sono eccezioni, in quanto sono associati ai progetti anziché ai set di dati.

Un set di dati ha una località. Quando crei una tabella, i dati della tabella vengono archiviati nella località del set di dati. Prima di creare tabelle per i dati di produzione, pensa ai tuoi requisiti per le località. Non puoi modificare la località di un set di dati dopo la sua creazione.

Esempio di gerarchia delle risorse

Il seguente diagramma mostra un esempio della gerarchia delle risorse. In questo esempio, l'organizzazione ha un progetto all'interno di una cartella. Il progetto è associato a un account di fatturazione e contiene tre set di dati.

Gerarchia delle risorse

Considerazioni

Quando scegli come organizzare le risorse BigQuery, tieni presente i seguenti punti:

  • Quote. Molte quote di BigQuery vengono applicate a livello di progetto. Alcuni si applicano a livello di set di dati. Le quote a livello di progetto che coinvolgono risorse di computing, come query e job di caricamento, vengono conteggiate in base al progetto che crea il job, anziché al progetto di archiviazione.
  • Fatturazione. Se vuoi che i diversi reparti della tua organizzazione utilizzino account di fatturazione Cloud diversi, crea progetti diversi per ogni team. Crea gli account di fatturazione Cloud a livello di organizzazione e associa i progetti.
  • Prenotazioni di slot. Gli slot prenotati hanno come ambito la risorsa Organizzazione. Dopo aver acquistato la capacità degli slot prenotati, puoi assegnare un pool di slot a qualsiasi progetto o cartella all'interno dell'organizzazione oppure assegnare slot all'intera risorsa Organizzazione. I progetti ereditano le prenotazioni di slot dalla cartella o dall'organizzazione padre. Gli slot prenotati sono associati a un progetto di amministrazione, che viene utilizzato per gestire gli slot. Per saperne di più, consulta Gestione dei workload utilizzando le prenotazioni.
  • Autorizzazioni. Valuta l'impatto della gerarchia delle autorizzazioni sulle persone della tua organizzazione che devono accedere ai dati. Ad esempio, se vuoi concedere a un intero team l'accesso a dati specifici, puoi archiviarli in un unico progetto per semplificare la gestione degli accessi.

    Le tabelle e le altre entità ereditano le autorizzazioni del set di dati principale. I set di dati ereditano le autorizzazioni dalle entità principali nella gerarchia delle risorse (progetti, cartelle, organizzazioni). Per eseguire un'operazione su una risorsa, un utente deve disporre sia delle autorizzazioni pertinenti sulla risorsa sia dell'autorizzazione per creare un job BigQuery. L'autorizzazione per creare un job è associata al progetto utilizzato per quel job.

Pattern

Questa sezione presenta due pattern comuni per l'organizzazione delle risorse BigQuery.

  • Data lake centrale, data mart di reparto. L'organizzazione crea un progetto di archiviazione unificato per conservare i dati non elaborati. I reparti all'interno dell'organizzazione creano i propri progetti di data mart per l'analisi.

  • Data lake di reparto, data warehouse centrale. Ogni reparto crea e gestisce il proprio progetto di archiviazione per conservare i dati non elaborati del reparto. L'organizzazione crea quindi un progetto di data warehouse centrale per l'analisi.

Ogni approccio presenta vantaggi e svantaggi. Molte organizzazioni combinano elementi di entrambi i pattern.

Data lake centrale, data mart di reparto

In questo pattern, crei un progetto di archiviazione unificato per conservare i dati non elaborati della tua organizzazione. Anche la pipeline di importazione dati può essere eseguita in questo progetto. Il progetto di archiviazione unificata funge da data lake per la tua organizzazione.

Ogni reparto ha un proprio progetto dedicato, che utilizza per eseguire query sui dati, salvare i risultati delle query e creare visualizzazioni. Questi progetti a livello di reparto fungono da data mart. Sono associati all'account di fatturazione del reparto.

Pattern di data lake centrale

I vantaggi di questa struttura includono:

  • Un team di data engineering centralizzato può gestire la pipeline di importazione in un'unica posizione.
  • I dati non elaborati sono isolati dai progetti a livello di reparto.
  • Con i prezzi on demand, la fatturazione per l'esecuzione delle query viene addebitata al reparto che esegue la query.
  • Con i prezzi basati sulla capacità, puoi assegnare slot a ciascun reparto in base ai requisiti di calcolo previsti.
  • Ogni reparto è isolato dagli altri in termini di quote a livello di progetto.

Quando utilizzi questa struttura, le autorizzazioni tipiche sono le seguenti:

  • Al team centrale di data engineering vengono concessi i ruoli BigQuery Data Editor e BigQuery Job User per il progetto di archiviazione. Questi ruoli consentono di importare e modificare i dati nel progetto di archiviazione.
  • Agli analisti dei reparti viene assegnato il ruolo Visualizzatore dati BigQuery per set di dati specifici nel progetto del data lake centrale. In questo modo, possono eseguire query sui dati, ma non aggiornare o eliminare i dati non elaborati.
  • Agli analisti dei reparti vengono inoltre concessi i ruoli BigQuery Data Editor e Job User per il progetto di data mart del loro reparto. In questo modo, possono creare e aggiornare le tabelle nel loro progetto ed eseguire job di query per trasformare e aggregare i dati per l'utilizzo specifico del reparto.

Per saperne di più, consulta Ruoli e autorizzazioni di base.

Data lake di reparto, data warehouse centrale

In questo pattern, ogni reparto crea e gestisce il proprio progetto di archiviazione, che contiene i dati non elaborati del reparto. Un progetto di data warehousing centrale archivia le aggregazioni o le trasformazioni dei dati non elaborati.

Gli analisti possono eseguire query e leggere i dati aggregati dal progetto di data warehouse. Il progetto del data warehouse fornisce anche un livello di accesso per gli strumenti di business intelligence (BI).

Pattern dei data lake di reparto

I vantaggi di questa struttura includono:

  • È più semplice gestire l'accesso ai dati a livello di reparto utilizzando progetti separati per ogni reparto.
  • Un team di analisi centrale ha un unico progetto per l'esecuzione dei job di analisi, il che semplifica il monitoraggio delle query.
  • Gli utenti possono accedere ai dati da uno strumento di BI centralizzato, che viene mantenuto isolato dai dati non elaborati.
  • Gli slot possono essere assegnati al progetto di data warehouse per gestire tutte le query degli analisti e degli strumenti esterni.

Quando utilizzi questa struttura, le autorizzazioni tipiche sono le seguenti:

  • Ai data engineer vengono concessi i ruoli BigQuery Data Editor e BigQuery Job User nel data mart del loro reparto. Questi ruoli consentono loro di importare e trasformare i dati nel proprio data mart.
  • Agli analisti vengono concessi i ruoli BigQuery Data Editor e BigQuery Job User nel progetto del data warehouse. Questi ruoli consentono di creare visualizzazioni aggregate nel data warehouse ed eseguire job di query.
  • Agli account di servizio che connettono BigQuery agli strumenti di BI viene concesso il ruolo Visualizzatore dati BigQuery per set di dati specifici, che possono contenere dati non elaborati del data lake o dati trasformati nel progetto del data warehouse.

Per saperne di più, consulta Ruoli e autorizzazioni di base.

Puoi anche utilizzare funzionalità di sicurezza come le viste autorizzate e le funzioni definite dall'utente (UDF) autorizzate per rendere disponibili i dati aggregati a determinati utenti senza concedere loro l'autorizzazione per visualizzare i dati non elaborati nei progetti dei data mart.

Questa struttura del progetto può comportare molte query simultanee nel progetto di data warehousing. Di conseguenza, potresti raggiungere il limite di query simultanee. Se adotti questa struttura, valuta la possibilità di aumentare questo limite di quota per il progetto. Valuta anche la possibilità di utilizzare la fatturazione basata sulla capacità, in modo da poter acquistare un pool di slot per eseguire le query.