Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma
Susan Sun
Freelance Data Scientist
dbt üç dil kullanır:
SQL örneği:
SELECT * FROM ...
YAML örneği:
- name: customers
description: A data mart
Jinja örneği:
FROM {{ ref('stg_looker__users') }}
dbt Jinja nedir?
Neden yararlı?
dbt'de Jinja örnekleri:
dbt modellerine başvurma
SELECT *
FROM {{ ref('stg_looker__users') }}
Döngüler oluşturma
{% for column in ['col1', 'col2'] %}
SELECT {{ column }}
FROM table_name
{% endfor %}
{%...%} ile çevrilidir {% set order_statuses = ['Shipped', 'Complete', 'Processing'] %}
{{...}} ile çevrilidir SELECT * FROM {{ ref('stg_looker__users') }}
{# #} ile çevrilidir {# This is a comment #}
Jinja ifade türleri: set, loop, koşul (if/else), makrolar vb.
set ifadesi bir değişken oluşturur ve değer atar.
{% set ... %}
{% set country = 'Australia' %}
Kullanım
customers.sql içinde, yazıldığı gibi:{% set country = 'Australia' %}
SELECT ...
FROM ...
WHERE country = '{{ country }}'
Derlenen kod
dbt compile -s customers.sql çıktısı:
SELECT ...
FROM ...
WHERE country = 'Australia'
dbt compile -s customers.sql çıktısı:Running with dbt=1.8.4
...
Compiled node 'customers' is:
WITH customer_base AS (
SELECT
...
FROM "dbt"."main"."stg_looker__users"
WHERE country = 'Australia'
)
...
/target/compiled dizinidbt compile derlenmiş dosyalar oluşturur:
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma