Sincronizzare i dati BigQuery con AlloyDB

Per fornire alle tue applicazioni operative un accesso transazionale a bassa latenza ai tuoi dati analitici, sincronizza le tabelle di BigQuery con la tua istanza AlloyDB per PostgreSQL. A differenza di un wrapper di dati esterni (FDW), che esegue query sui dati in BigQuery, la funzionalità di sincronizzazione copia i dati nello spazio di archiviazione di AlloyDB in modo che le query leggano dalle tabelle locali per migliorare le prestazioni.

AlloyDB offre i seguenti modi per spostare i dati di BigQuery nella tua istanza:

  • Sincronizzazione una tantum: crea una copia indipendente e scrivibile della tua tabella BigQuery.

  • Sincronizzazione o mirroring periodici: crea una tabella locale di sola lettura che si aggiorna automaticamente in base a una pianificazione, ad esempio ogni 6 ore o ogni giorno.

Considerazioni su prestazioni e operazioni

Quando utilizzi le tabelle di sincronizzazione di BigQuery, tieni presente quanto segue:

  • Utilizzo delle risorse: lo spostamento dei dati consuma CPU e memoria. Per tabelle molto grandi, valuta la possibilità di pianificare le sincronizzazioni durante le ore non di punta per evitare di influire sul workload transazionale principale.
  • Visibilità dei dati: durante un'operazione di sostituzione, la tabella di destinazione esistente viene eliminata e ricreata in anticipo. Le query durante l'importazione vedono inizialmente una tabella vuota, seguita dai dati appena importati che vengono visualizzati in modo incrementale man mano che vengono eseguite le transazioni batch.

Prima di iniziare

  1. Imposta il flag di database alloydb_sync.enabled=on sull'istanza AlloyDB. Per saperne di più, consulta Configura i flag di database di un'istanza.
  2. Acquisisci familiarità con il modo in cui bigquery_fdw gestisce i tipi di dati e le mappature delle colonne di BigQuery, perché l'estensione alloydb_sync utilizza bigquery_fdw per connettersi a BigQuery.
  3. 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

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

  5. Abilitare le API Cloud necessarie per creare e connettersi ad AlloyDB.

    Abilita le API

    1. Per confermare il nome del progetto a cui apporterai modifiche, nel passaggio Conferma progetto, fai clic su Avanti.

    2. Nel passaggio Abilita API, fai clic su Abilita per abilitare quanto segue:

      • API AlloyDB
      • API Compute Engine
      • API Cloud Resource Manager
      • API Service Networking
      • API BigQuery Storage

      L'API Service Networking è obbligatoria se prevedi di configurare la connettività di rete ad AlloyDB utilizzando una rete VPC che si trova nello stesso progetto Google Cloud di AlloyDB.

      L'API Compute Engine e l'API Cloud Resource Manager sono necessarie se prevedi di configurare la connettività di rete ad AlloyDB utilizzando una rete VPC che si trova in un progetto Google Cloud diverso.

  6. Assicurati di avere una tabella BigQuery esistente da cui sincronizzare i dati. Per saperne di più, consulta Crea e utilizza le tabelle BigQuery.

Ruoli obbligatori

Per concedere l'accesso al set di dati BigQuery al account di servizio del cluster AlloyDB, devi disporre delle seguenti autorizzazioni:

  • BigQuery Data Viewer (roles/bigquery.dataViewer) o qualsiasi ruolo personalizzato con le autorizzazioni bigquery.tables.get e bigquery.tables.getData. Se concesso a un account di servizio, questo ruolo fornisce le autorizzazioni per leggere dati e metadati dalla tabella o dalla vista.
  • Utente sessione di lettura BigQuery (roles/bigquery.readSessionUser) o qualsiasi ruolo personalizzato con le autorizzazioni bigquery.readsessions.create e bigquery.readsessions.getData. Consente di creare e utilizzare sessioni di lettura.
  • Utente job BigQuery (roles/bigquery.jobUser) o qualsiasi ruolo personalizzato con autorizzazioni bigquery.jobs.create. Offre la possibilità di creare ed eseguire job, inclusi i job di query. Se fornisci un progetto di runtime separato, il job viene eseguito in quel progetto anziché nel progetto di dati. Ciò significa che devi concedere il ruolo Job User nel progetto di runtime.

