Dasar-Dasar DBT (Data Build Tool)
Modelkan data gudang sebagai pernyataan SELECT dalam dbt, dengan ref, sumber, dan model inkremental
Dasar-Dasar DBT (Data Build Tool) adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
Apa Itu dbt
dbt adalah "T" dalam ELT: dbt mentransformasikan data di dalam gudang data Anda menggunakan pernyataan SELECT. Anda mendefinisikan model (SELECT), lalu dbt mewujudkannya sebagai tabel atau tampilan, mengelola dependensi, dan menjalankan pengujian.
Mengapa dbt
Sebelum dbt, transformasi berada dalam skrip SQL ad hoc, prosedur tersimpan, atau tugas Python. dbt menyediakan:
- SQL modular sebagai kode yang diberi versi di Git
- Graf dependensi (ref()) sebagai pengganti pengurutan manual
- Pengujian sebagai objek kelas satu
- Pembuatan dokumentasi
Struktur Proyek
Sebuah proyek dbt:
my_project/
dbt_project.yml
models/
staging/
stg_orders.sql
marts/
fct_revenue.sql
tests/
seeds/
macros/Berkas Model
Hanya sebuah SELECT dalam berkas .sql:
-- models/staging/stg_orders.sql
{{ config(materialized='view') }}
SELECT
id,
user_id,
total,
created_at
FROM {{ source('raw', 'orders') }}Jenis Materialisasi
- view — dbt membuat VIEW; cepat diperbarui, lebih lambat saat dikueri
- table — tabel lengkap; dibuat ulang setiap kali dijalankan
- incremental — hanya baris baru yang ditambahkan
- ephemeral — CTE yang disisipkan, tanpa objek basis data
ref() dan Dependensi
Referensikan satu model dari model lain:
-- models/marts/fct_revenue.sql
SELECT
date_trunc('day', created_at) AS day,
SUM(total) AS revenue
FROM {{ ref('stg_orders') }}
GROUP BY 1Menjalankan dbt
Bangun seluruh proyek:
dbt run # build all models
dbt run --select staging # subset
dbt run --select +fct_revenue # this model and upstream
dbt build # run + testSumber Data
Sumber mendokumentasikan dan merujuk tabel mentah:
# models/sources.yml
sources:
- name: raw
database: warehouse
tables:
- name: ordersModel Inkremental
Untuk tabel fakta yang sangat besar:
{{ config(materialized='incremental', unique_key='id') }}
SELECT *
FROM {{ source('raw','orders') }}
{% if is_incremental() %}
WHERE created_at > (SELECT MAX(created_at) FROM {{ this }})
{% endif %}Templat Jinja
dbt adalah SQL + Jinja, sehingga Anda dapat melakukan perulangan dan membuat SQL secara kondisional:
{% set tiers = ['free','pro','enterprise'] %}
SELECT user_id,
{% for t in tiers %}
COUNT(*) FILTER (WHERE tier = '{{ t }}') AS {{ t }}_count {% if not loop.last %},{% endif %}
{% endfor %}
FROM users GROUP BY user_idSnapshot
Dimensi yang berubah secara perlahan ditangkap secara otomatis:
{% snapshot user_snapshot %}
{{ config(
target_schema='snapshots',
unique_key='id',
strategy='timestamp',
updated_at='updated_at',
) }}
SELECT * FROM {{ source('raw','users') }}
{% endsnapshot %}Dokumentasi
Buat dokumentasi yang dapat ditelusuri secara otomatis dari model Anda dan deskripsi YAML:
dbt docs generate
dbt docs serve # opens browserRingkasan
dbt memodelkan transformasi data sebagai kode SQL.
- Model = SELECT dalam berkas .sql
- ref() membangun DAG
- Materialisasi: view / table / incremental / ephemeral
- Pengujian dan dokumentasi sebagai fitur kelas satu
Pemeriksaan Singkat
Apa yang dilakukan {{ ref('stg_orders') }} milik dbt?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dasar-Dasar DBT (Data Build Tool)” gratis?
Ya — teks lengkap “Dasar-Dasar DBT (Data Build Tool)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dasar-Dasar DBT (Data Build Tool)”?
Modelkan data gudang sebagai pernyataan SELECT dalam dbt, dengan ref, sumber, dan model inkremental Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Dasar-Dasar DBT (Data Build Tool)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar-Dasar DBT (Data Build Tool)
- SQLFluff dan Linting
- Menguji SQL: test dbt, Great Expectations
- CI untuk Perubahan Skema (GitHub Actions)