Terug naar Utils

Streamlit app

Generate Sources

Genereer automatisch dbt sources, stagingmodellen en projectconfiguratie vanuit Snowflake — via een lokale app met een grafische interface.

Generate Sources Streamlit app

Doel

De generate_sources dbt-macro werkt prima in de terminal, maar deze Streamlit-app maakt het proces visueel: je kiest je database en schema's via dropdowns, ziet de gegenereerde code direct in syntaxkleuring, en schrijft de bestanden met één klik weg naar je dbt-project.

Handig bij het onboarden van nieuwe databronnen waarbij je snel een werkende staginglaag wil opzetten zonder handmatig YAML of SQL te schrijven.

Functies

Snowflake-verbinding

Sla je accountgegevens en wachtwoord lokaal op via keyring. De app onthoudt je vorige instellingen zodat je niet elke keer opnieuw hoeft in te loggen.

Database & schema selectie

Kies een database en filter op één of meerdere schema's. De app haalt tabel- en kolommetadata op via het Snowflake information schema.

Gegenereerde output

Bekijk de gegenereerde bestanden per tab met syntaxkleuring voordat je ze wegschrijft. Kies voor één gecombineerde sources.yml of een apart bestand per schema.

Bestanden wegschrijven

De app schrijft de gegenereerde bestanden direct naar je dbt-projectmap onder models/staging/ — inclusief de juiste mapstructuur.

Gegenereerde bestanden

BestandInhoud
sources.ymlSource-definities met kolommetadata, per schema of gecombineerd.
stg_*.sqlStagingmodellen met select * from source() per tabel.
dbt_project.yml snippetConfiguratieblok voor de models-sectie, georganiseerd per schema.

Gebruik

1. Installeer de vereisten

pip install -r streamlit/generate_sources/requirements.txt

2. Start de app

streamlit run streamlit/generate_sources/app.py

3. Verbind met Snowflake

Vul in de zijbalk je Snowflake-accountgegevens in. De app slaat deze lokaal op via keyring zodat je ze de volgende keer niet opnieuw hoeft in te voeren.

4. Genereer en schrijf weg

Selecteer een database en schema's, bekijk de gegenereerde code per tab, en klik op wegschrijven. De bestanden worden direct aangemaakt in de opgegeven dbt-projectmap.