Configurare l'estensione

Prima di sincronizzare le tabelle da BigQuery, abilita l'estensione richiesta e configura la connessione a BigQuery. Se utilizzi la console Google Cloud , AlloyDB esegue questi passaggi automaticamente.

  1. Crea l'estensione.

    1. Connettiti all'istanza AlloyDB utilizzando il client psql seguendo le istruzioni riportate in Connetti un client psql a un'istanza.
    2. Esegui questo comando:

      CREATE EXTENSION IF NOT EXISTS alloydb_sync;
      
  2. Per consentire ad AlloyDB di autenticarsi con BigQuery, crea il server esterno e la mappatura utente:

    CREATE EXTENSION IF NOT EXISTS bigquery_fdw;
    CREATE SERVER IF NOT EXISTS bigquery_server FOREIGN DATA WRAPPER bigquery_fdw
      OPTIONS (runtime_project 'RUNTIME_PROJECT_ID');
    CREATE USER MAPPING IF NOT EXISTS FOR USER SERVER bigquery_server;
    

    Sostituisci quanto segue:

    • RUNTIME_PROJECT_ID: facoltativo. L'ID del progettoGoogle Cloud che elabora la query e matura i costi di computing. Se omesso, le query vengono addebitate al progetto che archivia i dati.
    • USER: un nome utente del database o un utente IAM che accede alla tabella BigQuery.

Sincronizza una tabella BigQuery per l'esportazione una tantum

Puoi sincronizzare una tabella BigQuery per l'esportazione una tantum utilizzando la consoleGoogle Cloud o psql.

Utilizza la console Google Cloud

Per sincronizzare una tabella BigQuery con AlloyDB utilizzando la consoleGoogle Cloud , segui questi passaggi:

  1. Apri la pagina BigQuery nella console Google Cloud .

    Vai alla pagina BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

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

  3. Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati, quindi sul set di dati.

  4. Fai clic su Panoramica > Tabelle, quindi seleziona una tabella.

  5. Nel riquadro dei dettagli, fai clic su Altro > Esporta o sincronizza in AlloyDB.

  6. In Scegli un progetto, seleziona il progetto per il tuo cluster AlloyDB. Se disponi delle autorizzazioni necessarie, puoi selezionare un progetto diverso da quello BigQuery corrente.

  7. In Scegli un cluster di destinazione, seleziona una delle seguenti opzioni:

    • Seleziona Utilizza un cluster esistente per esportare la tabella BigQuery in un cluster AlloyDB esistente. Poi:

      1. Seleziona il cluster AlloyDB principale.

      2. Seleziona il database AlloyDB di destinazione.

      3. Seleziona lo schema per la tabella AlloyDB di destinazione.

      4. Specifica un nome per la tabella AlloyDB di destinazione.

      5. In Frequenza di sincronizzazione, seleziona Solo una volta per creare una copia della tabella BigQuery.

      6. Fai clic su Configura esportazione.

      Al termine della configurazione della sincronizzazione, puoi utilizzare le istruzioni SQL fornite per monitorare il job di importazione ed eseguire query sulle tabelle importate. Fai clic su Query per essere indirizzato alla tabella importata in AlloyDB Studio.

    • Seleziona Crea un nuovo cluster per esportare la tabella BigQuery in un nuovo cluster AlloyDB. Quindi:

      1. Fai clic su Configura esportazione.

      2. Nella finestra di dialogo Reindirizza ad AlloyDB, seleziona Reindirizza.

      3. Per il tipo di cluster, seleziona Cluster sottoposto a provisioning.

      4. Fai clic su Continua.

      5. In Configurazione sincronizzazione, seleziona il database AlloyDB di destinazione postgres predefinito, lo schema public predefinito per la tabella AlloyDB di destinazione e specifica un nome per la tabella AlloyDB di destinazione.

        In Frequenza di sincronizzazione, seleziona Solo una volta per creare una copia della tabella BigQuery.

      6. Fai clic su Continua.

      7. Configura il cluster. Per saperne di più su ciascun campo, consulta Crea un nuovo cluster e un'istanza principale.

      8. Fai clic su Crea cluster.

      Al termine della configurazione della sincronizzazione, vai ad AlloyDB Studio per eseguire query sulle tabelle importate.

