Een testproject kan een hele goede manier zijn om nieuwe technieken uit te proberen. Met dbt Core kan je eenvoudig een minmaal dbt Core project maken op je eigen computer. Daarvoor moet dbt Core wel al geïnstalleerd zijn en er moet al een verbinding zijn met bijvoorbeeld Snowflake. Ga voor informatie over het opzetten van zo’n verbinding met RSA versleuteling naar mijn blog hierover.
In deze blog zullen we een klein testproject opzetten. Met minimaal bedoelen we in dit geval: met zo min mogelijk bestanden en regels code. Zo’n klein dbt project kan nuttig zijn omdat het ons laat concentreren op de technieken die we willen testen. Doordat al het andere weg wordt gelaten, leiden die dingen ook niet af.
De verbinding
In een eerdere blog heb ik laten zien hoe we RSA versleuteling kunnen toepassen in een verbinding met Snowflake. Uiteindelijk kwam daar het volgende dbt profiles bestand uit:
default:
target: dev
outputs:
dev:
type: snowflake
account: voor-beeld
user: esempio
role: sysadmin
warehouse: magazijn
database: ontwikkel_db
schema: dbt_esempio
private_key_path: /Users/esempio/.dbt/rsa.p8
private_key_passphrase: t+gsjivVXODDzhujYLW/ZdjVuYrIz4n5
Wellicht ten overvloede, maar de passphrase is een random gegenereerd voorbeeld. Dit soort passphrases horen in principe niet gedeeld te worden. Dat hoeft ook niet als je er zelf steeds een aanmaakt. Wat belangrijker is hier, is dat default
de profile (ook wel connection profile) is die we later gaan gebruiken.
Deze profile zouden we alles kunnen noemen (ook kaas
of peper
). Het is nuttig om het default
te noemen als we ook dbt Cloud willen gebruiken. In het profiles.yml
bestand kan deze ene profile staan. Maar er kunnen ook meerdere staan. Later zullen we expliciet benoemen welke profile we gaan gebruiken (ook als er maar 1 profile in profiles.yml
staat).
Targets
Een dbt connection profile kan meerdere outputs hebben. Deze staan na outputs:
. Hierboven staat er maar 1 output dev
, maar ook dit zouden er meerdere kunnen zijn. Achter target
staat de default output. Daar hoeven we dus niets meer mee te doen later. Als we een andere output zouden willen gebruiken bij een dbt command kunnen we dat expliciet aangeven: bijvoorbeeld met --target dev
.
dbt_project.yml
Nu zijn we klaar om een nieuw project te maken. We beginnen met het maken van een nieuwe map (directory). Laten we deze minimaal
noemen. Vervolgens gaan we in deze map een bestand maken met de naam dbt_project.yml
. Deze vullen we met de volgende regels:
name: minimaal
version: '0.0.0'
config-version: 2
profile: default
De version
maakt niet echt uit in deze situatie. We kiezen voor 0.0.0
als startpunt. Voor name
kunnen we alles kiezen. We kiezen dezelfde naam als de map. config-version
moet 2
zijn. profile
is heel belangrijk. Daar nemen we default
, de naam van de profile in profiles.yml
!
Nu kunnen we al een dbt debug
doen om te zien of alles werkt. Als dat is gelukt, hoeven we eigenlijk alleen nog een map onder minimaal
aan te maken: models
. Als we daarin een SQL bestand maken met de technieken die we willen uitproberen, kunnen we aan de slag. models
is default de map waar dbt onze modellen (SQL bestanden) gaat zoeken. We kunnen een andere map kiezen met model-paths
, maar dat is niet nodig. dbt maakt zelf alle andere mappen die het nodig heeft en dat zijn dan ook de dafault mapnamen!
Discussie (minimaal dbt Core testproject)
Als dbt geïnstalleerd is en verbonden met het dataplatform, hebben we alleen het volgende nodig voor een minimaal dbt Core testproject:
- Een map (directory).
- Een
dbt_project.yml
in die map. - Een
models
map in de eerste map. - SQL bestanden in de
models
map.
Dan kunnen we aan de slag!
Bedankt voor het lezen van deze blog. Bekijk onze blog page voor meer blogs over Tableau, Alteryx, and Snowflake.
Werk samen met een van onze consultants en haal meer uit je data.
Contacteer ons en we zullen je helpen.