Ambiente para modelagem de dados da SMS Rio com dbt, BigQuery e comparação de ambientes via Recce.
Administrador: Pedro Marques
| Ferramenta | Versão | Observações |
|---|---|---|
| Python | 3.10.x | Windows: Baixe o instalador https://www.python.org/downloads/release/python-3109/ |
| Poetry | 1.7.1 | pip install poetry==1.7.1 |
| dbt-core + dbt-bigquery | pip install dbt-core dbt-bigquery |
|
| Recce | Ferramenta para checar a diferença entre os dados em diversos ambientes |
|
| Git | Windows: Baixe o instalador https://git-scm.com/downloads/win |
Clone o repositório
git clone https://github.com/prefeitura-rio/queries-rj-sms cd queries-sms-rj
poetry shell # cria/ativa o venv isolado
poetry install --no-root # instala todas as dependências declaradas em pyproject.tomlO comando poetry shell garante que as libs sejam instaladas no ambiente virtual correto, evitando conflitos.
dbt deps # baixa dbt-utils e demais packages declarados em packages.ymldbt deps resolve versões e coloca tudo em .dbt_packages/.
-
Obtenha o arquivo
rj-sms-dev-dbt.json(IAM → Service Accounts). -
Copie o arquivo
profiles.ymlpara um diretório seguro de sua preferência. -
Edite o parâmetro keyfile no profile
devdo arquivoprofiles.ymlpara apontar para o JSON.- No Windows, coloque o path completo entre aspas duplas.
-
Crie uma variável de ambiente chamada
DBT_PROFILES_DIRque aponte para o caminho do arquivoprofiles.yml- ex.
DBT_PROFILES_DIR='/Users/foo/.credentials/'
- ex.
-
Crie uma variável de ambiente chamada
DBT_USER, que receba seu nome.- ex.
DBT_USER='seu_nome'
- ex.
-
Dê privilegio de execução para o script ./recce.sh
- Linux e MacOS: chmod +x recce.sh
- Windows: Não precisa
-
Use a extensão (Power User for dbt) no vscode ou similares, para ter acesso a uma interface gráfica para interagir com o dbt.
-
Cheque se seu ambiente está executando com o compilador certo (Python 3.10.x)
| Ação | Comando básico | Exemplos úteis |
|---|---|---|
| Executar modelos | dbt run |
dbt run -s "nome_modelo" |
| Rodar testes | dbt test |
dbt test -s tag:sua_tag |
| Executar e testar | dbt build |
dbt build -s staging.* |
| Gerar docs HTML | dbt docs generate && dbt docs serve |
Abre em localhost:8080 |
A ferramenta spawna um contêiner e publica a interface em http://localhost:8000.
Assim você avalia o diff entre produção e a sua branch antes mesmo do merge, sendo útil para avaliar a extensão das suas alterações no fluxo de transformação de dados.
Passo a passo de como utilizar o recce
Não esqueça de checar se você está logado no seu ambiente com a sua conta certa do GitHub.
(A que você quer usar para trabalhar nesse projeto).
- Crie branches no formato
feat/<breve-descrição>oufix/<issue>
feat:<descricao>,fix:<descricao>,refact:<descricao>, ...
- Descreva brevemente o contexto e a solução
- Adicione screenshot do Recce se aplicável