This repository consists of a dbt project that transforms raw data sources into clear, formatted models for Analytics.
To learn more about the overall architecture design & strategy can be found in our centralized handbook:
Raw, unformatted data loaded directly from source systems using various data tools.
nba_data
- The primary source of NBA statistics data captured from an API & loaded via Airbyte.- Schema:
analytics.raw_nba_data
- Schema:
google_sheets
- Internally maintained reference sheets related to the project & loaded via Airbyte.- Schema:
analytics.raw_google_sheets
- Schema:
Transformed data models built via dbt with 3 distinct environments to enable a sustainable development workflow.
- Development
- Schema:
analytics.dev_[your-name]
- One per developer to avoid conflicts or overriding changes during development.
- Schema:
- CI
- Schema:
analytics.ci
- An isolated schema created specifically for testing Pull Request changes to ensure quality.
- Schema:
- Production
- Schemas:
analytics.staging
analytics.warehouse
analytics.marts
- Separation by layer for easier navigation and permission management.
- Schemas:
- Create your local development environment
- Use a local IDE (ex. VS Code), dbt Cloud or GitHub Codespaces
- Clone the current repo (or create a new one)
- Checkout the
main
branch and rungit pull
to sync changes
- Checkout the
- Create a New Branch for your new changes
- First, run
git branch your_branch_name
to create a new branch - Then run
git checkout your_branch_name
to switch to it
- First, run
- Start developing!
- Commit & Sync all changes to your branch during development
- IMPORTANT - All changes should follow the team Style Guide
- Create Pull Request
- When development is complete, Push your branch to GitHub & create a request
- Request peer reviews & confirm automated CI jobs succeed
- Merge changes to the
main
branch- Confirm automated post-merge jobs succeed
- Get latest changes in your local environment
- Checkout the
main
branch in your local terminal - Run "git pull" to sync the latest version of the code
- Checkout the
- Continue to develop & repeat the process
- Provide any other important call-outs of platform-specific information here.
- Learn more about dbt in the docs
- Check out Discourse for commonly asked questions and answers
- Join the chat on Slack for live discussions and support
- Check out the blog for the latest news on dbt's development and best practices