การสร้างโปรเจกต์ dbt

dbt เบื้องต้น

Mike Metzger

Data Engineer

โปรเจกต์ dbt คืออะไร

  • ประกอบด้วยส่วนประกอบสำหรับทำงานกับข้อมูลใน dbt

    • การกำหนดค่าโปรเจกต์
    • แหล่งข้อมูลและปลายทาง
    • SQL queries
    • เทมเพลต
    • เอกสารประกอบ
  • จัดในรูปแบบโครงสร้างโฟลเดอร์

โครงสร้างโฟลเดอร์ dbt

dbt เบื้องต้น

วิธีสร้างโปรเจกต์ใหม่

  • ใช้คำสั่ง dbt init
    • ถามชื่อโปรเจกต์
    • ถามประเภทฐานข้อมูล / data warehouse
  • รวมเป็นคำสั่งเดียวได้ด้วย dbt init <projectname>
  • สร้างโฟลเดอร์หลักและโครงสร้างที่จำเป็นทั้งหมด
repl:~/workspace$ dbt init
16:38:37  Running with dbt=1.8.4
Enter a name for your project (letters, digits, underscore): test_project
Which database would you like to use? [1] duckdb
Enter a number: 1
...
dbt เบื้องต้น

การกำหนดค่าด้วย project profiles

  • Profile แทนสถานการณ์การ deploy แต่ละแบบ
    • Development
    • Staging / Test
    • Production
  • โปรเจกต์ dbt มีได้หลาย profile
  • กำหนดค่าในไฟล์ profiles.yml
marketing_campaign_results:
  outputs:
    dev:
      type: duckdb
      path: dbt.duckdb
    prod:
      type: snowflake
      ...
  target: dev
dbt เบื้องต้น

YAML

  • ย่อมาจาก Yet Another Markup Language
  • ไฟล์ข้อความที่ spacing มีความสำคัญ (เหมือน Python)
  • ใช้กำหนดค่าในหลากหลายสถานการณ์
  • กฎอาจซับซ้อน — หลักๆ ให้จัดแนว entry ให้ตรงกับตัวอย่าง
marketing_campaign_results:
  outputs:
    dev:
      type: duckdb
      path: dbt.duckdb
    prod:
      type: snowflake
      ...
  target: dev
dbt เบื้องต้น

DuckDB

  • ฐานข้อมูล serverless แบบ open-source
    • คล้ายกับ sqlite
  • ออกแบบมาเพื่องานวิเคราะห์ข้อมูล
  • ใช้ vectorized processing (หมายถึง เร็วมาก)
  • ใช้งานง่าย

โลโก้ duckdb

dbt เบื้องต้น

มาฝึกกันเถอะ!

dbt เบื้องต้น

Preparing Video For Download...