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
- Apri Impostazioni → Integrazioni.
- Scegli il riquadro del tuo warehouse: Google BigQuery, Snowflake o Amazon Redshift.
- Compila le credenziali, scegli gli oggetti da esportare e attiva.
- 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.
- In Google Cloud, crea un service account e assegnagli il ruolo "BigQuery Data Editor" sul dataset di destinazione.
- Genera una chiave JSON per quel service account.
- 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).
- Nel riquadro BigQuery, inserisci il Project ID, il Dataset, un prefisso di tabella opzionale e incolla la chiave JSON. Attiva e clicca "Esporta ora".
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.
- 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.
- Scegli gli oggetti e attiva. Clicca "Esporta ora": eseguiamo un PUT del file verso il tuo staging.
- Nel tuo warehouse, esegui COPY per caricare il file dallo staging nella tabella.
Come testare
- Attiva il connettore, scegli un oggetto e clicca "Esporta ora".
- 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).
- 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.