Không dài dòng, bài viết này giới thiệu Turntable - một Extension Visual Studio Code rất tiện mà mình phát hiện ra khi làm project dbt core, bao gồm cả sự hỗ trợ việc dbt documentation bằng AI. Ok bắt đầu thôi!
Turntable là gì vậy?
Một extension vscode, chỉ vậy thôi, và nó hỗ trợ mình trong việc development với dbt (core) tiện lợi hết mức có thể, các tính năng chính liệt kê sơ sơ đã thấy "khoái":
- Column-level lineage: data lineage ở tầng column, biết column tính từ column nào của bảng nào
- AI Autofill dbt docs: Dùng AI để tự động điền description cho model/column (cái này siêu tiện)
- Query preview: Xem kết quả query bằng shortcut như đang trên SQL Editor
- ...
Đợt mới launch, thằng này còn được gọi là "dbt copilot" 🤣
Để tải thì mở mục Extensions trên VS Code và search "turntable" thôi nhé bà con.
Query Preview
Như tên thôi, đơn giản là xem trước preview result của một model dbt bằng cách nhấn shortcut huyền thoại Ctrl + Enter. Với cái này thì đỡ phải dbt run
rồi đợi debug, xoá materialize trên warehouse cũng cực lắm.
Column-level lineage
Đơn giản là xem dependencies của các models dbt với nhau, nhưng nó xịn xò hơn ở data lineage default của dbt docs ở chỗ: xem được ở level column.
Như ví dụ bên dưới, mình biết được column item_profit
của model ở intermediate được depends on hai thằng upstream và ngờ ngợ được công thức là item_profit = sale_price - cost
, ngoài ra column này cũng sẽ có downstream nằm ở bảng dim_orders
.
Với feature này, xem upstream và downstream của một model dbt nó lại tiện khỏi nói.
Documentation with AI
Ok phần mình thích đây rồi. Turntable cho dùng free LLM để gen ra mô tả cho model bao gồm cả column (không biết tương lai có pricing hay không 😁), với việc dùng AI để gen ra mô tả đồng nghĩa với việc mình chỉ cần double check lại để xem nó mô tả đúng hay không, lại +1 sự tiện lợi.
Phần documentation sẽ được ghi thẳng vào file yaml trong folder layer của dbt model.
Hạn chế của turntable
Hình như em này không dùng được với dbt cloud
anh em à, theo như web pricing nó bảo chỉ support cho dbt core
thôi, https://www.turntable.so/get-started.
Trong tương lai mà có feature support anh em add test tiện hơn nữa thì ngon, thay vì phải input yaml.