Sincronizza una tabella BigQuery una sola volta utilizzando psql

Per creare una copia modificabile dei dati BigQuery, utilizza psql per eseguire la funzione alloydb_sync.import_bq_table.

SELECT alloydb_sync.import_bq_table(
  'PROJECT_ID.DATASET_ID.TABLE_ID',
  'ALLOYDB_DESTINATION_TABLE_NAME',
  'ON_EXISTS',
  ARRAY['PRIMARY_KEY_COLUMN']
);

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova il set di dati BigQuery.
  • DATASET_ID: il nome del set di dati BigQuery per la tabella. Per le tabelle Iceberg con un nome composto da quattro parti, si tratta di Catalog.Namespace.
  • TABLE_ID: il nome della tabella o della vista BigQuery.
  • ALLOYDB_DESTINATION_TABLE_NAME: il nome della tabella locale nel database AlloyDB in cui creare e importare i dati. Puoi includere il nome dello schema, ad esempio public.local_sales.
  • ON_EXISTS: la strategia da utilizzare se la tabella di destinazione esiste già.
  • PRIMARY_KEY_COLUMN: un elenco facoltativo di nomi di colonne da utilizzare come chiave primaria.

Esempio

L'esempio seguente mostra come sincronizzare una tabella denominata transactions da un set di dati BigQuery in una nuova tabella AlloyDB denominata public.local_sales:

SELECT alloydb_sync.import_bq_table(
    'my-gcp-project.sales_data.transactions',
    'public.local_sales',
    'replace'
);
Parametro on_exists

Il parametro on_exists determina il modo in cui la funzione gestisce la sincronizzazione se la tabella di destinazione esiste già in AlloyDB:

  • error: l'opzione predefinita. Interrompe la sincronizzazione se la tabella di destinazione esiste già.
  • skip: salta la sincronizzazione se la tabella di destinazione esiste già.
  • replace: sostituisce la tabella locale esistente con i dati aggiornati di BigQuery.
Supporto delle chiavi primarie

Se fornisci il parametro facoltativo primary_key come array di testo, AlloyDB crea la tabella con le colonne specificate come chiave primaria.

SELECT alloydb_sync.import_bq_table(
    'my-gcp-project.sales_data.transactions',
    'public.local_sales',
    ARRAY['transaction_id']
);

Sincronizza una tabella BigQuery per l'esportazione periodica

Puoi sincronizzare una tabella BigQuery per l'esportazione periodica utilizzando la consoleGoogle Cloud o psql.

Utilizza la console Google Cloud

Per sincronizzare una tabella BigQuery con AlloyDB utilizzando la consoleGoogle Cloud , segui questi passaggi:

  1. Apri la pagina BigQuery nella console Google Cloud .

    Vai alla pagina BigQuery

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

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

  3. Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati, quindi sul set di dati.

  4. Fai clic su Panoramica > Tabelle, quindi seleziona una tabella.

  5. Nel riquadro dei dettagli, fai clic su Altro > Esporta o sincronizza in AlloyDB.

  6. In Scegli un progetto, seleziona il progetto per il tuo cluster AlloyDB. Se disponi delle autorizzazioni necessarie, puoi selezionare un progetto diverso da quello BigQuery corrente.

  7. In Scegli un cluster di destinazione, seleziona una delle seguenti opzioni:

    • Seleziona Utilizza un cluster esistente per esportare la tabella BigQuery in un cluster AlloyDB esistente. Poi:

      1. Seleziona il cluster AlloyDB principale.

      2. Seleziona il database AlloyDB di destinazione.

      3. Seleziona lo schema per la tabella AlloyDB di destinazione.

      4. Specifica un nome per la tabella AlloyDB di destinazione.

      5. In Frequenza di sincronizzazione, seleziona un periodo di tempo per creare una sincronizzazione periodica della tabella BigQuery, ad esempio Ogni ora, Ogni sei ore.

      6. Fai clic su Configura esportazione.

      Al termine della configurazione della sincronizzazione, puoi utilizzare le istruzioni SQL fornite per monitorare il job di importazione ed eseguire query sulla tabella importata. Fai clic su Query per essere indirizzato alla tabella importata in AlloyDB Studio.

    • Seleziona Crea un nuovo cluster per esportare la tabella BigQuery in un nuovo cluster AlloyDB. Quindi:

      1. Fai clic su Configura esportazione.

      2. Nella finestra di dialogo Reindirizza ad AlloyDB, seleziona Reindirizza.

      3. Per il tipo di cluster, seleziona Cluster sottoposto a provisioning.

      4. Fai clic su Continua.

      5. In Configurazione sincronizzazione, seleziona il database AlloyDB di destinazione postgres predefinito, lo schema public predefinito per la tabella AlloyDB di destinazione e specifica un nome per la tabella AlloyDB di destinazione.

        In Frequenza di sincronizzazione, seleziona Solo una volta per creare una copia della tabella BigQuery.

      6. Fai clic su Continua.

      7. Configura il cluster. Per saperne di più su ciascun campo, consulta Crea un nuovo cluster e un'istanza principale.

      8. Fai clic su Crea cluster.

      Al termine della configurazione della sincronizzazione, vai ad AlloyDB Studio per eseguire query sulle tabelle importate.

