Utilizzare le assegnazioni di prenotazione

L'API BigQuery Reservation consente di acquistare slot dedicati (chiamati impegni��), creare pool di slot (chiamati prenotazioni��) e assegnare progetti, cartelle e organizzazioni a queste prenotazioni.

Creare assegnazioni di prenotazione

Per utilizzare gli slot acquistati, crea un assegnazione che assegna un progetto, una cartella o un'organizzazione a una prenotazione di slot.

I progetti utilizzano la prenotazione più specifica nella gerarchia delle risorse a cui sono assegnati. Un'assegnazione di cartella sostituisce un'assegnazione di organizzazione e un'assegnazione di progetto sostituisce un'assegnazione di cartella. Le assegnazioni di cartelle e organizzazioni non sono disponibili per le prenotazioni dell'edizione standard.

Per creare un incarico in una prenotazione, la prenotazione deve soddisfare almeno uno dei seguenti criteri:

  • È configurato con un numero diverso da zero di slot di base assegnati.

  • È configurato con un numero diverso da zero di slot di scalabilità automatica.

  • È configurato per utilizzare gli slot inattivi e nel progetto sono disponibili slot inattivi.

Se tenti di assegnare una risorsa a una prenotazione che non soddisfa almeno uno di questi criteri, ricevi il seguente messaggio: Assignment is pending, your project will be executed as on-demand.

Puoi assegnare una risorsa a una prenotazione di failover, ma l'assegnazione è in attesa nella località secondaria.

Autorizzazioni obbligatorie

Per creare un'assegnazione di prenotazione, devi disporre della seguente autorizzazione Identity and Access Management (IAM):

Ognuno dei seguenti ruoli IAM predefiniti include questa autorizzazione:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Per saperne di più sui ruoli IAM in BigQuery, vedi Ruoli e autorizzazioni predefiniti.

Assegnare un'organizzazione a una prenotazione

Console

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

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità.

  3. Fai clic sulla scheda Prenotazioni.

  4. Trova la prenotazione nella tabella delle prenotazioni.

  5. Espandi l'opzione Azioni.

  6. Fai clic su Crea compito.

  7. Nella sezione Crea un compito, fai clic su Sfoglia.

  8. Sfoglia o cerca l'organizzazione e selezionala.

  9. Nella sezione Tipo di job, seleziona un tipo di job da assegnare a questa prenotazione. Sono incluse le seguenti opzioni:

    • QUERY
    • CONTINUOUS
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

    Per saperne di più sui tipi di job, vedi Assegnazioni di prenotazioni. Il valore predefinito è QUERY.

    Per scoprire di più su come consentire agli utenti di utilizzare Gemini in BigQuery con le assegnazioni della versione Enterprise Plus, consulta Configurare Gemini in BigQuery.

  10. Fai clic su Crea.

SQL

Per assegnare un'organizzazione a una prenotazione, utilizza l'istruzione DDL CREATE ASSIGNMENT.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS (
      assignee = 'organizations/ORGANIZATION_ID',
      job_type = 'JOB_TYPE');

    Sostituisci quanto segue:

    • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione proprietario della risorsa di prenotazione
    • LOCATION: la posizione della prenotazione
    • RESERVATION_NAME: il nome della prenotazione
    • ASSIGNMENT_ID: l'ID dell'assegnazione

      L'ID deve essere univoco per il progetto e la località, iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini.

    • ORGANIZATION_ID: l'ID organizzazione
    • JOB_TYPE: il tipo di job da assegnare a questa prenotazione, ad esempio QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per assegnare i job di un'organizzazione a una prenotazione, utilizza il comando bq mk con il flag --reservation_assignment:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=ORGANIZATION_ID \
    --job_type=JOB_TYPE \
    --assignee_type=ORGANIZATION

Sostituisci quanto segue:

  • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione che possiede la risorsa di prenotazione
  • LOCATION: la posizione della prenotazione
  • RESERVATION_NAME: il nome della prenotazione
  • ORGANIZATION_ID: l'ID organizzazione
  • JOB_TYPE: il tipo di job da assegnare a questa prenotazione, ad esempio QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

