Utilizzare l'API Storage Write (REST)

Questo documento descrive come trasmettere i dati in streaming in BigQuery utilizzando l'API BigQuery Storage Write (REST), precedentemente nota come metodo legacy tabledata.insertAll.

Per i nuovi progetti, consigliamo di utilizzare l'API BigQuery Storage Write (gRPC) anziché l'API Storage Write (REST). L'API Storage Write (gRPC) offre prezzi inferiori e funzionalità più robuste, tra cui la semantica di consegna "exactly-once" e lo streaming nelle tabelle gestite Apache Iceberg. Se stai eseguendo la migrazione di un progetto esistente dall'API Storage Write (REST) all'API Storage Write (gRPC), ti consigliamo di selezionare lo stream predefinito. L'API Storage Write (REST) è ancora completamente supportata.

Prima di iniziare

  1. Assicurati di disporre dell'accesso in scrittura al set di dati che contiene la tabella di destinazione. La tabella deve esistere prima di iniziare a scrivervi i dati, a meno che tu non stia utilizzando tabelle modello. Per saperne di più sulle tabelle modello, vedi Creare tabelle automaticamente utilizzando le tabelle modello.

  2. Consulta le norme relative alle quote per i dati di streaming.

  3. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  4. Lo streaming non è disponibile tramite il livello senza costi. Se tenti di utilizzare lo streaming senza attivare la fatturazione, ricevi il seguente errore: BigQuery: Streaming insert is not allowed in the free tier.

  5. Concedi i ruoli Identity and Access Management (IAM) che forniscono agli utenti le autorizzazioni necessarie per eseguire ogni attività descritta in questo documento.

Autorizzazioni obbligatorie

Per trasmettere dati in streaming in BigQuery, devi disporre delle seguenti autorizzazioni IAM:

  • bigquery.tables.updateData (consente di inserire dati nella tabella)
  • bigquery.tables.get (consente di ottenere i metadati della tabella)
  • bigquery.datasets.get (consente di ottenere i metadati del set di dati)
  • bigquery.tables.create (obbligatorio se utilizzi una tabella modello per creare automaticamente la tabella)

Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per trasmettere dati in streaming in BigQuery:

  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.admin

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

Trasmetti flussi di dati in BigQuery

C#

Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery C#.

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


using Google.Cloud.BigQuery.V2;

public class BigQueryTableInsertRows
{
    public void TableInsertRows(
        string projectId = "your-project-id",
        string datasetId = "your_dataset_id",
        string tableId = "your_table_id"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        BigQueryInsertRow[] rows = new BigQueryInsertRow[]
        {
            // The insert ID is optional, but can avoid duplicate data
            // when retrying inserts.
            new BigQueryInsertRow(insertId: "row1") {
                { "name", "Washington" },
                { "post_abbr", "WA" }
            },
            new BigQueryInsertRow(insertId: "row2") {
                { "name", "Colorado" },
                { "post_abbr", "CO" }
            }
        };
        client.InsertRows(datasetId, tableId, rows);
    }
}

Go

Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.

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