2016-04-06 30 views
7

Voglio scaricare i dati da BigQuery (cioè i report) in un database CloudSQL, qual è il modo migliore per raggiungere questo programma?Esportazione da Google BigQuery in CloudSQL?

Mi rendo conto che potrei fare questo manually eseguendo una query BigQuery, scaricandola come CSV, quindi caricandola tramite la console Cloud, ma voglio farlo in modo programmatico, preferibilmente in Python/SQL.

risposta

4

Se si desidera eseguire il dump di intere tabelle, è possibile utilizzare una combinazione delle API BigQuery e Cloud SQL per ottenere ciò.

La documentazione di BigQuery has an API example in python per l'estrazione di una tabella BigQuery su Cloud Storage.

Una volta che i dati sono in Cloud Storage, è possibile utilizzare Cloud SQL Admin API per importare i dati in una tabella MySQL.

Se è necessario un controllo più granulare, è possibile utilizzare l'API BigQuery per eseguire la query, recuperare i risultati, connettersi all'istanza di Cloud SQL e inserire i dati. Questo non funzionerà anche se la quantità di dati è grande.

Un approccio più complesso consiste nell'utilizzare Dataflow per scrivere i dati a cui sei interessato in Cloud Storage e utilizzare l'API Cloud SQL per importarlo.

(Per la mia curiosità, puoi descrivere il caso d'uso per volere dei dati in Cloud SQL invece di BigQuery? Mi aiuterà/noi a capire come i nostri clienti utilizzano il nostro prodotto e dove possiamo migliorare.)

+1

Sono in grado di offrire due casi d'uso: 1) Si desidera utilizzare uno strumento di terze parti o un'applicazione LOB che richiede un database conforme a SQL (con UPDATE, DELETE, ecc.). Prepara i dati in BQ, quindi esporta in CloudSQL. 2) Gli script di elaborazione/analisi/ETL di MySQL sono complicati o costosi da trasferire su BQ. Prepara i dati in BQ, fai un po 'di elaborazione in CloudSQL, quindi riportalo a BQ. Per eliminare questa necessità, BQ necessiterebbe di compatibilità ANSI-SQL e stored procedure. (Non sto raccomandando neanche ... solo dicendo.) –

+0

Grazie, il nostro caso d'uso è: vogliamo fare il 'numero crunch' dei big data in BigQuery e vogliamo generare rapporti giornalieri (cioè dati molto più piccoli basati su Query BQ) in un database MySQL in modo che possiamo facilmente visualizzarli tramite una dashboard web/API –

+0

Un altro caso d'uso vuole avere accesso a join più flessibili della semplice identità, perché i join incrociati di grandi tabelle rapidamente sopraffanno persino la potenza dei cavalli di BigQuery. – oulenz