Crea una sincronizzazione periodica

Per mantenere una tabella di sola lettura sincronizzata con i dati di BigQuery, utilizza psql per eseguire la funzione alloydb_sync.create_bq_sync_table.

SELECT alloydb_sync.create_bq_sync_table(
    'PROJECT_ID.DATASET_ID.TABLE_ID',
    'ALLOYDB_DESTINATION_TABLE_NAME',
    'REFRESH_INTERVAL',
    'ON_EXISTS',
    ARRAY['PRIMARY_KEY_COLUMN']
);

Sostituisci quanto segue:

  • PROJECT_ID.DATASET_ID.TABLE_ID: il nome completo della tabella o della vista BigQuery, inclusi l'ID progetto, l'ID set di dati e l'ID tabella, separati da punti. Per le tabelle Iceberg con un nome composto da quattro parti, DATASET_ID è rappresentato come Catalog.Namespace. Ad esempio: my-gcp-project.sales_data.transactions.
  • ALLOYDB_DESTINATION_TABLE_NAME: il nome della tabella locale nel database AlloyDB in cui creare e sincronizzare i dati.
  • REFRESH_INTERVAL: l'intervallo con cui AlloyDB aggiorna periodicamente i dati da BigQuery, ad esempio 12 hours.
  • ON_EXISTS: la strategia da utilizzare se la tabella di destinazione esiste già.
  • PRIMARY_KEY_COLUMN: un elenco facoltativo di nomi di colonne da utilizzare come chiave primaria.

Esempio

L'esempio seguente mostra come creare un mirror del profilo cliente che si aggiorna ogni 12 ore:

SELECT alloydb_sync.create_bq_sync_table(
    'my-gcp-project.crm_data.profiles',
    'public.customer_mirror',
    '12 hours',
    'replace'
);

Monitora e gestisci i job

Dopo aver avviato una sincronizzazione, puoi monitorarne l'avanzamento e gestire i job.

Verifica dello stato di un job

Le sincronizzazioni di grandi dimensioni possono richiedere del tempo. Puoi monitorare l'avanzamento, inclusi i record elaborati e il tempo di completamento stimato, eseguendo una query sulla vista job_status:

SELECT
    import_id,
    status,
    records_processed,
    total_records,
    error_message
FROM alloydb_sync.job_status;

Ad esempio, per annullare il job, esegui questo comando:

SELECT alloydb_sync.cancel_import_job('85bb5dfa-dfb9-4017-9153-738f55abe4b1');

Interrompi ed elimina un job di sincronizzazione

Per interrompere il mirroring di una tabella BigQuery ed eliminare la tabella locale, utilizza la funzione alloydb_sync.delete_bq_sync_table:

SELECT alloydb_sync.delete_bq_sync_table('public.customer_mirror');

Mappature dei tipi di dati

Quando sincronizzi o importi dati da BigQuery ad AlloyDB utilizzando l'estensione alloydb_sync, AlloyDB mappa i tipi di dati BigQuery ai tipi di dati PostgreSQL corrispondenti nella tabella di destinazione.

Verifica che le colonne della tabella BigQuery di origine utilizzino i tipi di dati supportati elencati nella tabella seguente:

