Google Pub/Sub a BigQuery in modo semplice

Google Pub/Sub a BigQuery semplice

Un manuale pratico per implementare le sottoscrizioni di BigQuery in Pub/Sub per l’ingestione semplice di messaggi e flussi

L'ultima capacità militare di ingestione di streaming basata su sottoscrizione del data warehouse su scala planetaria di Google: BigSub. In questo caso, il Pub non è mai arrivato alla disponibilità generale, quindi dovrai prendere le tue pinte altrove. Foto di Thomas Haas su Unsplash

Motivazione

In passato mi sono trovato in molte situazioni in cui volevo ottenere i messaggi di Pub/Sub in una tabella di BigQuery, ma non sono mai riuscito a trovare un modo particolarmente semplice per farlo.

Si potrebbe configurare un flusso di dati, ma questo richiede infrastruttura aggiuntiva per capire, configurare, gestire e debuggare. Inoltre, Dataflow (che è un servizio Apache Beam gestito) è progettato per l’elaborazione di streaming ad alta velocità, quindi sembrava sempre eccessivo per un semplice sistema di registrazione o monitoraggio dei messaggi.

E poi c’è Java. Ma Python 😀! E Java… 😫!

public static string args void main... public static string args void main... public static string args void main... public static string args void main... public static string args void main... arrrrrrrrrrrrgh

Scusa, ancora mi vengono flashback dai miei primi tentativi di imparare a programmare (nel secolo scorso) in Java. Per favore, non provare ad usare quel frammento di codice… allontanati dal frammento di codice.

Poi ho scoperto questo, che – sebbene prometta semplicità – sembra essere ancora più complicato del metodo precedente (Debezium wtf?)!

È anche possibile distribuire una funzione leggera di Cloud Function per scatenarsi alla ricezione di un messaggio di Pub/Sub e trasmetterlo o caricarlo in BigQuery, ma sembrava comunque un po’ troppo complesso per qualcosa che avrebbe dovuto e potuto essere una funzionalità nativa.

E ora lo è!

Le gentili persone di Google Cloud hanno annunciato una connessione diretta da Pub/Sub a BigQuery tempo fa, fantastico! Tuttavia, dopo aver provato (e fallito) a configurare rapidamente un test un paio di volte, ho finalmente avuto un caso d’uso reale che mi ha richiesto di farlo funzionare per un cliente.

Risulta che ci sono un paio di sfumature, quindi questo articolo mira ad aiutarti a farlo funzionare il più rapidamente possibile.

Situazione

Pub/Sub è un servizio incredibilmente utile, potente e scalabile nell’ecosistema di Google Cloud, con due casi d’uso principali: streaming…