(我們會花相當多的時間來談論這件事)
models/marts
├── rental
│ ├── _rental__models.yml
│ ├── rental_fees.sql
│ └── water_and_electricity_fees.sql
└── tax
├── _tax__models.yml
├── business_taxes.sql
└── land_taxes.sql
在這個例子中,哪怕一樣是「支出」行為(rental,租金相關;tax,稅務相關),但因為不屬於相同的商業實體,所以一樣區分成不同的 mart。
讓我們來做個思考練習:當你今天是業務單位的 DA/BA 的時候,你會希望哪些大表被 join 好在一起,哪些可以分開來,以讓你的 query 費用最小化呢?
如果我把所有的資料放在一起,是不是稅務部門要查資料的時候,每次都要選 payments.sql,然後 where paymen_type = "tax"?換句話說,越理解商務部門的決策習慣,analytic engineers 越是有辦法精簡 data mart 的架構設計。