0Pricing
SQL Academy · Pelajaran

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 1

Menjalankan 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 + test

Sumber Data

Sumber mendokumentasikan dan merujuk tabel mentah:

# models/sources.yml
sources:
  - name: raw
    database: warehouse
    tables:
      - name: orders

Model 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_id

Snapshot

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 browser

Ringkasan

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

  1. Dasar-Dasar DBT (Data Build Tool)
  2. SQLFluff dan Linting
  3. Menguji SQL: test dbt, Great Expectations
  4. CI untuk Perubahan Skema (GitHub Actions)
← Kembali ke SQL Academy