Quando crei un'assegnazione di prenotazione, attendi almeno 5 minuti prima di eseguire una query. In caso contrario, la query potrebbe essere fatturata utilizzando i prezzi on demand.

Assegnare un progetto o una cartella a una prenotazione

Console

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

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità.

  3. Fai clic sulla scheda Prenotazioni.

  4. Trova la prenotazione nella tabella delle prenotazioni.

  5. Espandi l'opzione Azioni.

  6. Fai clic su Crea compito.

  7. Nella sezione Crea un compito, fai clic su Sfoglia.

  8. Sfoglia o cerca il progetto o la cartella e selezionalo.

  9. Nella sezione Tipo di job, seleziona un tipo di job da assegnare a questa prenotazione. Sono incluse le seguenti opzioni:

    • QUERY
    • CONTINUOUS
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

    Per saperne di più sui tipi di job, vedi Assegnazioni di prenotazioni. Il valore predefinito è QUERY.

  10. Fai clic su Crea.

SQL

Per assegnare un progetto a una prenotazione, utilizza l'istruzione DDL CREATE ASSIGNMENT.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="JOB_TYPE");

    Sostituisci quanto segue:

    • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione proprietario della risorsa di prenotazione
    • LOCATION: la posizione della prenotazione
    • RESERVATION_NAME: il nome della prenotazione
    • ASSIGNMENT_ID: l'ID dell'assegnazione

      L'ID deve essere univoco per il progetto e la località, iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini.

    • PROJECT_ID: l'ID del progetto da assegnare alla prenotazione
    • JOB_TYPE: il tipo di job da assegnare a questa prenotazione, ad esempio QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per assegnare job a una prenotazione, utilizza il comando bq mk con il flag --reservation_assignment:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=PROJECT_ID \
    --job_type=JOB_TYPE \
    --assignee_type=PROJECT

Sostituisci quanto segue:

  • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione che possiede la risorsa di prenotazione
  • LOCATION: la posizione della prenotazione
  • RESERVATION_NAME: il nome della prenotazione
  • PROJECT_ID: l'ID del progetto da assegnare a questa prenotazione
  • JOB_TYPE: il tipo di job da assegnare a questa prenotazione, ad esempio QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

Terraform

Utilizza la risorsa google_bigquery_reservation_assignment.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

L'esempio seguente assegna un progetto alla prenotazione denominata my-reservation:

resource "google_bigquery_reservation" "default" {
  name              = "my-reservation"
  location          = "us-central1"
  slot_capacity     = 100
  edition           = "ENTERPRISE"
  ignore_idle_slots = false # Use idle slots from other reservations
  concurrency       = 0     # Automatically adjust query concurrency based on available resources
  autoscale {
    max_slots = 200 # Allow the reservation to scale up to 300 slots (slot_capacity + max_slots) if needed
  }
}

data "google_project" "project" {}

