
Non sa da dove partire per modellare i dati in Google BigQuery? In questo articolo trova una repo semplice e un esempio pratico.
Foto di Steady Hand Co. su Unsplash. Trovi la sua strada tra i dati grezzi seguendo un percorso chiaro.
Oggi nell'etere circolano enormi quantità di dati poco curati. Spesso, chi ci si trova davanti fatica a capire da dove cominciare per dargli un senso e, soprattutto, come strutturarli per renderli davvero utili all'azienda.
Qui propongo l'utilizzo di un semplice script e di una repo che consentono di pubblicare i dati ripuliti come View su Google BigQuery. In più, è possibile sfruttare il templating Jinja per semplificarsi il lavoro e, volendo, predefinire alcune variabili.
Come funziona?
In un file chiamato select_101.sql.j2 si può inserire questa query:
SELECT {{aNumber}} as numIl riferimento al template aNumber viene letto da un set predefinito di variabili nel file di configurazione configuration.json:
{ "aNumber": 101}È previsto anche un file di schema chiamato select_101.json:
{ "metric": "First example", "metric_description": "Select only a constant number as output", "purpose" : "", "usage_example" : "", "usage_description" : "", "fields": [\```\\```\ {\```\\```\ "field": "num",\```\\```\ "description": "A small number",\```\\```\ "type": "INTEGER",\```\\```\ "typical_values": [ 4 ]\```\\```\ }\```\\```\ ]````}
A questo punto è tutto pronto per il deploy su Google BigQuery:
`-m` consente di specificare la metrica da deployare
`-v` indica che si vuole deployare una view
`-d` riceve in input il dataset
`-p` riceve in input il projectId./compile.py -m select_101.sql.j2 -v -d
Il risultato è il seguente:

## Includere template dentro altri template…
Si possono anche includere template all'interno di altri.
In un file chiamato `select_101_include.sql.j2` si può scrivere questa query:SELECT *
FROM (
{% include 'select_101/select_101.sql.j2' %}
)
La query verrà renderizzata e deployata così:SELECT * FROM ( SELECT 101 as num )
Buon modeling!
Vuole approfondire? Visiti il nostro [blog](https://doit.com/blog/) oppure [segua Eben su Twitter](https://twitter.com/eebsidian).
## Risorse
[https://github.com/ebendutoit/google-bigquery-data-modeller](https://github.com/ebendutoit/google-bigquery-data-modeller)