Crea un set di dati BigQuery collegato a un bucket di log

Questo documento descrive come creare un set di dati BigQuery collegato in un bucket di log. Puoi quindi utilizzare i servizi BigQuery come BigQuery Studio, Data Studio e l'API BigQuery per eseguire query sul set di dati collegato. Un set di dati BigQuery collegato è un set di dati di sola lettura in BigQuery che funge da puntatore al bucket dei log. Consente di utilizzare i servizi BigQuery per eseguire query sui dati di log senza duplicarli o pagare per uno spazio di archiviazione separato in BigQuery.

Non puoi creare un set di dati BigQuery collegato per una vista di analisi.

Se non hai familiarità con Observability Analytics, consulta la panoramica di Observability Analytics.

Quando hai bisogno di un set di dati collegato

Non hai bisogno di un set di dati BigQuery collegato quando vuoi eseguire query sui dati di log o sui dati di log e traccia. Per questi scenari, puoi utilizzare la pagina Observability Analytics. Puoi anche salvare e condividere le query e salvarle in una dashboard personalizzata. Per informazioni sull'esecuzione di query sui dati di traccia, consulta Eseguire query e analizzare le tracce.

Hai bisogno di un set di dati BigQuery collegato quando vuoi eseguire una delle seguenti operazioni:

Un set di dati BigQuery collegato per un bucket di log consente a BigQuery di leggere i dati nel bucket di log.

Come vengono mappati i bucket e le visualizzazioni di log agli oggetti BigQuery

Quando crei un set di dati BigQuery collegato per un bucket di log, un nuovo set di dati diventa disponibile per BigQuery. Specifichi il nome del set di dati collegato durante la procedura di collegamento. Tutte le visualizzazioni dei log all'interno del bucket di log vengono mappate automaticamente alle visualizzazioni virtuali nel set di dati. Il nome di una vista virtuale è uguale a quello della vista dei log corrispondente.

Ad esempio, supponiamo che il progetto my_project abbia un bucket di log denominato example e che questo bucket di log abbia una visualizzazione di log denominata _AllLogs. Se crei un set di dati collegato per questo bucket di log con il nome my_dataset, la pagina Explorer di BigQuery mostra una voce my_project. Un elemento secondario della voce my_project è un set di dati con il nome my_dataset e questo set di dati elenca una vista virtuale denominata _AllLogs.

Implicazioni del controllo dell'accesso quando si utilizzano set di dati collegati

Quando un principal esegue una query su una vista in un set di dati BigQuery collegato, la query viene eseguita tramite il livello di autorizzazione BigQuery, non il livello di autorizzazione Cloud Logging. Pertanto, i ruoli e le autorizzazioni BigQuery concessi all'entità sul set di dati collegato determinano se può eseguire query sul set di dati.

Non puoi limitare un principal a una visualizzazione virtuale specifica all'interno di un set di dati collegato. Quando a un principal è stato concesso l'accesso al set di dati collegato, può eseguire query su ogni vista del set di dati.

Azioni di sistema che si verificano quando crei un set di dati collegato

Quando crei un set di dati collegato, avvii un'operazione a lunga esecuzione. Nell'ambito di questa operazione si verificano diverse azioni:

  • Gli audit log registrano la richiesta di creazione di un collegamento e il completamento dell'operazione.
  • Quando il service account di monitoraggio non esiste, Google Cloud Observability lo crea.

    Per creare questo account di servizio, è necessario abilitare l'API Cloud Monitoring.

  • Google Cloud Observability richiede un account di servizio prima di poter creare un set di dati collegato. Se necessario, viene creato un account di servizio:

  • Un log di controllo registra la richiesta del gestore dell'agente di servizio di concedere all'account di servizio Monitoring il ruolo IAM di agente di servizio Monitoring.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Per ottenere le autorizzazioni necessarie per creare un set di dati collegato, chiedi all'amministratore di concederti il ruolo IAM Logs Configuration Writer (roles/logging.configWriter) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

  7. Assicurati che sia stato eseguito l'upgrade del bucket di log per utilizzare Observability Analytics:

    1. Nella console Google Cloud , vai alla pagina Archiviazione dei log:

      Vai ad Archiviazione dei log

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

    2. Se nel bucket dei log viene visualizzato Esegui l'upgrade, fai clic su Esegui l'upgrade e completa la finestra di dialogo.

Se vuoi utilizzare le funzionalità di BigQuery per analizzare i dati di log, esegui l'upgrade di un bucket di log per utilizzare Observability Analytics, quindi crea un set di dati collegato. Con questa configurazione, Logging archivia i dati di log, ma BigQuery può leggerli.

Console Google Cloud

Per creare un link a un set di dati BigQuery per un bucket di log esistente, procedi nel seguente modo:

  1. Nella console Google Cloud , vai alla pagina Archiviazione dei log:

    Vai ad Archiviazione dei log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Individua il bucket dei log e verifica che la colonna Analisi dell'osservabilità disponibile mostri Apri.

    Se questa colonna mostra Upgrade, significa che non è stato eseguito l'upgrade del bucket di log per utilizzare Observability Analytics. Configura Observability Analytics:

    1. Fai clic su Esegui upgrade.
    2. Fai clic su Conferma nella finestra di dialogo.

    Al termine dell'upgrade, vai al passaggio successivo.

  3. Nel bucket di log, fai clic su Altro, e poi su Modifica bucket.

    Si apre la finestra di dialogo Modifica bucket di log.

  4. Seleziona Crea un nuovo set di dati BigQuery che si colleghi a questo bucket e inserisci il nome del nuovo set di dati.

    Il nome del set di dati deve essere univoco per ogni Google Cloud progetto. Se inserisci il nome di un set di dati esistente, ricevi il seguente errore: Dataset name must be unique in the selected region.

  5. Fai clic su Fine, quindi su Aggiorna bucket.

    Dopo che Logging mostra il nome del set di dati collegato nella pagina Archiviazione log, potrebbero essere necessari diversi minuti prima che BigQuery riconosca il set di dati.

gcloud

Per creare un set di dati collegato per un bucket di log di cui è stato eseguito l'upgrade per utilizzare Observability Analytics, esegui il comando gcloud logging links create:

gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION

Il LINK_ID che fornisci viene utilizzato come nome del set di dati BigQuery e il valore di questo campo deve essere univoco per il tuo progetto Google Cloud .

Il comando links create è asincrono. Il valore restituito di un metodo asincrono è un oggetto Operation e contiene informazioni sullo stato di avanzamento del metodo. Al termine del metodo, l'oggetto Operation contiene lo stato. Per saperne di più, consulta Metodi API asincroni.

Il completamento del comando links create richiede diversi minuti.

Ad esempio, il seguente comando crea un set di dati collegato denominato mylink per il bucket dei log denominato my-bucket:

gcloud logging links create mylink --bucket=my-bucket --location=global

Il nome del set di dati deve essere univoco per ogni Google Cloud progetto. Se tenti di creare un set di dati con lo stesso nome di un set di dati esistente, ricevi il seguente errore:

BigQuery dataset with name "LINK_ID" already exists.

Se provi a creare un set di dati collegato per un bucket di log di cui non è stato eseguito l'upgrade per utilizzare Observability Analytics, viene segnalato il seguente errore:

A link can only be created for an analytics-enabled bucket.

REST

Per creare un set di dati BigQuery collegato per un bucket di log esistente di cui è stato eseguito l'upgrade, utilizza Observability Analytics, chiama il metodo asincrono projects.locations.buckets.links.create dell'API Cloud Logging.

Prepara gli argomenti per il metodo nel seguente modo:

  1. Crea il corpo della richiesta per il comando create. Il corpo della richiesta è formattato come un oggetto Link.
  2. Per il parametro di query del comando, utilizza linkId=LINK_ID. Il LINK_ID che fornisci viene utilizzato come nome del set di dati BigQuery e il valore di questo campo deve essere univoco per il tuo progetto Google Cloud .

La risposta ai metodi asincroni è un oggetto Operation. Questo oggetto contiene informazioni sullo stato di avanzamento del metodo. Al termine del metodo, l'oggetto Operation contiene lo stato. Per saperne di più, consulta Metodi API asincroni.

Il completamento del metodo links.create richiede diversi minuti.

Il nome del set di dati deve essere univoco per ogni Google Cloud progetto. Se tenti di creare un set di dati con lo stesso nome di un set di dati esistente, ricevi il seguente errore:

BigQuery dataset with name "LINK_ID" already exists.

Se provi a creare un set di dati collegato per un bucket di log di cui non è stato eseguito l'upgrade per utilizzare Observability Analytics, viene segnalato il seguente errore:

A link can only be created for an analytics-enabled bucket.

Passaggi successivi