當您可以改用 SQL 架構約束時,您什么時候想要使用dbt 架構測驗(unique, not_null, accepted_values, & relationships)?
例如,這里有一些 SQL 模式約束可以替換每個 dbt 模式測驗:
unique:UNIQUE約束not_null:NOT NULL約束accepted_values:對查找表的FOREIGN KEY約束relationships:FOREIGN KEY約束到另一個表
uj5u.com熱心網友回復:
dbt 測驗比資料庫約束更靈活。如果您嘗試將空值插入非空目標,您的程序將失敗,故事結束。使用 dbt 測驗,您可以先執行,后測驗,這可能很有趣。
更多例子:
- 您可以將測驗分類為警告而不是錯誤
- 您可以定義錯誤閾值
- 您可以指定過濾器以僅將測驗應用于值的子集
- 測驗在不同環境(prod/dev 等)中的行為可能不同
- dbt 測驗比資料庫約束更容易修改
uj5u.com熱心網友回復:
您不能對視圖或 CTE 具有上面列出的表約束。dbt 的價值在于允許用戶構建SELECT查詢的 DAG,而不必擔心 DDL 或配置。稍后可以將它們配置為表格而不是默認視圖,并且無需更改語法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/371681.html