Tipi di dati delle tabelle BigQuery Tipi di dati PostgreSQL
BOOLEAN BOOLEAN
INTEGER (INT64) BIGINT
FLOAT (FLOAT64) DOUBLE PRECISION
STRING TEXT
NUMERIC NUMERIC
BIGNUMERIC NUMERIC
DATE DATE
TIMESTAMP TIMESTAMPTZ
TIME TIME
DATETIME TIMESTAMP
JSON JSONB
BYTES BYTEA

Limitazioni

Quando sincronizzi le tabelle da BigQuery, si applicano le seguenti limitazioni:

  • Questa funzionalità è supportata solo per PostgreSQL versione 18.
  • Questa funzionalità richiede il flag di database alloydb_sync.enabled=on sull'istanza.
  • Quando configuri il server esterno bigquery_fdw e la mappatura degli utenti in un database, devi assegnare al server esterno il nome bigquery_server.
  • I tipi di dati BigQuery complessi come ARRAY, STRUCT, VECTOR, GEOGRAPHY, RANGE e INTERVAL non sono supportati per la sincronizzazione. I tipi di dati BigQuery parametrizzati come STRING(L), BYTES(L), NUMERIC(P, S) e BIGNUMERIC(P, S) vengono mappati a TEXT. Per saperne di più, consulta i tipi di dati BigQuery e le mappature delle colonne supportati.
  • Quando specifichi il parametro primary_key, l'elenco separato da virgole dei nomi delle colonne della chiave primaria non deve superare i 1023 byte. Inoltre, i nomi e i valori delle colonne della chiave primaria serializzata in JSON per una riga non devono superare i 255 byte.
  • Per le tabelle di sincronizzazione periodica create con la funzione alloydb_sync.create_bq_sync_table, il parametro refresh_interval non supporta mesi o anni. Specifica l'intervallo come numero intero di giorni, ore inferiori a 24, minuti inferiori a 60 o secondi inferiori a 60. Gli intervalli con unità miste, ad esempio 1 hour 30 minutes o 90 minutes, vengono troncati al numero intero dell'unità di tempo più grande, ad esempio 1 hour.
  • Solo l'utente del database che ha avviato un job di sincronizzazione o ha creato una tabella di sincronizzazione periodica può eseguire le seguenti operazioni:

    • Visualizza il job nella visualizzazione alloydb_sync.job_status
    • Annulla il job con la funzione alloydb_sync.cancel_import_job
    • Elimina la tabella di sincronizzazione con la funzione alloydb_sync.delete_bq_sync_table
  • I job di sincronizzazione eseguono il commit dei dati in modo incrementale in batch anziché in una singola transazione. Durante un'operazione replace, la tabella di destinazione viene eliminata e ricreata prima del caricamento dei dati, pertanto le query simultanee vedono una tabella vuota o parzialmente compilata fino al termine del job. Se un job di importazione non va a buon fine o viene annullato prima del completamento, nel database rimangono le righe importate parzialmente e una definizione di tabella esterna interna. Per eseguire il recupero, esegui nuovamente l'importazione con il parametro on_exists impostato su replace.

  • Se si verifica un'interruzione durante l'importazione iniziale in background per una tabella di sincronizzazione periodica appena registrata, la tabella rimane incompleta fino al successivo intervallo di aggiornamento pianificato.

  • I comandi DROP DATABASE standard non vanno a buon fine mentre il worker del tracker dei job in background è connesso a un database con tabelle di sincronizzazione periodica o attività di sincronizzazione negli ultimi 10 secondi.

  • Nei database in cui non sono configurate tabelle di sincronizzazione periodica utilizzando la funzione alloydb_sync.create_bq_sync_table, il worker del tracker dei job in background si arresta dopo 10 secondi di inattività. Il worker alloca un nuovo segmento di memoria condivisa dinamica alla chiamata di funzione alloydb_sync.import_bq_table successiva o quando l'estensione alloydb_sync viene eliminata e ricreata. L'esecuzione di un numero elevato di importazioni isolate una tantum separate da periodi di inattività senza una tabella di sincronizzazione periodica attiva può esaurire gli slot di memoria condivisa, richiedendo il riavvio dell'istanza.

Best practice

