กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt
Susan Sun
Freelance Data Scientist
dbt ใช้ภาษา สาม ภาษา:
ตัวอย่าง SQL:
SELECT * FROM ...
ตัวอย่าง YAML:
- name: customers
description: A data mart
ตัวอย่าง Jinja:
FROM {{ ref('stg_looker__users') }}
dbt Jinja คืออะไร?
ทำไมจึงมีประโยชน์?
ตัวอย่างการใช้ Jinja ใน dbt:
การอ้างอิง dbt models
SELECT *
FROM {{ ref('stg_looker__users') }}
การสร้าง loop
{% for column in ['col1', 'col2'] %}
SELECT {{ column }}
FROM table_name
{% endfor %}
{%...%} ครอบ {% set order_statuses = ['Shipped', 'Complete', 'Processing'] %}
{{...}} ครอบ SELECT * FROM {{ ref('stg_looker__users') }}
{# #} ครอบ {# This is a comment #}
ประเภทของ Jinja statements: set, loop, conditional (if/else), macros ฯลฯ
Jinja statement แบบ set ใช้สร้างตัวแปรและกำหนดค่า
{% set ... %}
{% set country = 'Australia' %}
การใช้งาน
customers.sql ที่เขียนไว้:{% set country = 'Australia' %}
SELECT ...
FROM ...
WHERE country = '{{ country }}'
โค้ดที่ Compiled แล้ว
dbt compile -s customers.sql:
SELECT ...
FROM ...
WHERE country = 'Australia'
dbt compile -s customers.sql: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/compileddbt compile สร้างขึ้น:
กรณีศึกษา: การสร้าง Data Model สำหรับ E-Commerce ด้วย dbt