Data Engineering

dbt - Tính năng nâng cao

Macro Jinja, test tùy chỉnh, packages, hooks, snapshots (SCD), incremental models, dbt Cloud, CI/CD

20 câu hỏi phỏng vấn·
Senior
1

Trong dbt, mục đích chính của macro Jinja là gì?

Câu trả lời

Macro Jinja cho phép tái sử dụng mã trên nhiều model dbt. Chúng hoạt động như các hàm nhận tham số và trả về mã SQL được tạo động. Điều này tránh trùng lặp mã và giúp dễ bảo trì các phép biến đổi phức tạp trong toàn bộ dự án.

2

Làm thế nào để định nghĩa một macro dbt có thể tái sử dụng trong một file?

Câu trả lời

Một macro dbt được định nghĩa bằng cú pháp macro/endmacro của Jinja trong tệp .sql trong thư mục macros. Tên macro được chỉ định sau từ khóa macro, theo sau là các tham số trong dấu ngoặc đơn. Macro này sau đó có thể được gọi từ bất kỳ model nào trong dự án.

3

Sự khác biệt giữa chiến lược 'timestamp' và 'check' cho dbt snapshots là gì?

Câu trả lời

Chiến lược timestamp so sánh cột ngày cập nhật (updated_at) để phát hiện thay đổi, hiệu suất cao hơn vì chỉ so sánh một cột. Chiến lược check so sánh các giá trị của các cột được chỉ định (check_cols) để phát hiện bất kỳ thay đổi nào, hữu ích khi không có cột timestamp đáng tin cậy.

4

Những cột nào được dbt tự động thêm khi tạo snapshot?

5

Làm thế nào để cấu hình một model incremental với chiến lược 'merge' trong dbt?

+17 câu hỏi phỏng vấn

Các chủ đề phỏng vấn Data Engineering khác

Nắm vững Data Engineering cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí