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.

Tags: