เจเฉฑเจ เจเจฆเจฐเจธเจผ เจกเฉเจเจพ เจตเฉเจ
เจฐเจนเจพเจเจธ เจเจฟเจนเฉเฉ เจธเจฟเจงเจพเจเจคเจพเจ 'เจคเฉ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ?
เจฌเจพเจเจฒเจฐเจชเจฒเฉเจ เจเฉเจก เจฆเฉ เจ เจฃเจนเฉเจเจฆ เจตเจฟเฉฑเจ เจตเจชเจพเจฐเจ เจฎเฉเฉฑเจฒ เจ เจคเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ 'เจคเฉ เจงเจฟเจเจจ เจเฉเจเจฆเจฐเจค เจเจฐเฉเฅค เจเฉเจกเจฌเฉเจธ เจฆเฉ เจคเฉเจฐ 'เจคเฉ DWH เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ: เจธเฉฐเจธเจเจฐเจฃ, เจธเจฎเฉเจเจฟเจ, เจเจเฉเจฎเฉเจเจฟเจก เจเฉเจธเจเจฟเฉฐเจ เจ เจคเฉ CI. เจฎเจพเจกเจฟเจเจฒเจฐ, เจเจเจธเจเฉเจเจธเฉเจฌเจฒ, เจเจชเจจ เจธเฉเจฐเจธ เจ เจคเฉ เจเจฎเจฟเจเจจเจฟเจเฉเฅค เจเจชเจญเฉเจเจคเจพ-เจ เจจเฉเจเฉเจฒ เจฆเจธเจคเจพเจตเฉเจเจผ เจ เจคเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ (เจกเฉเจเจพ เจฒเจพเจเจจเฉเจ)เฅค
เจเจธ เจธเจญ เจฌเจพเจฐเฉ เจ
เจคเฉ เจตเฉฑเจกเฉ เจกเฉเจเจพ เจ
เจคเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเจเฉเจธเจฟเจธเจเจฎ เจตเจฟเฉฑเจ DBT เจฆเฉ เจญเฉเจฎเจฟเจเจพ เจฌเจพเจฐเฉ เจนเฉเจฐ - cat to welcome.
เจธเจญ เจจเฉเฉฐ เจนเฉเจฒเฉ
เจเจฐเจเจฎเฉ เจเฉเจเจผเฉเจฐ เจธเฉฐเจชเจฐเจ เจตเจฟเฉฑเจ เจนเฉเฅค 5 เจธเจพเจฒเจพเจ เจคเฉเจ เจตเฉฑเจง เจธเจฎเฉเจ เจคเฉเจ เจฎเฉเจ เจกเจพเจเจพ เจตเฉเจ
เจฐเจนเจพเจเจธ, ETL/ELT เจฌเจฃเจพเจเจฃ เจฆเฉ เจจเจพเจฒ-เจจเจพเจฒ เจกเจพเจเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจ
เจคเฉ เจตเจฟเจเจผเฉเจ
เจฒเจพเจเจเจผเฉเจธเจผเจจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐ เจฐเจฟเจนเจพ เจนเจพเจเฅค เจฎเฉเจ เจเจธ เจธเจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐ เจฐเจฟเจนเจพ เจนเจพเจ
เจเฉเจเฉ เจธเจฎเฉเจเจฟเจ
DBT เจซเจฐเฉเจฎเจตเจฐเจ ELT (เจเจเจธเจเจฐเฉเจเจ - เจเฉเจฐเจพเจเจธเจซเจพเจฐเจฎ - เจฒเฉเจก) เจธเฉฐเจเฉเจช เจฐเฉเจช เจตเจฟเฉฑเจ เจเฉ เจฌเจพเจฐเฉ เจนเฉเฅค
BigQuery, Redshift, Snowflake เจตเจฐเจเฉ เจเจคเจชเจพเจฆเจ เจ เจคเฉ เจธเจเฉเจฒเฉเจฌเจฒ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจกเฉเจเจพเจฌเฉเจธ เจฆเฉ เจเจเจฎเจจ เจฆเฉ เจจเจพเจฒ, เจกเฉเจเจพ เจตเฉเจ เจฐเจนเจพเจเจธ เจฆเฉ เจฌเจพเจนเจฐ เจชเจฐเจฟเจตเจฐเจคเจจ เจเจฐเจจ เจฆเจพ เจเฉเจ เจฎเจคเจฒเจฌ เจจเจนเฉเจ เจธเฉ.
DBT เจธเจฐเฉเจคเจพเจ เจคเฉเจ เจกเฉเจเจพ เจกเจพเจเจจเจฒเฉเจก เจจเจนเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจชเจฐ เจธเจเฉเจฐเฉเจเจผ (เจ เฉฐเจฆเจฐเฉเจจเฉ เจเจพเจ เจฌเจพเจนเจฐเฉ เจธเจเฉเจฐเฉเจ เจตเจฟเฉฑเจ) เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฒเฉเจก เจเฉเจคเฉ เจเจ เจกเฉเจเจพ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจตเจงเฉเจ เจฎเฉเจเฉ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
DBT เจฆเจพ เจฎเฉเฉฑเจ เจเจฆเฉเจธเจผ เจเฉเจก เจฒเฉเจฃเจพ, เจเจธเจจเฉเฉฐ SQL เจตเจฟเฉฑเจ เจเฉฐเจชเจพเจเจฒ เจเจฐเจจเจพ, เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจธเจนเฉ เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ เจนเฉเฅค
DBT เจชเฉเจฐเฉเจเฉเจเจ เจขเจพเจเจเจพ
เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจธเจฟเจฐเจซ 2 เจเจฟเจธเจฎเจพเจ เจฆเฉเจเจ เจกเจพเจเจฐเฉเจเจเจฐเฉเจเจ เจ เจคเฉ เจซเจพเจเจฒเจพเจ เจนเจจ:
- เจฎเจพเจกเจฒ (.sql) - เจเฉฑเจ SELECT เจชเฉเฉฑเจเจเจฟเฉฑเจ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจเจ เจเฉเจคเฉ เจคเจฌเจฆเฉเจฒเฉ เจฆเฉ เจเจเจพเจ
- เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ (.yml) - เจชเฉเจฐเจพเจฎเฉเจเจฐ, เจธเฉเจเจฟเฉฐเจ, เจเฉเจธเจ, เจฆเจธเจคเจพเจตเฉเจเจผ
เจเฉฑเจ เจฌเฉเจจเจฟเจเจฆเฉ เจชเฉฑเจงเจฐ 'เจคเฉ, เจเฉฐเจฎ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ:
- เจเจชเจญเฉเจเจคเจพ เจเจฟเจธเฉ เจตเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ IDE เจตเจฟเฉฑเจ เจฎเจพเจกเจฒ เจเฉเจก เจคเจฟเจเจฐ เจเจฐเจฆเจพ เจนเฉ
- CLI เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจฎเจพเจกเจฒ เจฒเจพเจเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ, DBT เจฎเจพเจกเจฒ เจเฉเจก เจจเฉเฉฐ SQL เจตเจฟเฉฑเจ เจเฉฐเจชเจพเจเจฒ เจเจฐเจฆเจพ เจนเฉ
- เจเฉฐเจชเจพเจเจฒ เจเฉเจคเจพ SQL เจเฉเจก เจเฉฑเจ เจฆเจฟเฉฑเจคเฉ เจเฉเจฐเจฎ (เจเฉเจฐเจพเจซ) เจตเจฟเฉฑเจ เจธเจเฉเจฐเฉเจเจผ เจตเจฟเฉฑเจ เจเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ
CLI เจคเฉเจ เจเฉฑเจฒเจฃเจพ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจพ เจฆเจฟเจเจพเจ เจฆเฉ เจธเจเจฆเจพ เจนเฉ:
เจธเจญ เจเฉเจ SELECT เจนเฉ
เจเจน เจกเจพเจเจพ เจฌเจฟเจฒเจก เจเฉเจฒ เจซเจฐเฉเจฎเจตเจฐเจ เจฆเฉ เจเฉฑเจ เจเจพเจคเจฒ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจนเฉเฅค เจฆเฉเจเฉ เจธเจผเจฌเจฆเจพเจ เจตเจฟเฉฑเจ, DBT เจธเจเฉเจฐ เจตเจฟเฉฑเจ เจคเฉเจนเจพเจกเฉเจเจ เจชเฉเฉฑเจเจเจฟเฉฑเจเจพเจ เจจเฉเฉฐ เจธเจพเจเจพเจฐ เจเจฐเจจ เจจเจพเจฒ เจเฉเฉเฉ เจธเจพเจฐเฉ เจเฉเจกเจพเจ เจจเฉเฉฐ เจเจฌเจธเจเจฐเฉเจเจ เจเจฐเจฆเจพ เจนเฉ (CREATE, INSERT, UPDATE, DELETE ALTER, GRANT, ...) เจเจฎเจพเจเจกเจพเจ เจคเฉเจ เจญเจฟเฉฐเจจเจคเจพเจตเจพเจเฅค
เจเจฟเจธเฉ เจตเฉ เจฎเจพเจกเจฒ เจตเจฟเฉฑเจ เจเฉฑเจ SELECT เจชเฉเฉฑเจเจเจฟเฉฑเจ เจฒเจฟเจเจฃเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ เจกเจพเจเจพ เจธเฉเฉฑเจ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจฆเจพ เจนเฉเฅค
เจเจธ เจเฉเจธ เจตเจฟเฉฑเจ, เจชเจฐเจฟเจตเจฐเจคเจจ เจคเจฐเจ เจฌเจนเฉ-เจชเฉฑเจงเจฐเฉ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเจ เจนเฉเจฐ เจฎเจพเจกเจฒเจพเจ เจคเฉเจ เจกเจพเจเจพ เจเจเฉฑเจ เจพ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจเฉฑเจ เจฎเจพเจกเจฒ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจเฉ เจเฉฑเจ เจเจฐเจกเจฐ เจธเจผเฉเจ เจเฉเจธ (f_orders):
{% set payment_methods = ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] %}
with orders as (
select * from {{ ref('stg_orders') }}
),
order_payments as (
select * from {{ ref('order_payments') }}
),
final as (
select
orders.order_id,
orders.customer_id,
orders.order_date,
orders.status,
{% for payment_method in payment_methods -%}
order_payments.{{payment_method}}_amount,
{% endfor -%}
order_payments.total_amount as amount
from orders
left join order_payments using (order_id)
)
select * from final
เจ เจธเฉเจ เจเฉฑเจฅเฉ เจเจฟเจนเฉเฉเจเจ เจฆเจฟเจฒเจเจธเจช เจเฉเจเจผเจพเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเจพเจ?
เจชเจนเจฟเจฒเจพ: CTE (เจเจฎ เจธเจพเจฐเจฃเฉ เจธเจฎเฉเจเจฐเจจ) เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจ - เจเฉเจก เจจเฉเฉฐ เจธเฉฐเจเจ เจฟเจค เจเจฐเจจ เจ เจคเฉ เจธเจฎเจเจฃ เจฒเจ เจเจฟเจธ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจชเจฐเจฟเจตเจฐเจคเจจ เจ เจคเฉ เจตเจชเจพเจฐเจ เจคเจฐเจ เจธเจผเจพเจฎเจฒ เจนเจจ
เจฆเฉเจเจพ: เจฎเจพเจกเจฒ เจเฉเจก SQL เจ
เจคเฉ เจญเจพเจธเจผเจพ เจฆเจพ เจฎเจฟเจธเจผเจฐเจฃ เจนเฉ
เจเจฆเจพเจนเจฐเจจ เจเฉฑเจ เจฒเฉเจช เจตเจฐเจคเจฆเจพ เจนเฉ เจฒเจ เจธเจฎเฉเจเจฐเจจ เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจ เจนเจฐเฉเจ เจญเฉเจเจคเจพเจจ เจตเจฟเจงเฉ เจฒเจ เจฐเจเจฎ เจฌเจฃเจพเจเจฃ เจฒเจ เจธเฉเฉฑเจ. เจซเฉฐเจเจธเจผเจจ เจตเฉ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจนเจตเจพเจฒเจพ - เจเฉเจก เจฆเฉ เจ เฉฐเจฆเจฐ เจนเฉเจฐ เจฎเจพเจกเจฒเจพเจ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉเจฃ เจฆเฉ เจฏเฉเจเจคเจพ:
- เจธเฉฐเจเจฒเจจ เจฆเฉเจฐเจพเจจ เจนเจตเจพเจฒเจพ เจธเจเฉเจฐเฉเจเจผ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจฌเจฒ เจเจพเจ เจฆเฉเจฐเจฟเจธเจผ เจจเฉเฉฐ เจเฉฑเจ เจเจพเจฐเจเฉเจ เจชเฉเจเจเฉฐเจเจฐ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฟเจ เจเจพเจตเฉเจเจพ
- เจนเจตเจพเจฒเจพ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจฎเจพเจกเจฒ เจจเจฟเจฐเจญเจฐเจคเจพ เจเฉเจฐเจพเจซ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ
เจฌเจฟเจฒเจเฉเจฒ
- If / else เจธเจเฉเจเจฎเฉเจเจเจธ - เจฌเฉเจฐเจพเจเจ เจธเจเฉเจเจฎเฉเจเจเจธ
- เจฒเฉเจชเจธ เจฒเจ
- เจตเฉเจฐเฉเจเจฌเจฒ
- เจฎเฉเจเจฐเฉ - เจฎเฉเจเจฐเฉ เจฌเจฃเจพเจเจฃเจพ
เจชเจฆเจพเจฐเจฅเฉเจเจฐเจจ: เจธเจพเจฐเจฃเฉ, เจฆเฉเจฐเจฟเจธเจผ, เจตเจพเจงเจพ
เจฎเฉเจเฉเจฐเฉเจ เจฒเจพเจเจเจผเฉเจธเจผเจจ เจฐเจฃเจจเฉเจคเฉ เจเฉฑเจ เจชเจนเฉเฉฐเจ เจนเฉ เจเจฟเจธ เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจฎเจพเจกเจฒ เจกเฉเจเจพ เจฆเจพ เจจเจคเฉเจเจพ เจธเฉเฉฑเจ เจธเจเฉเจฐเฉเจ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจน เจนเฉ:
- เจเฉเจฌเจฒ - เจธเจเฉเจฐเฉเจเจผ เจตเจฟเฉฑเจ เจญเฉเจคเจฟเจ เจธเจพเจฐเจฃเฉ
- เจตเฉเจเฉ - เจตเฉเจเฉ, เจธเจเฉเจฐเฉเจเจผ เจตเจฟเฉฑเจ เจตเจฐเจเฉเจ เจฒ เจเฉเจฌเจฒ
เจนเฉเจฐ เจตเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจชเจฆเจพเจฐเจฅเฉเจเจฐเจจ เจฆเฉเจเจ เจฐเจฃเจจเฉเจคเฉเจเจ เจนเจจ:
- เจเจจเจเจฐเฉเจฎเฉเจเจเจฒ - เจเจจเจเจฐเฉเจฎเฉเจเจเจฒ เจฒเฉเจกเจฟเฉฐเจ (เจตเฉฑเจกเฉ เจคเฉฑเจฅ เจเฉเจฌเจฒ เจฆเฉ); เจจเจตเฉเจเจ เจฒเจพเจเจจเจพเจ เจเฉเฉเฉเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ, เจฌเจฆเจฒเฉเจเจ เจฒเจพเจเจจเจพเจ เจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจฎเจฟเจเจพเจเจเจ เจเจเจเจ เจฒเจพเจเจจเจพเจ เจธเจพเจซเจผ เจเฉเจคเฉเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ
- เจเจซเฉเจฎเจฐเจฒ - เจฎเจพเจกเจฒ เจธเจฟเฉฑเจงเฉ เจคเฉเจฐ 'เจคเฉ เจจเจนเฉเจ เจฌเจฃเจฆเจพ, เจชเจฐ เจฆเฉเจเฉ เจฎเจพเจกเจฒเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจ CTE เจตเจเฉเจ เจนเจฟเฉฑเจธเจพ เจฒเฉเจเจฆเจพ เจนเฉ
- เจเฉเจ เจนเฉเจฐ เจฐเจฃเจจเฉเจคเฉเจเจ เจเฉ เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจเฉเฉ เจธเจเจฆเฉ เจนเฉ
เจชเจฆเจพเจฐเจฅเฉเจเจฐเจจ เจฆเฉเจเจ เจฐเจฃเจจเฉเจคเฉเจเจ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจพเจธ เจธเจเฉเจฐเฉเจเจผเจพเจ เจฒเจ เจ เจจเฉเจเฉเจฒเจคเจพ เจฆเฉ เจฎเฉเจเฉ เจนเจจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ:
- snowflake: เจ เจธเจฅเจพเจ เจเฉเจฌเจฒ, เจฐเจฒเฉเจตเจพเจ เจตเจฟเจนเจพเจฐ, เจเฉเจฌเจฒ เจเจฒเฉฑเจธเจเจฐเจฟเฉฐเจ, เจ เจจเฉเจฆเจพเจจเจพเจ เจฆเฉ เจจเจเจฒ เจเจฐเจจเจพ, เจธเฉเจฐเฉฑเจเจฟเจ เจค เจฆเฉเจฐเจฟเจธเจผ
- Redshift: เจกเจฟเจธเจเจเฉ, เจธเฉเจฐเจเจเฉ (เจเฉฐเจเจฐเจฒเฉเจตเจก, เจเฉฐเจชเจพเจเจเจก), เจฒเฉเจ เจฌเจพเจเจกเจฟเฉฐเจ เจตเจฟเจเจเจผ
- เจฌเจฟเจเจเฉเจฐเฉ: เจเฉเจฌเจฒ เจตเจฟเจญเจพเจเฉเจเจฐเจจ เจ เจคเฉ เจเจฒเฉฑเจธเจเจฐเจฟเฉฐเจ, เจฐเจฒเฉเจตเจพเจ เจตเจฟเจนเจพเจฐ, KMS เจเจจเจเฉเจฐเจฟเจชเจธเจผเจจ, เจฒเฉเจฌเจฒ เจ เจคเฉ เจเฉเจเจธ
- เจธเจชเจพเจฐเจ: เจซเจพเจเจฒ เจซเจพเจฐเจฎเฉเจ (เจชเจพเจฐเจเฉเจเจ, csv, json, orc, delta), partition_by, clustered_by, buckets, incremental_strategy
เจจเจฟเจฎเจจเจฒเจฟเจเจค เจธเจเฉเจฐเฉเจ เจเจธ เจธเจฎเฉเจ เจธเจฎเจฐเจฅเจฟเจค เจนเจจ:
- เจชเฉเจธเจเจเจฐเฉเจธ
- Redshift
- เจฌเจฟเจเจเฉเจฐเฉ
- snowflake
- เจชเฉเจฐเฉเจธเจเฉ (เจ เฉฐเจธเจผเจ เจคเฉเจฐ 'เจคเฉ)
- เจธเจชเจพเจฐเจ (เจ เฉฐเจธเจผเจ เจคเฉเจฐ 'เจคเฉ)
- Microsoft SQL เจธเจฐเจตเจฐ (เจเจฎเจฟเจเจจเจฟเจเฉ เจ เจกเจพเจชเจเจฐ)
เจเจ เจเจชเจฃเฉ เจฎเจพเจกเจฒ เจจเฉเฉฐ เจธเฉเจงเจพเจฐเฉเจ:
- เจเจ เจเจธเจฆเฉ เจญเจฐเจพเจ เจจเฉเฉฐ เจตเจพเจงเจพ (เจตเจงเฉ เจนเฉเจ) เจเจฐเฉเจ
- เจเจ Redshift เจฒเจ เจตเจฟเจญเจพเจเจจ เจ เจคเฉ เจฒเฉเฉเจฌเฉฑเจง เจเฉเฉฐเจเฉเจเจ เจเฉเฉเฉเจ
-- ะะพะฝัะธะณััะฐัะธั ะผะพะดะตะปะธ:
-- ะะฝะบัะตะผะตะฝัะฐะปัะฝะพะต ะฝะฐะฟะพะปะฝะตะฝะธะต, ัะฝะธะบะฐะปัะฝัะน ะบะปัั ะดะปั ะพะฑะฝะพะฒะปะตะฝะธั ะทะฐะฟะธัะตะน (unique_key)
-- ะะปัั ัะตะณะผะตะฝัะฐัะธะธ (dist), ะบะปัั ัะพััะธัะพะฒะบะธ (sort)
{{
config(
materialized='incremental',
unique_key='order_id',
dist="customer_id",
sort="order_date"
)
}}
{% set payment_methods = ['credit_card', 'coupon', 'bank_transfer', 'gift_card'] %}
with orders as (
select * from {{ ref('stg_orders') }}
where 1=1
{% if is_incremental() -%}
-- ะญัะพั ัะธะปััั ะฑัะดะตั ะฟัะธะผะตะฝะตะฝ ัะพะปัะบะพ ะดะปั ะธะฝะบัะตะผะตะฝัะฐะปัะฝะพะณะพ ะทะฐะฟััะบะฐ
and order_date >= (select max(order_date) from {{ this }})
{%- endif %}
),
order_payments as (
select * from {{ ref('order_payments') }}
),
final as (
select
orders.order_id,
orders.customer_id,
orders.order_date,
orders.status,
{% for payment_method in payment_methods -%}
order_payments.{{payment_method}}_amount,
{% endfor -%}
order_payments.total_amount as amount
from orders
left join order_payments using (order_id)
)
select * from final
เจฎเจพเจกเจฒ เจจเจฟเจฐเจญเจฐเจคเจพ เจเฉเจฐเจพเจซเจผ
เจเจน เจเฉฑเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเจพ เจฐเฉเฉฑเจ เจตเฉ เจนเฉเฅค เจเจธเจจเฉเฉฐ เจกเฉเจเจเฉ (เจกเจพเจเจฐเฉเจเจเจฟเจก เจเจธเฉเจเจฒเฉเจ เจเฉเจฐเจพเจซ) เจตเจเฉเจ เจตเฉ เจเจพเจฃเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
DBT เจธเจพเจฐเฉ เจชเฉเจฐเฉเจเฉเจเจ เจฎเจพเจกเจฒเจพเจ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจ เจงเจพเจฐ 'เจคเฉ เจเฉฑเจ เจเฉเจฐเจพเจซ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ, เจเจพเจ เจเจธ เจฆเฉ เจฌเจเจพเจ, เจฎเจพเจกเจฒเจพเจ เจฆเฉ เจ เฉฐเจฆเจฐ เจนเฉเจฐ เจฎเจพเจกเจฒเจพเจ เจฒเจ เจฐเฉเจซ() เจฒเจฟเฉฐเจเจธเฅค เจเฉเจฐเจพเจซเจผ เจนเฉเจฃ เจจเจพเจฒ เจคเฉเจธเฉเจ เจนเฉเจ เจฒเจฟเจเฉเจเจ เจเฉเจเจผเจพเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
- เจธเจนเฉ เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจฎเจพเจกเจฒเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ
- เจธเจเฉเจฐเจซเจฐเฉฐเจ เจเจ เจจ เจฆเฉ เจธเจฎเจพเจจเจคเจพ
- เจเฉฑเจ เจเจฐเจฌเจฟเจเจฐเจฐเฉ เจธเจฌเจเฉเจฐเจพเจซ เจเจฒเจพ เจฐเจฟเจนเจพ เจนเฉ
เจเฉเจฐเจพเจซ เจตเจฟเจเจผเฉเจ เจฒเจพเจเจเจผเฉเจธเจผเจจ เจฆเฉ เจเจฆเจพเจนเจฐเจจ:
เจเฉเจฐเจพเจซ เจฆเจพ เจนเจฐเฉเจ เจจเฉเจก เจเฉฑเจ เจฎเจพเจกเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ; เจเฉเจฐเจพเจซ เจฆเฉ เจเจฟเจจเจพเจฐเจฟเจเจ เจจเฉเฉฐ เจธเจฎเฉเจเจฐเจจ เจฐเฉเจซ เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
เจกเจพเจเจพ เจเฉเจฃเจตเฉฑเจคเจพ เจ เจคเฉ เจฆเจธเจคเจพเจตเฉเจเจผ
เจฎเจพเจกเจฒเจพเจ เจจเฉเฉฐ เจเฉเจฆ เจคเจฟเจเจฐ เจเจฐเจจ เจคเฉเจ เจเจฒเจพเจตเจพ, DBT เจคเฉเจนเจพเจจเฉเฉฐ เจจเจคเฉเจเฉ เจตเจเฉเจ เจกเจพเจเจพ เจธเฉเฉฑเจ เจฌเจพเจฐเฉ เจเจ เจงเจพเจฐเจจเจพเจตเจพเจ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ:
- เจจเจฒ เจจเจนเฉเจ
- เจตเจฟเจฒเฉฑเจเจฃ
- เจธเฉฐเจฆเจฐเจญ เจเจเจธเจพเจฐเจคเจพ - เจธเฉฐเจฆเจฐเจญ เจเจเจธเจพเจฐเจคเจพ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเจฐเจกเจฐ เจเฉเจฌเจฒ เจตเจฟเฉฑเจ เจเจพเจนเจ_เจเจเจกเฉ เจเจพเจนเจ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจเจเจกเฉ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉ)
- เจธเจตเฉเจเจพเจฐเจฏเฉเจ เจฎเฉเฉฑเจฒเจพเจ เจฆเฉ เจธเฉเจเฉ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉ
เจคเฉเจนเจพเจกเฉ เจเจชเจฃเฉ เจเฉเจธเจเจพเจ (เจเจธเจเจฎ เจกเฉเจเจพ เจเฉเจธเจ) เจจเฉเฉฐ เจเฉเฉเจจเจพ เจธเฉฐเจญเจต เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจฆเจฟเจจ, เจเฉฑเจ เจนเจซเจผเจคเฉ, เจเฉฑเจ เจฎเจนเฉเจจเจพ เจชเจนเจฟเจฒเจพเจ เจฆเฉ เจธเฉเจเจเจพเจ เจฆเฉ เจจเจพเจฒ เจฎเจพเจฒเฉเจ เจฆเจพ % เจตเจฟเจตเจนเจพเจฐเฅค เจเฉฑเจ SQL เจชเฉเฉฑเจเจเจฟเฉฑเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจคเจฟเจเจฐ เจเฉเจคเฉ เจเจ เจเฉเจ เจตเฉ เจงเจพเจฐเจจเจพ เจเฉฑเจ เจเฉเจธเจ เจฌเจฃ เจธเจเจฆเฉ เจนเฉเฅค
เจเจธ เจคเจฐเฉเจนเจพเจ, เจคเฉเจธเฉเจ เจตเฉเจ เจฐเจนเจพเจเจธ เจตเจฟเฉฐเจกเฉเจเจผ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจตเจฟเฉฑเจ เจ เจฃเจเจพเจนเฉ เจญเจเจเจฃ เจ เจคเฉ เจคเจฐเฉเฉฑเจเฉเจเจ เจจเฉเฉฐ เจซเฉ เจธเจเจฆเฉ เจนเฉเฅค
เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ, เจกเฉเจฌเฉเจเฉ เจฎเจพเจกเจฒ เจ เจคเฉ เจเฉฑเจฅเฉเจ เจคเฉฑเจ เจเจฟ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจชเฉฑเจงเจฐเจพเจ 'เจคเฉ เจฎเฉเจเจพเจกเฉเจเจพ เจ เจคเฉ เจเจฟเฉฑเจชเจฃเฉเจเจ เจจเฉเฉฐ เจเฉเฉเจจ, เจธเฉฐเจธเจเจฐเจฃ เจฌเจฃเจพเจเจฃ เจ เจคเฉ เจตเฉฐเจกเจฃ เจฒเจ เจตเจฟเจงเฉ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ เจชเฉฑเจงเจฐ 'เจคเฉ เจเฉเจธเจเจพเจ เจ เจคเฉ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจจเฉเฉฐ เจเฉเฉเจจเจพ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจพ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ:
- name: fct_orders
description: This table has basic information about orders, as well as some derived facts based on payments
columns:
- name: order_id
tests:
- unique # ะฟัะพะฒะตัะบะฐ ะฝะฐ ัะฝะธะบะฐะปัะฝะพััั ะทะฝะฐัะตะฝะธะน
- not_null # ะฟัะพะฒะตัะบะฐ ะฝะฐ ะฝะฐะปะธัะธะต null
description: This is a unique identifier for an order
- name: customer_id
description: Foreign key to the customers table
tests:
- not_null
- relationships: # ะฟัะพะฒะตัะบะฐ ัััะปะพัะฝะพะน ัะตะปะพััะฝะพััะธ
to: ref('dim_customers')
field: customer_id
- name: order_date
description: Date (UTC) that the order was placed
- name: status
description: '{{ doc("orders_status") }}'
tests:
- accepted_values: # ะฟัะพะฒะตัะบะฐ ะฝะฐ ะดะพะฟัััะธะผัะต ะทะฝะฐัะตะฝะธั
values: ['placed', 'shipped', 'completed', 'return_pending', 'returned']
เจ เจคเฉ เจเฉฑเจฅเฉ เจเจน เจนเฉ เจเจฟ เจเจน เจฆเจธเจคเจพเจตเฉเจเจผ เจคเจฟเจเจฐ เจเฉเจคเฉ เจตเฉเจฌเจธเจพเจเจ 'เจคเฉ เจเจฟเจตเฉเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ:
เจฎเฉเจเจฐเฉ เจ เจคเฉ เจฎเฉเจกเฉเจเจฒ
เจกเฉเจฌเฉเจเฉ เจฆเจพ เจเจฆเฉเจธเจผ SQL เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฆเจพ เจเฉฑเจ เจธเจฎเฉเจน เจฌเจฃเจจเจพ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจเจนเจจเจพเจ เจฆเฉ เจเจชเจฃเฉ เจชเจฐเจฟเจตเจฐเจคเจจ เจฌเจฃเจพเจเจฃ เจ เจคเฉ เจเจนเจจเจพเจ เจฎเฉเจกเจฟเจเจฒเจพเจ เจจเฉเฉฐ เจตเฉฐเจกเจฃ เจฒเจ เจเฉฑเจ เจธเจผเจเจคเฉเจธเจผเจพเจฒเฉ เจ เจคเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ-เจ เจฎเฉเจฐ เจธเจพเจงเจจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจเจพ เจนเฉเฅค
เจฎเฉเจเจฐเฉเจเจผ เจฐเจเจจเจพเจตเจพเจ เจ เจคเฉ เจธเจฎเฉเจเจฐเจจเจพเจ เจฆเฉ เจธเฉเฉฑเจ เจนเฉเฉฐเจฆเฉ เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจจเฉเฉฐ เจฎเจพเจกเจฒเจพเจ เจฆเฉ เจ เฉฐเจฆเจฐ เจซเฉฐเจเจธเจผเจจ เจเจฟเจนเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจฎเฉเจเจฐเฉเจเจผ เจคเฉเจนเจพเจจเฉเฉฐ DRY (เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจฆเฉเจนเจฐเจพเจ เจจเจพ) เจเฉฐเจเฉเจจเฉเจ เจฐเจฟเฉฐเจ เจธเจฟเจงเจพเจเจค เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจฎเจพเจกเจฒเจพเจ เจ เจคเฉ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจตเจฟเจเจเจพเจฐ SQL เจฆเฉ เจฎเฉเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
เจฎเฉเจเจฐเฉ เจเจฆเจพเจนเจฐเจจ:
{% macro rename_category(column_name) %}
case
when {{ column_name }} ilike '%osx%' then 'osx'
when {{ column_name }} ilike '%android%' then 'android'
when {{ column_name }} ilike '%ios%' then 'ios'
else 'other'
end as renamed_product
{% endmacro %}
เจ เจคเฉ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ:
{% set column_name = 'product' %}
select
product,
{{ rename_category(column_name) }} -- ะฒัะทะพะฒ ะผะฐะบัะพัะฐ
from my_table
DBT เจเฉฑเจ เจชเฉเจเฉเจ เจฎเฉเจจเฉเจเจฐ เจฆเฉ เจจเจพเจฒ เจเจเจเจฆเจพ เจนเฉ เจเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจตเจฟเจ เจเจคเฉเจเจค เจฎเฉเจกเจฟเจเจฒเจพเจ เจ เจคเฉ เจฎเฉเจเจฐเฉ เจจเฉเฉฐ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเจจ เจ เจคเฉ เจฆเฉเจฌเจพเจฐเจพ เจตเจฐเจคเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
เจเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจจเฉเฉฐ เจฒเฉเจก เจเจฐเจจ เจ เจคเฉ เจตเจฐเจคเจฃ เจฆเฉ เจฏเฉเจ เจนเฉเจฃเจพ เจเจฟเจตเฉเจ เจเจฟ:
dbt_utils : เจฎเจฟเจคเฉ/เจธเจฎเจพเจ, เจธเจฐเฉเจเฉเจ เจเฉเฉฐเจเฉเจเจ, เจธเจเฉเจฎเจพ เจเฉเจธเจ, เจชเฉเจตเฉเจ/เจ เจจเจชเฉเจตเฉเจ เจ เจคเฉ เจนเฉเจฐเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ- เจเจฟเจตเฉเจ เจเจฟ เจธเฉเจตเจพเจตเจพเจ เจฒเจ เจคเจฟเจเจฐ เจเฉเจคเฉ เจธเจผเฉเจเฉเจธ เจเฉเจเจชเจฒเฉเจเจธ
เจฌเจฐเจซเจฌเจพเจฐเฉ ะธเจธเจเจฐเจฟเจช - เจเจพเจธ เจกเจพเจเจพ เจธเจเฉเจฐเจพเจ เจฒเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ
Redshift เจฒเจพเจ - DBT เจเจพเจฐเจตเจพเจ เจจเฉเฉฐ เจฒเฉเจ เจเจฐเจจ เจฒเจ เจฎเฉเจกเฉเจเจฒ
เจชเฉเจเฉเจเจพเจ เจฆเฉ เจชเฉเจฐเฉ เจธเฉเจเฉ เจเฉฑเจฅเฉ เจฒเฉฑเจญเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ
เจนเฉเจฐ เจตเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ
เจเฉฑเจฅเฉ เจฎเฉเจ เจเฉเจ เจนเฉเจฐ เจฆเจฟเจฒเจเจธเจช เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจ
เจคเฉ เจฒเจพเจเฉเจเจฐเจจเจพเจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจพเจเจเจพ เจเฉ เจเฉเจฎ เจ
เจคเฉ เจฎเฉเจ เจเฉฑเจ เจกเฉเจเจพ เจตเฉเจ
เจฐเจนเจพเจเจธ เจฌเจฃเจพเจเจฃ เจฒเจ เจตเจฐเจคเจฆเฉ เจนเจพเจเฅค
เจฐเจจเจเจพเจเจฎ เจตเจพเจคเจพเจตเจฐเจจ เจจเฉเฉฐ เจตเฉฑเจ เจเจฐเจจเจพ DEV - TEST - PROD
เจเฉฑเจฅเฉเจ เจคเฉฑเจ เจเจฟ เจเจธเฉ DWH เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจ เฉฐเจฆเจฐ (เจตเฉฑเจ-เจตเฉฑเจ เจธเจเฉเจฎเจพเจ เจฆเฉ เจ เฉฐเจฆเจฐ)เฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจธเจฎเฉเจเจฐเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ:
with source as (
select * from {{ source('salesforce', 'users') }}
where 1=1
{%- if target.name in ['dev', 'test', 'ci'] -%}
where timestamp >= dateadd(day, -3, current_date)
{%- endif -%}
)
เจเจน เจเฉเจก เจธเจผเจพเจฌเจฆเจฟเจ เจคเฉเจฐ 'เจคเฉ เจเจนเจฟเฉฐเจฆเจพ เจนเฉ: เจตเจพเจคเจพเจตเจฐเจฃ เจฒเจ dev, test, ci เจธเจฟเจฐเจซเจผ เจชเจฟเจเจฒเฉ 3 เจฆเจฟเจจเจพเจ เจฒเจ เจกเฉเจเจพ เจฒเจ เจ เจคเฉ เจนเฉเจฐ เจจเจนเฉเจเฅค เจฏเจพเจจเฉ, เจเจนเจจเจพเจ เจตเจพเจคเจพเจตเจฐเจฃเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจฒเจฃเจพ เจฌเจนเฉเจค เจคเฉเจเจผ เจนเฉเจตเฉเจเจพ เจ เจคเฉ เจเฉฑเจ เจธเจฐเฉเจคเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค เจเจฆเฉเจ เจตเจพเจคเจพเจตเจฐเจฃ 'เจคเฉ เจเฉฑเจฒเจฆเจพ เจนเฉ เจชเฉเจธเจผเฉ เจซเจฟเจฒเจเจฐ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจ เจฃเจกเจฟเฉฑเจ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจตเจฟเจเจฒเจชเจฟเจ เจเจพเจฒเจฎ เจเจจเจเฉเจกเจฟเฉฐเจ เจฆเฉ เจจเจพเจฒ เจชเจฆเจพเจฐเจฅเฉเจเจฐเจจ
Redshift เจเฉฑเจ เจเจพเจฒเจฎ DBMS เจนเฉ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจนเจฐเฉเจ เจตเจฟเจ เจเจคเฉเจเจค เจเจพเจฒเจฎ เจฒเจ เจกเจพเจเจพ เจเฉฐเจชเจฐเฉเจธเจผเจจ เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจธเฉเฉฑเจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจ เจจเฉเจเฉเจฒ เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจฆเฉ เจเฉเจฃ เจเจฐเจจ เจจเจพเจฒ เจกเจฟเจธเจ เจธเจชเฉเจธ เจจเฉเฉฐ 20-50% เจคเฉฑเจ เจเจเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจฎเฉเจเจฐเฉ
เจฎเฉเจเจฐเฉ เจฆเจธเจคเจเจค:
{{ compress_table(schema, table,
drop_backup=False,
comprows=none|Integer,
sort_style=none|compound|interleaved,
sort_keys=none|List<String>,
dist_style=none|all|even,
dist_key=none|String) }}
เจฒเฉเจเจฟเฉฐเจ เจฎเจพเจกเจฒ เจเฉฑเจฒเจฆเจพ เจนเฉ
เจคเฉเจธเฉเจ เจฎเจพเจกเจฒ เจฆเฉ เจนเจฐเฉเจ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจฒเจ เจนเฉเฉฑเจเจพเจ เจจเฉเฉฐ เจเฉเฉ เจธเจเจฆเฉ เจนเฉ, เจเฉ เจฒเจพเจเจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเจพเจ เจฎเจพเจกเจฒ เจฆเฉ เจฐเจเจจเจพ เจชเฉเจฐเฉ เจนเฉเจฃ เจคเฉเจ เจคเฉเจฐเฉฐเจค เจฌเจพเจ เจฆ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ:
pre-hook: "{{ logging.log_model_start_event() }}"
post-hook: "{{ logging.log_model_end_event() }}"
เจฒเฉเจเจฟเฉฐเจ เจฎเฉเจกเฉเจเจฒ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจพเจฐเฉ เจฒเฉเฉเฉเจเจฆเฉ เจฎเฉเจเจพเจกเฉเจเจพ เจจเฉเฉฐ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจฐเจฟเจเจพเจฐเจก เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเฉเจตเฉเจเจพ, เจเจฟเจธเจฆเฉ เจตเจฐเจคเฉเจ เจฌเจพเจ เจฆ เจตเจฟเฉฑเจ เจเจกเจฟเจ เจ เจคเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเจฐเจจ เจฒเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉเฅค
เจฒเฉเฉฑเจเจฐ เจตเจฟเฉฑเจ เจฒเฉเจเจฟเฉฐเจ เจกเฉเจเจพ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจกเฉเจธเจผเจฌเฉเจฐเจก เจ เจเจฟเจนเจพ เจฆเจฟเจธเจฆเจพ เจนเฉ:
เจธเจเฉเจฐเฉเจเจผ เจฎเฉเจจเจเฉเจจเฉเจเจธ เจฆเจพ เจเจเฉเจฎเฉเจธเจผเจจ
เจเฉเจเจฐ เจคเฉเจธเฉเจ เจตเจฐเจคเฉ เจเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจฆเฉ เจเจพเจฐเจเจเฉเจธเจผเจฒเจคเจพ เจฆเฉ เจเฉเจ เจเจเจธเจเฉเจเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ UDF (เจเจชเจญเฉเจเจคเจพ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจซเฉฐเจเจธเจผเจจ), เจคเจพเจ เจเจนเจจเจพเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเจพ เจธเฉฐเจธเจเจฐเจฃ, เจชเจนเฉเฉฐเจ เจจเจฟเจฏเฉฐเจคเจฐเจฃ, เจ เจคเฉ เจจเจตเฉเจ เจฐเฉเจฒเฉเจเจผเจพเจ เจฆเฉ เจธเจตเฉเจเจฒเจฟเจค เจฐเฉเจฒเจฟเฉฐเจ เจกเฉเจฌเฉเจเฉ เจตเจฟเฉฑเจ เจเจฐเจจเจพ เจฌเจนเฉเจค เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉเฅค
เจ เจธเฉเจ เจนเฉเจธเจผเจพเจ, เจเจฎเฉเจฒ เจกเฉเจฎเฉเจจเจพเจ, เจ เจคเฉ เจฌเจฟเฉฑเจเจฎเจพเจธเจ เจกเฉเจเฉเจกเจฟเฉฐเจ เจฆเฉ เจเจฃเจจเจพ เจเจฐเจจ เจฒเจ เจชเจพเจเจฅเจจ เจตเจฟเฉฑเจ UDF เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค
เจเฉฑเจ เจฎเฉเจเจฐเฉ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจเฉ เจเจฟเจธเฉ เจตเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจตเจพเจคเจพเจตเจฐเจจ (dev, test, prod) 'เจคเฉ เจเฉฑเจ UDF เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ:
{% macro create_udf() -%}
{% set sql %}
CREATE OR REPLACE FUNCTION {{ target.schema }}.f_sha256(mes "varchar")
RETURNS varchar
LANGUAGE plpythonu
STABLE
AS $$
import hashlib
return hashlib.sha256(mes).hexdigest()
$$
;
{% endset %}
{% set table = run_query(sql) %}
{%- endmacro %}
Wheely เจตเจฟเจเฉ เจ เจธเฉเจ Amazon Redshift เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจเฉ เจเจฟ PostgreSQL 'เจคเฉ เจเจงเจพเจฐเจฟเจค เจนเฉเฅค เจฐเฉเฉฑเจกเจธเจผเจฟเจซเจ เจฒเจ, เจจเจฟเจฏเจฎเจฟเจค เจคเฉเจฐ 'เจคเฉ เจเฉเจฌเจฒเจพเจ 'เจคเฉ เจ เฉฐเจเฉเฉ เจเจเฉฑเจ เฉ เจเจฐเจจเจพ เจ เจคเฉ เจกเจฟเจธเจ เจธเจชเฉเจธ เจเจพเจฒเฉ เจเจฐเจจเจพ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉ - เจเฉเจฐเจฎเจตเจพเจฐ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจ เจคเฉ เจตเฉเจเจฟเจเจฎ เจเจฎเจพเจเจกเจพเจเฅค
เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, redshift_maintenance เจฎเฉเจเจฐเฉ เจฆเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจนเจฐ เจฐเจพเจค เจเจฒเจพเจเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ:
{% macro redshift_maintenance() %}
{% set vacuumable_tables=run_query(vacuumable_tables_sql) %}
{% for row in vacuumable_tables %}
{% set message_prefix=loop.index ~ " of " ~ loop.length %}
{%- set relation_to_vacuum = adapter.get_relation(
database=row['table_database'],
schema=row['table_schema'],
identifier=row['table_name']
) -%}
{% do run_query("commit") %}
{% if relation_to_vacuum %}
{% set start=modules.datetime.datetime.now() %}
{{ dbt_utils.log_info(message_prefix ~ " Vacuuming " ~ relation_to_vacuum) }}
{% do run_query("VACUUM " ~ relation_to_vacuum ~ " BOOST") %}
{{ dbt_utils.log_info(message_prefix ~ " Analyzing " ~ relation_to_vacuum) }}
{% do run_query("ANALYZE " ~ relation_to_vacuum) %}
{% set end=modules.datetime.datetime.now() %}
{% set total_seconds = (end - start).total_seconds() | round(2) %}
{{ dbt_utils.log_info(message_prefix ~ " Finished " ~ relation_to_vacuum ~ " in " ~ total_seconds ~ "s") }}
{% else %}
{{ dbt_utils.log_info(message_prefix ~ ' Skipping relation "' ~ row.values() | join ('"."') ~ '" as it does not exist') }}
{% endif %}
{% endfor %}
{% endmacro %}
DBT เจเจฒเจพเจเจก
DBT เจจเฉเฉฐ เจเฉฑเจ เจธเฉเจตเจพ (เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจธเฉเจตเจพ) เจตเจเฉเจ เจตเจฐเจคเจฃเจพ เจธเฉฐเจญเจต เจนเฉเฅค เจธเจผเจพเจฎเจฒ:
- เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจ เจคเฉ เจฎเจพเจกเจฒเจพเจ เจฆเฉ เจตเจฟเจเจพเจธ เจฒเจ เจตเฉเฉฑเจฌ IDE
- เจจเฉเจเจฐเฉ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจ เจคเฉ เจธเจฎเจพเจ-เจธเจพเจฐเจฃเฉ
- เจฒเฉเจเจธ เจคเฉฑเจ เจธเจฐเจฒ เจ เจคเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจชเจนเฉเฉฐเจ
- เจคเฉเจนเจพเจกเฉ เจชเฉเจฐเฉเจเฉเจเจ เจฆเฉ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจตเจพเจฒเฉ เจตเฉเฉฑเจฌเจธเจพเจเจ
- เจเจจเฉเจเจเจฟเฉฐเจ CI (เจจเจฟเจฐเฉฐเจคเจฐ เจเจเฉเจเจฐเจฃ)
เจธเจฟเฉฑเจเจพ
DWH เจจเฉเฉฐ เจคเจฟเจเจฐ เจเจฐเจจเจพ เจ เจคเฉ เจธเฉเจตเจจ เจเจฐเจจเจพ เจเฉฑเจ เจธเจฎเฉเจฆเฉ เจชเฉเจฃ เจเจฟเฉฐเจจเจพ เจฎเจเจผเฉเจฆเจพเจฐ เจ เจคเฉ เจฒเจพเจญเจเจพเจฐเฉ เจฌเจฃ เจเจพเจเจฆเจพ เจนเฉเฅค DBT เจตเจฟเฉฑเจ เจเจฟเฉฐเจเจพ, เจเจชเจญเฉเจเจคเจพ เจเจเจธเจเฉเจเจธเจผเจจ (เจฎเฉเจกเจฟเจเจฒ), เจเฉฑเจ เจเฉฐเจชเจพเจเจฒเจฐ, เจเฉฑเจ เจเจเจเจผเฉเจเจฟเจเจเจฐ, เจ เจคเฉ เจเฉฑเจ เจชเฉเจเฉเจ เจฎเฉเจจเฉเจเจฐ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค เจเจนเจจเจพเจ เจคเฉฑเจคเจพเจ เจจเฉเฉฐ เจเจเฉฑเจ เฉ เจฐเฉฑเจ เจเฉ เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจกเฉเจเจพ เจตเฉเจ เจฐเจนเจพเจเจธ เจฒเจ เจเฉฑเจ เจธเฉฐเจชเฉเจฐเจจ เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเจพ เจตเจพเจคเจพเจตเจฐเจฃ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเฉเฅค เจ เฉฑเจ DWH เจฆเฉ เจ เฉฐเจฆเจฐ เจชเจฐเจฟเจตเจฐเจคเจจ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจเจฐเจจ เจฆเจพ เจธเจผเจพเจเจฆ เจนเฉ เจเฉเจ เจตเจงเฉเจ เจคเจฐเฉเจเจพ เจนเฉเฅค
DBT เจฆเฉ เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจฆเฉเจเจฐเจพ เจ เจชเจฃเจพเจ เจตเจฟเจธเจผเจตเจพเจธเจพเจ เจจเฉเฉฐ เจนเฉเจ เจฒเจฟเจเฉ เจ เจจเฉเจธเจพเจฐ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ:
- เจเฉเจก, GUI เจจเจนเฉเจ, เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃเจพเจคเจฎเจ เจคเจฐเจ เจจเฉเฉฐ เจชเฉเจฐเจเจ เจเจฐเจจ เจฒเจ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจเจฌเจธเจเจฐเฉเจเจธเจผเจจ เจนเฉ
- เจกเฉเจเจพ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ เจธเจพเจซเจเจตเฉเจ เจฐ เจเฉฐเจเฉเจจเฉเจ เจฐเจฟเฉฐเจ (เจธเจพเจซเจเจตเฉเจ เจฐ เจเฉฐเจเฉเจจเฉเจ เจฐเจฟเฉฐเจ) เจตเจฟเฉฑเจ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจ เจญเจฟเจเจธเจพเจ เจจเฉเฉฐ เจ เจจเฉเจเฉเจฒ เจฌเจฃเจพเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ
- เจจเจพเจเจผเฉเจ เจกเฉเจเจพ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจจเฉเฉฐ เจเจชเจญเฉเจเจคเจพ เจญเจพเจเจเจพเจฐเฉ เจฆเฉเจเจฐเจพ เจเจชเจจ เจธเฉเจฐเจธ เจธเฉเจซเจเจตเฉเจ เจฐ เจตเจเฉเจ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ
- เจธเจฟเจฐเจซเจผ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเฉเจฒ เจนเฉ เจจเจนเฉเจ, เจธเจเฉเจ เจเฉเจก เจตเฉ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจเจชเจจ เจธเฉเจฐเจธ เจเจฎเจฟเจเจจเจฟเจเฉ เจฆเฉ เจธเฉฐเจชเจคเฉ เจฌเจฃ เจเจพเจฃเจเฉ
เจเจนเจจเจพเจ เจฎเฉเจฒ เจตเจฟเจธเจผเจตเจพเจธเจพเจ เจจเฉ เจเฉฑเจ เจเจคเจชเจพเจฆ เจชเฉเจฆเจพ เจเฉเจคเจพ เจนเฉ เจเฉ เจ เฉฑเจ 850 เจคเฉเจ เจตเฉฑเจง เจเฉฐเจชเจจเฉเจเจ เจฆเฉเจเจฐเจพ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจเจน เจฌเจนเฉเจค เจธเจพเจฐเฉ เจฆเจฟเจฒเจเจธเจช เจเจเจธเจเฉเจเจธเจผเจจเจพเจ เจฆเจพ เจเจงเจพเจฐ เจฌเจฃเจพเจเจเจฆเฉ เจนเจจ เจเฉ เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจฌเจฃเจพเจ เจเจพเจฃเจเฉเฅค
เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฃ เจตเจพเจฒเจฟเจเจ เจฒเจ, เจเฉฑเจ เจเจชเจจ เจธเจฌเจ เจฆเจพ เจเฉฑเจ เจตเฉเจกเฉเจ เจนเฉ เจเฉ เจฎเฉเจ เจเฉเจ เจฎเจนเฉเจจเฉ เจชเจนเจฟเจฒเจพเจ OTUS เจตเจฟเจเฉ เจเฉฑเจ เจเฉเฉฑเจฒเฉ เจชเจพเจ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ เจฆเจฟเฉฑเจคเจพ เจธเฉ -
DBT เจ เจคเฉ เจกเจพเจเจพ เจตเฉเจ เจฐเจนเจพเจเจธเจฟเฉฐเจ เจคเฉเจ เจเจฒเจพเจตเจพ, OTUS เจชเจฒเฉเจเจซเจพเจฐเจฎ 'เจคเฉ เจกเจพเจเจพ เจเฉฐเจเฉเจจเฉเจ เจฐ เจเฉเจฐเจธ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ, เจฎเฉเจ เจ เจคเฉ เจฎเฉเจฐเฉ เจธเจนเจฟเจฏเฉเจเฉ เจเจ เจนเฉเจฐ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจ เจคเฉ เจเจงเฉเจจเจฟเจ เจตเจฟเจธเจผเจฟเจเจ 'เจคเฉ เจเจฒเจพเจธเจพเจ เจชเฉเฉเจนเจพเจเจเจฆเฉ เจนเจพเจ:
- เจตเฉฑเจกเฉ เจกเฉเจเจพ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฒเจ เจเจฐเจเฉเจเฉเจเจเจฐเจฒ เจงเจพเจฐเจจเจพเจตเจพเจ
- เจธเจชเจพเจฐเจ เจ เจคเฉ เจธเจชเจพเจฐเจ เจธเจเฉเจฐเฉเจฎเจฟเฉฐเจ เจจเจพเจฒ เจ เจญเจฟเจเจธ เจเจฐเฉ
- เจกเจพเจเจพ เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจฒเฉเจก เจเจฐเจจ เจฒเจ เจขเฉฐเจเจพเจ เจ เจคเฉ เจธเจพเจงเจจเจพเจ เจฆเฉ เจชเฉเจเฉเจฒ เจเจฐเจจเจพ
- DWH เจตเจฟเฉฑเจ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃเจพเจคเจฎเจ เจธเจผเฉเจ เจเฉเจธ เจฌเจฃเจพเจเจฃเจพ
- NoSQL เจธเฉฐเจเจฒเจช: HBase, Cassandra, ElasticSearch
- เจจเจฟเจเจฐเจพเจจเฉ เจ เจคเฉ เจเจฐเจเฉเจธเจเฉเจธเจผเจจ เจฆเฉ เจธเจฟเจงเจพเจเจค
- เจ เฉฐเจคเจฎ เจชเฉเจฐเฉเจเฉเจเจ: เจธเจฒเจพเจนเจเจพเจฐ เจธเจนเจพเจเจคเจพ เจฆเฉ เจ เจงเฉเจจ เจธเจพเจฐเฉ เจนเฉเจจเจฐเจพเจ เจจเฉเฉฐ เจเจเฉฑเจ เจพ เจเจฐเจจเจพ
เจฒเจฟเฉฐเจ:
DBT เจฆเจธเจคเจพเจตเฉเจเจผ - เจเจพเจฃ-เจชเจเจพเจฃ - เจ เจงเจฟเจเจพเจฐเจค เจฆเจธเจคเจพเจตเฉเจเจผเจเฉ, เจ เจธเจฒ เจตเจฟเฉฑเจ, เจกเฉเจฌเฉเจเฉ เจนเฉ? โ DBT เจฆเฉ เจฒเฉเจเจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจฆเฉเจเจฐเจพ เจฒเฉเจ เจฆเฉ เจธเจฎเฉเจเจฟเจ เจเจฐเฉเจเจฎเจพเจเจผเจพเจจ เจฐเฉเฉฑเจกเจธเจผเจฟเจซเจ เจธเจเฉเจฐเฉเจ เจฒเจ เจกเจพเจเจพ เจฌเจฟเจฒเจก เจเฉเจฒ โ YouTube, เจเฉฑเจ OTUS เจเฉเฉฑเจฒเฉ เจชเจพเจ เจฆเฉ เจฐเจฟเจเจพเจฐเจกเจฟเฉฐเจเจเฉเจฐเฉเจจเจชเจฒเจฎ เจจเฉเฉฐ เจเจพเจฃเจจเจพ - เจ เจเจฒเจพ เจเฉเฉฑเจฒเจพ เจชเจพเจ 15 เจฎเจ, 2020 เจนเฉเจกเจพเจเจพ เจเฉฐเจเฉเจจเฉเจ เจฐเจฟเฉฐเจ เจเฉเจฐเจธ -เจเจเจธเจเฉฑเจ เจชเจฐเจฟเจชเฉฑเจ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจตเจฐเจเจซเจฒเฉ เจฌเจฃเจพเจเจฃเจพ - เจกเฉเจเจพ เจ เจคเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฆเฉ เจญเจตเจฟเฉฑเจ 'เจคเฉ เจเฉฑเจ เจจเจเจผเจฐเจเจน เจเจชเจจ เจธเฉเจฐเจธ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฆเจพ เจธเจฎเจพเจ เจนเฉ - เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฆเจพ เจตเจฟเจเจพเจธ เจ เจคเฉ เจเจชเจจ เจธเฉเจฐเจธ เจฆเจพ เจชเฉเจฐเจญเจพเจตdbtCloud เจจเจพเจฒ เจจเจฟเจฐเฉฐเจคเจฐ เจเจเฉเจเจฐเจฃ เจ เจคเฉ เจเจเฉเจฎเฉเจเจฟเจก เจฌเจฟเจฒเจก เจเฉเจธเจเจฟเฉฐเจ - DBT เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ CI เจฌเจฃเจพเจเจฃ เจฆเฉ เจธเจฟเจงเจพเจเจคDBT เจเจฟเจเจเฉเจฐเจฟเจ เจฒ เจจเจพเจฒ เจธเจผเฉเจฐเฉเจเจค เจเจฐเจจเจพ - เจธเฉเจคเฉฐเจคเจฐ เจเฉฐเจฎ เจฒเจ เจ เจญเจฟเจเจธ, เจเจฆเจฎ-เจฆเจฐ-เจเจฆเจฎ เจจเจฟเจฐเจฆเฉเจธเจผเจเจพเจซเจฒ เจฆเฉ เจฆเฉเจเจพเจจ - เจเจฟเจฅเจฌ เจกเฉเจฌเฉเจเฉ เจเจฟเจเจเฉเจฐเจฟเจ เจฒ - เจเจฟเจฅเจฌ, เจตเจฟเจฆเจฟเจ เจ เจชเฉเจฐเฉเจเฉเจเจ เจเฉเจก
เจธเจฐเฉเจค: www.habr.com