
Não sabe por onde começar a modelar seus dados no Google BigQuery? Este post te ajuda com um repositório simples e um exemplo prático.
Foto de Steady Hand Co. no Unsplash. Abra um caminho claro em meio aos dados brutos.
Hoje, muito dado bagunçado circula por aí. E, normalmente, tem gente bem frustrada se perguntando por onde começar a fazer sentido disso tudo e, mais importante, como estruturar essas informações para que sejam úteis para a empresa.
Aqui eu proponho usar um script e um repositório simples que permitem subir seus dados já tratados como Views para o Google BigQuery. Além disso, dá para usar templates do Jinja para facilitar a vida e até pré-definir algumas variáveis, se quiser.
Como funciona?
Em um arquivo chamado select_101.sql.j2, você pode ter esta query:
SELECT {{aNumber}} as numA referência aNumber do template vem de um conjunto pré-definido de variáveis no arquivo de configuração configuration.json:
{ "aNumber": 101}Você também tem um arquivo de schema chamado 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 ]\```\\```\ }\```\\```\ ]````}
Agora é só fazer o deploy disso no Google BigQuery:
`-m` permite informar a métrica que vai entrar em deploy
`-v` indica que você quer fazer o deploy de uma view
`-d` recebe seu dataset como entrada
`-p` recebe seu projectId como entrada./compile.py -m select_101.sql.j2 -v -d
E você obtém esta saída:

## Incluindo templates dentro de templates…
Você também pode incluir um template dentro de outro.
Em um arquivo chamado `select_101_include.sql.j2`, você pode ter esta query:SELECT *
FROM (
{% include 'select_101/select_101.sql.j2' %}
)
A query será renderizada e implantada assim:SELECT * FROM ( SELECT 101 as num )
Boa modelagem!
Quer mais conteúdos como este? Confira nosso [blog](https://doit.com/blog/) ou [siga o Eben no Twitter](https://twitter.com/eebsidian).
## Recursos
[https://github.com/ebendutoit/google-bigquery-data-modeller](https://github.com/ebendutoit/google-bigquery-data-modeller)