Usage ============ Droughty depends on a number factors to be useful. These factors can be split into two considerations, tooling and development approaches. ------------- **Tooling** Droughty is most useful when using one of the supported warehouses (goes without saying), dbt, looker and dbml. With these all being present, droughty can nicely fit within a development workflow and automate some of the boring stuff. ------------- **Development approaches** **Looker approaches** Droughty outputs a base.layer which contains dimensions from the analytics layer. This is most useful when using either a series of refinements or extends that sit over the base layer. It's best then paired with a layered modelling approach with a staging, integration and aggregate layer. **Why is this useful?** - it allows you to have a floating base layer that's coupled to the warehouse through machine generated code, saving time and perhaps reducing error - it ensures that the labelling and descriptions are identical within the warehouse and looker. - there's scope to automate the generation of measures **Warehousing approaches** Droughty outputs lookml, dbml and dbt schemas based on an dataset/schema warehouse structure. It depends on a separate dataset/schema for the staging, integration and the warehouse/analytics layer. This is pretty easy to achieve with these dbt_project.yml configs:: models: +persist_docs: relation: true columns: true example_dw: staging: materialized: view schema: staging integration: materialized: view schema: integration warehouse: materialized: table data_quality: materialized: table schema: data_quality utils: materialized: table schema: logs Droughty also depends on some naming conventions * primary key's end in pk * foreign key's end in fk **Summary** If you meet the majority of the requirements above, there's a chance this will be useful... I personally use droughty with the following steps: * I run dbt-test to generate tests as I go throughout my dbt dev work * I run dbml before raising a PR so that there's an update ERD of the warehouse for documentation and to include in the PR Summary * I run lookml as a pre-commit hook so that looker is always up-to-date with the warehouse Any questions, raise them in GitHub. Thanks.