resource "google_bigquery_reservation_assignment" "default" {
  assignee    = "projects/${data.google_project.project.project_id}"
  job_type    = "QUERY"
  reservation = google_bigquery_reservation.default.id
}

Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file viene denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel file main.tf appena creato.

    (Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
    terraform init

    (Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione di Terraform eseguendo il comando seguente e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).

  3. Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

Quando crei un'assegnazione di prenotazione, attendi almeno 5 minuti prima di eseguire una query. In caso contrario, la query potrebbe essere fatturata utilizzando i prezzi on demand.

Per creare un progetto che utilizzi solo slot inattivi, crea una prenotazione con slot 0 assegnati, poi segui i passaggi precedenti per assegnare il progetto a questa prenotazione.

Assegna un progetto a none

Compiti a none rappresentano l'assenza di un'assegnazione. I progetti assegnati a none utilizzano i prezzi on demand.

SQL

Per assegnare un progetto a none, utilizza l'istruzione DDL CREATE ASSIGNMENT.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.none.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="QUERY");

    Sostituisci quanto segue:

    • LOCATION: la posizione dei lavori che devono utilizzare i prezzi on demand
    • ASSIGNMENT_ID: l'ID dell'assegnazione

      L'ID deve essere univoco per il progetto e la località, iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini.

    • PROJECT_ID: l'ID del progetto da assegnare alla prenotazione

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per assegnare un progetto a none, utilizza il comando bq mk con il flag --reservation_assignment:

bq mk \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=none \
    --job_type=QUERY \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

Sostituisci quanto segue:

  • LOCATION: la posizione dei lavori che devono utilizzare i prezzi on demand
  • PROJECT_ID: l'ID del progetto da assegnare a none

Terraform

Utilizza la risorsa google_bigquery_reservation_assignment.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.

L'esempio seguente assegna un progetto a none:

data "google_project" "project" {}

resource "google_bigquery_reservation_assignment" "default" {
  assignee    = "projects/${data.google_project.project.project_id}"
  job_type    = "QUERY"
  reservation = "projects/${data.google_project.project.project_id}/locations/us/reservations/none"
}

Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.

Prepara la directory

Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file viene denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel file main.tf appena creato.

    (Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
    terraform init

    (Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione di Terraform eseguendo il comando seguente e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).

  3. Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

Eseguire l'override di una prenotazione in una query

Per richiedere assistenza o fornire un feedback su questa funzionalità, contatta bigquery-wlm-feedback@google.com.

Per utilizzare una prenotazione specifica in una query, devi disporre della seguente autorizzazione Identity and Access Management (IAM):

Per assegnare una query da eseguire in una prenotazione specifica, esegui una delle seguenti operazioni:

Console

  1. Vai alla pagina BigQuery.

    Vai a BigQuery

  2. Fai clic su Query SQL.

  3. Nell'editor di query, inserisci una query GoogleSQL valida.

  4. Fai clic su Altro, quindi fai clic su Impostazioni query.

  5. Deseleziona la casella di controllo Impostazione automatica della località e poi seleziona la regione o più regioni in cui si trova la prenotazione.

  6. Nell'elenco Prenotazione, seleziona la prenotazione in cui vuoi eseguire la query.

  7. Fai clic su Salva.

  8. Scrivi una query nella scheda Editor ed eseguila. La query viene eseguita nella prenotazione che hai specificato.

SQL

Puoi utilizzare la variabile di sistema @@reservation per assegnare la prenotazione in cui viene eseguita la query:

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    SET @@reservation='RESERVATION';
    SELECT QUERY;

    Sostituisci quanto segue:

    • RESERVATION: la prenotazione in cui vuoi eseguire la query.

    • QUERY: la query che vuoi eseguire.

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

Ad esempio, la seguente query utilizza l'istruzione SET per impostare la prenotazione su test-reservation nella multiregione US, quindi chiama una query di base:

SET @@reservation='projects/project1/locations/US/reservations/test-reservation';
SELECT 42;

bq

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. In Cloud Shell, esegui la query utilizzando il comando bq query con il flag --reservation_id:

    bq query --use_legacy_sql=false --reservation_id=RESERVATION_ID
    'QUERY'

    Sostituisci quanto segue:

    • RESERVATION_ID: la prenotazione in cui vuoi eseguire la query.

    • QUERY: l'istruzione SQL per la query.

    Ad esempio, la seguente query viene eseguita nella prenotazione test-reservation nella località multiregionale US:

    bq query --reservation_id=project1.US:test-reservation 'SELECT 42;'

API

Per specificare una prenotazione utilizzando l'API, inserisci un nuovo job e compila la proprietà di configurazione del job query. Specifica la tua prenotazione nel campo reservation.

Assegna un'assegnazione di prenotazione in una query a none

L'assegnazione di un'assegnazione di prenotazione in una query a none forza il job a utilizzare la fatturazione on demand (nessuna prenotazione), anche se esiste un'assegnazione di prenotazione predefinita. Per assegnare una prenotazione a none:

SQL

Puoi utilizzare la variabile di sistema @@reservation per assegnare la prenotazione in cui viene eseguita la query a none:

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    SET @@reservation='none';
    SELECT QUERY;

    Sostituisci quanto segue:

    • QUERY: la query che vuoi eseguire.

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

Ad esempio, la seguente query utilizza l'istruzione SET per forzare l'utilizzo della fatturazione on demand, quindi chiama una query di base:

SET @@reservation='none';
SELECT 42;

bq

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. In Cloud Shell, esegui la query utilizzando il comando bq query con il flag --reservation_id:

    bq query --use_legacy_sql=false --reservation_id = none
    'QUERY'

    Sostituisci quanto segue:

    • QUERY: l'istruzione SQL per la query.

    Ad esempio, il seguente comando forza la query a utilizzare la fatturazione on demand, quindi chiama una query di base:

    bq query --reservation_id=none 'SELECT 42;'

API

Per specificare una prenotazione utilizzando l'API, inserisci un nuovo job e compila la proprietà di configurazione del job query. Specifica la prenotazione come none nel campo reservation.

Assegnare slot ai carichi di lavoro BigQuery ML

Le sezioni seguenti forniscono informazioni sui requisiti di assegnazione delle prenotazioni per i modelli BigQuery ML. Puoi creare queste assegnazioni di prenotazione seguendo le procedure descritte in Assegnare un'organizzazione a una prenotazione o Assegnare un progetto o una cartella a una prenotazione.

Modelli esterni

I seguenti tipi di modelli BigQuery ML utilizzano servizi esterni:

Puoi assegnare slot riservati alle query utilizzando questi servizi creando un'assegnazione di prenotazione che utilizza il tipo di job ML_EXTERNAL. Se non viene trovato alcun assegnazione di prenotazione con un tipo di job ML_EXTERNAL, il job di query viene eseguito utilizzando i prezzi on demand.

Per i job di addestramento di modelli esterni, gli slot nell'assegnazione della prenotazione vengono utilizzati per i passaggi di pre-elaborazione, addestramento e post-elaborazione. Durante l'addestramento, gli slot non sono preemptive, ma durante la pre-elaborazione e la post-elaborazione, possono essere utilizzati gli slot inattivi.

Modelli di fattorizzazione matriciale

Per creare un modello di fattorizzazione matriciale devi creare una prenotazione che utilizzi BigQuery Enterprise o Enterprise Plus, e poi creare un'assegnazione di prenotazione che utilizzi il tipo di job QUERY.

Altri tipi di modelli

Per i modelli BigQuery ML che non sono modelli esterni o di fattorizzazione delle matrici, puoi assegnare slot riservati alle query che utilizzano questi servizi creando un'assegnazione di prenotazione che utilizza il tipo di job QUERY. Se non viene trovata alcuna assegnazione di prenotazione con un tipo di job QUERY, il job di query viene eseguito utilizzando i prezzi on demand.

Trovare le assegnazioni di prenotazione

Autorizzazioni obbligatorie

Per cercare un'assegnazione di prenotazione per un determinato progetto, cartella o organizzazione, devi disporre della seguente autorizzazione Identity and Access Management (IAM):

  • bigquery.reservationAssignments.list sul progetto di amministrazione.

Ognuno dei seguenti ruoli IAM predefiniti include questa autorizzazione:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor
  • BigQuery Resource Viewer
  • BigQuery User

Per saperne di più sui ruoli IAM in BigQuery, vedi Ruoli e autorizzazioni predefiniti.

Trovare l'assegnazione di prenotazione di un progetto

Per scoprire se il tuo progetto, la tua cartella o la tua organizzazione è assegnato a una prenotazione, segui questi passaggi:

Console

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

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità.

  3. Fai clic sulla scheda Prenotazioni.

  4. Nella tabella delle prenotazioni, espandi una prenotazione per vedere quali risorse sono assegnate a quella prenotazione oppure utilizza il campo Filtro per filtrare per nome risorsa.

SQL

Per scoprire a quale prenotazione sono assegnati i job di query del tuo progetto, esegui una query sulla visualizzazione INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

      SELECT
        assignment_id
      FROM `region-LOCATION`.INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT
      WHERE
        assignee_id = 'PROJECT_ID'
        AND job_type = 'JOB_TYPE';

    Sostituisci quanto segue:

    • LOCATION: la posizione delle prenotazioni da visualizzare
    • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione proprietario della risorsa di prenotazione
    • PROJECT_ID: l'ID del progetto da assegnare alla prenotazione
    • JOB_TYPE: il tipo di job da assegnare a questa prenotazione, ad esempio QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per scoprire a quale prenotazione sono assegnati i job di query del tuo progetto, utilizza il comando bq show con il flag --reservation_assignment:

bq show \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --job_type=JOB_TYPE \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

Sostituisci quanto segue:

  • ADMIN_PROJECT_ID: l'ID del progetto proprietario della risorsa di prenotazione
  • LOCATION: la posizione delle prenotazioni da visualizzare
  • JOB_TYPE: il tipo di job da assegnare a questa prenotazione, ad esempio QUERY, CONTINUOUS, PIPELINE, BACKGROUND o ML_EXTERNAL
  • PROJECT_ID: l'ID del progetto

Aggiornamento delle assegnazioni di prenotazione

Spostare un'assegnazione in un'altra prenotazione

Puoi spostare un incarico da una prenotazione a un'altra.

Per spostare un'assegnazione di prenotazione, devi disporre delle seguenti autorizzazioni Identity and Access Management (IAM) per il progetto di amministrazione e l'assegnatario.

  • bigquery.reservationAssignments.create
  • bigquery.reservationAssignments.delete

Ognuno dei seguenti ruoli IAM predefiniti include queste autorizzazioni:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Per saperne di più sui ruoli IAM in BigQuery, vedi Ruoli e autorizzazioni predefiniti.

Per spostare un'assegnazione, utilizza il comando bq update:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --destination_reservation_id=DESTINATION_RESERVATION \
    ADMIN_PROJECT_ID:LOCATION.RESERVATION_NAME.ASSIGNMENT_ID

Sostituisci quanto segue:

  • ADMIN_PROJECT_ID: l'ID del progetto proprietario della risorsa di prenotazione
  • LOCATION: la posizione della nuova prenotazione
  • RESERVATION_NAME: la prenotazione da cui spostare l'assegnazione
  • DESTINATION_RESERVATION: la prenotazione a cui spostare l'assegnazione
  • ASSIGNMENT_ID: l'ID dell'assegnazione

    Per ottenere l'ID assegnazione, consulta Elenca l'assegnazione di una prenotazione di un progetto.

Eliminazione assegnazioni di prenotazione

Puoi rimuovere un progetto da una prenotazione eliminando l'assegnazione della prenotazione. Se un progetto non è assegnato ad alcuna prenotazione, eredita le assegnazioni nelle cartelle o nelle organizzazioni principali oppure utilizza i prezzi on demand se non sono presenti assegnazioni principali.

Quando elimini un'assegnazione di prenotazione, i job in esecuzione con slot della prenotazione continuano a essere eseguiti fino al completamento.

Autorizzazioni obbligatorie

Per eliminare un'assegnazione di prenotazione, devi disporre della seguente autorizzazione Identity and Access Management (IAM):

Ognuno dei seguenti ruoli IAM predefiniti include questa autorizzazione:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Rimuovere un progetto da una prenotazione

Per rimuovere un progetto da una prenotazione:

Console

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

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità.

  3. Fai clic sulla scheda Prenotazioni.

  4. Nella tabella delle prenotazioni, espandi la prenotazione per trovare il progetto.

  5. Espandi l'opzione Azioni.

  6. Fai clic su Elimina.

SQL

Utilizza l'istruzione DDL DROP ASSIGNMENT.

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

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    DROP ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`;

    Sostituisci quanto segue:

  3. Fai clic su Esegui.

Per maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Per rimuovere un progetto da una prenotazione, utilizza il comando bq rm con il flag --reservation_assignment:

bq rm \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment RESERVATION_NAME.ASSIGNMENT_ID

Sostituisci quanto segue: