Vai al contenuto
All articles
Setup

Data warehouse: esportazione verso BigQuery, Snowflake e Redshift

Invia gli oggetti del CRM (lead, contatti, opportunità…) al tuo data warehouse. BigQuery è automatico; Snowflake e Redshift usano file + COPY.

L'integrazione Data Warehouse ESPORTA gli oggetti del tuo CRM verso il warehouse DELLA TUA azienda (modello "bring your own account", o BYO). Il warehouse è tuo: non c'è costo, margine o intermediazione da parte nostra. Tutto parte inerte: nulla viene inviato finché non configuri le credenziali e attivi l'integrazione. La lettura è sempre limitata ai dati del tuo tenant.

Ogni oggetto viene esportato come righe con colonne stabili: id, created_at, updated_at, owner_id e una colonna per ogni campo (l'api_name del campo). Le stesse colonne del connettore BI, così le mappi una sola volta.

Prerequisiti

  • BigQuery: un progetto in Google Cloud, un dataset di destinazione e un service account con il ruolo "BigQuery Data Editor" su quel dataset, più una chiave JSON per quell'account.
  • Snowflake/Redshift: una posizione di staging che controlli (URL firmato di un bucket S3/GCS/Azure) per ricevere il file, e accesso al warehouse per eseguire il comando COPY.
  • In Sellio, accesso come amministratore per salvare le credenziali e attivare l'esportazione in Impostazioni → Integrazioni.

Dove configurare

  1. Apri Impostazioni → Integrazioni.
  2. Scegli il riquadro del tuo warehouse: Google BigQuery, Snowflake o Amazon Redshift.
  3. Compila le credenziali, scegli gli oggetti da esportare e attiva.
  4. Usa "Esporta ora" per inviare a richiesta.

BigQuery (invio automatico)

In BigQuery l'invio è automatico, tramite streaming (tabledata.insertAll). Porti un service account e scriviamo direttamente nelle tue tabelle.

  1. In Google Cloud, crea un service account e assegnagli il ruolo "BigQuery Data Editor" sul dataset di destinazione.
  2. Genera una chiave JSON per quel service account.
  3. Nel dataset, crea una tabella per ogni oggetto con le colonne stabili (id STRING, created_at TIMESTAMP, updated_at TIMESTAMP, owner_id STRING e una colonna per ogni campo).
  4. Nel riquadro BigQuery, inserisci il Project ID, il Dataset, un prefisso di tabella opzionale e incolla la chiave JSON. Attiva e clicca "Esporta ora".
💡 Il nome della tabella di ogni oggetto è <prefisso><api_name> (es., prefisso "crm_" → tabella crm_opportunity). Senza prefisso, la tabella è l'api_name stesso. L'invio usa l'id del record come insertId, quindi reinviare lo stesso batch non duplica.

Snowflake e Redshift (file + COPY)

Per Snowflake e Redshift generiamo un file per ogni oggetto (NDJSON di default, o CSV) e lo INVIAMO a un URL di staging che controlli, ad esempio un URL firmato del tuo bucket S3/GCS/Azure. Il caricamento finale nel warehouse è eseguito dal comando COPY, che esegui (o pianifichi) tu nel tuo warehouse.

  1. Nel riquadro Snowflake/Redshift, inserisci l'URL di staging (la destinazione del file), il formato (NDJSON o CSV) e, se la destinazione lo richiede, un header di autenticazione + secret.
  2. Scegli gli oggetti e attiva. Clicca "Esporta ora": eseguiamo un PUT del file verso il tuo staging.
  3. Nel tuo warehouse, esegui COPY per caricare il file dallo staging nella tabella.
Example: Snowflake: COPY INTO crm.opportunity FROM @my_stage/opportunity FILE_FORMAT = (TYPE = JSON) MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE;
Example: Redshift: COPY crm.opportunity FROM 's3://my-bucket/opportunity.json' IAM_ROLE 'arn:aws:iam::...:role/redshift' FORMAT AS JSON 'auto ignorecase';
💡 Le credenziali (chiave del service account BigQuery, secret di staging) sono memorizzate cifrate e non vengono mai mostrate di nuovo. Per cambiarle, incollale di nuovo.

Come testare

  1. Attiva il connettore, scegli un oggetto e clicca "Esporta ora".
  2. BigQuery: apri la tabella <prefisso><api_name> nel dataset e conferma che le righe siano arrivate (reinviare lo stesso batch non duplica, perché l'insertId è l'id del record).
  3. Snowflake/Redshift: conferma che il file sia stato scritto nel tuo staging (tramite PUT); poi esegui COPY e controlla le righe nella tabella.

Risoluzione problemi

  • BigQuery 403/permission denied: il service account non ha "BigQuery Data Editor" sul dataset, oppure la chiave JSON è incompleta. Riassegna il ruolo e reincolla il JSON.
  • BigQuery "table not found": crea prima la tabella per-oggetto con le colonne stabili (id STRING, created_at/updated_at TIMESTAMP, owner_id STRING e una colonna per ogni campo). Il nome è <prefisso><api_name>.
  • Snowflake/Redshift: il PUT verso lo staging fallisce: l'URL firmato è scaduto o non consente la scrittura, oppure l'header di autenticazione della destinazione è sbagliato. Genera un nuovo URL e controlla il secret.
  • COPY non carica: rivedi il FILE_FORMAT (NDJSON vs CSV) e il mapping delle colonne (es., MATCH_BY_COLUMN_NAME in Snowflake; FORMAT AS JSON in Redshift).
  • Non viene esportato nulla: conferma che il connettore sia ATTIVATO e che ci siano oggetti selezionati.

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

Crea un account gratuito
Data warehouse: esportazione verso BigQuery, Snowflake e Redshift · Sellio