Segui queste best practice per configurare e gestire le sincronizzazioni delle tabelle da BigQuery:

  • Esegui l'istruzione CREATE EXTENSION IF NOT EXISTS alloydb_sync CASCADE; nella sua transazione sottoposta a commit prima di chiamare qualsiasi funzione di sincronizzazione.
  • Evita di modificare la tabella BigQuery di origine durante un'importazione. Se la tabella di origine viene aggiornata contemporaneamente, un job di sincronizzazione potrebbe importare i dati aggiornati.
  • Specifica un nome della tabella di destinazione coerente e qualificato per lo schema, ad esempio public.my_table, quando chiami le funzioni alloydb_sync.import_bq_table, alloydb_sync.create_bq_sync_table o alloydb_sync.delete_bq_sync_table. Non avviare più job di sincronizzazione per la stessa tabella di destinazione contemporaneamente. Se sincronizzi tabelle in più database nello stesso cluster, utilizza nomi di schemi o tabelle distinti nei database.
  • Quando crei una tabella di sincronizzazione periodica con la funzione alloydb_sync.create_bq_sync_table, imposta il parametro on_exists su replace in modo che gli aggiornamenti pianificati aggiornino la tabella di destinazione. Specifica il parametro refresh_interval come singola unità intera di giorni, ore inferiori a 24, minuti inferiori a 60 o secondi inferiori a 60.
  • Quando importi tabelle BigQuery molto grandi, aumenta il valore del flag di database temp_file_limit e, facoltativamente, il valore del flag work_mem nell'istanza, in modo che l'importazione non superi il limite di dimensioni dei file temporanei. Durante un'importazione, le righe in entrata vengono memorizzate nel buffer fino al limite work_mem e poi inserite in una fase temporanea nei file temporanei PostgreSQL locali prima del completamento dei commit batch.
  • Non eseguire manualmente l'istruzione DROP TABLE su una tabella di sincronizzazione replicata o su una tabella con un'importazione attiva. Per interrompere un'importazione in corso, esegui prima la funzione alloydb_sync.cancel_import_job come utente del database che ha avviato il job. Per rimuovere una tabella di sincronizzazione periodica e la relativa pianificazione, utilizza la funzione alloydb_sync.delete_bq_sync_table e passa il nome esatto della tabella di destinazione che hai utilizzato durante la creazione della tabella di sincronizzazione.
  • Se un'importazione una tantum non va a buon fine o viene annullata prima del completamento, esegui nuovamente la funzione alloydb_sync.import_bq_table con il parametro on_exists impostato su replace. Se l'importazione in background iniziale per una tabella di sincronizzazione periodica appena registrata viene interrotta e vuoi risolverla immediatamente anziché attendere l'aggiornamento programmato successivo, elimina la tabella di sincronizzazione utilizzando la funzione alloydb_sync.delete_bq_sync_table e ricreala.
  • Se gli slot dei worker in background in max_worker_processes sono esauriti quando un job viene avviato o se il database si arresta in modo anomalo mentre un'importazione è in coda o in esecuzione, i metadati del job potrebbero rimanere bloccati nello stato QUEUED o RUNNING e bloccare le importazioni future in quella tabella. Per sbloccare la tabella, aggiorna lo stato del job come utente del database che ha avviato il job eseguendo questo comando:

    UPDATE alloydb_sync.import_job_status
    SET status = 'FAILED'
    WHERE status IN ('QUEUED', 'RUNNING');
    
  • Per eliminare un database con tabelle di sincronizzazione periodica o attività di sincronizzazione recente, esegui DROP DATABASE DATABASE_NAME WITH (FORCE) o elimina prima tutte le tabelle di sincronizzazione e attendi almeno 10 secondi per l'uscita del worker del tracker in background. Puoi verificare se il worker è ancora connesso al database eseguendo una query sulla vista pg_stat_activity:

    SELECT pid, datname, backend_type
    FROM pg_stat_activity
    WHERE datname = 'DATABASE_NAME'
      AND backend_type = 'job_tracker';
    

    Sostituisci DATABASE_NAME con il nome del database.

Prezzi

Quando sincronizzi i dati da BigQuery ad AlloyDB, ti vengono addebitati i costi in base ai prezzi delle letture in modalità flusso di BigQuery (API Storage Read).

Dopo l'esportazione dei dati, ti verrà addebitato il costo per l'archiviazione dei dati in AlloyDB. Per ulteriori informazioni, consulta la sezione Prezzi di AlloyDB per PostgreSQL.

Passaggi successivi