Skip to content

Latest commit

Β 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Databricks Asset Bundle - AWS Databricks

Complete Databricks Asset Bundle (DAB) with automated CI/CD for AWS Databricks.

Repository: https://github.com/chandrur44/Databricks-Asset-Bundles


πŸš€ Quick Start

New to this project?

πŸ‘‰ Start here: docs/README_FIRST.md

Want to deploy quickly?

πŸ‘‰ Follow: docs/QUICK_START_AWS.md (10 steps, 35 minutes)

Setting up GitHub CI/CD?

πŸ‘‰ Read: docs/GITHUB_QUICK_SETUP.md (Quick checklist)


πŸ“‹ What This Project Provides

βœ… Multi-environment support - Dev, UAT, Production βœ… Automated CI/CD - GitHub Actions workflow included βœ… Complete DAB structure - Jobs, notebooks, DLT pipelines, SQL queries βœ… AWS Databricks optimized - S3 storage, EC2 instances βœ… Fully dynamic - Configure via GitHub secrets βœ… Starter templates - Sample notebooks and jobs ready to customize


πŸ“ Project Structure

.
β”œβ”€β”€ databricks.yml              # Main DAB configuration
β”œβ”€β”€ .github/workflows/          # GitHub Actions CI/CD
β”œβ”€β”€ config/                     # Environment configs (dev, uat, prod)
β”œβ”€β”€ resources/                  # Jobs, pipelines, queries
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ notebooks/             # Python notebooks
β”‚   β”œβ”€β”€ dlt/                   # Delta Live Tables
β”‚   β”œβ”€β”€ sql/                   # SQL scripts
β”‚   └── files/                 # Additional files
β”œβ”€β”€ tests/                     # Test files
└── docs/                      # Documentation

🎯 Key Features

Automated Deployments

  • Push to develop β†’ Auto-deploys to Dev
  • Push to main β†’ Auto-deploys to UAT
  • Manual workflow β†’ Deploys to Prod (with approval)

Everything is Dynamic

  • No hardcoded secrets
  • All credentials in GitHub secrets
  • Environment-specific configurations
  • Easy to update and maintain

AWS Databricks Ready

  • S3 storage paths configured
  • EC2 instance types (i3.xlarge, i3.2xlarge)
  • Unity Catalog support
  • Service Principal authentication

πŸ“š Documentation

Document Description
README_FIRST.md πŸ‘ˆ Start here - Main navigation
QUICK_START_AWS.md ⚑ Deploy in 10 steps (35 min)
GITHUB_QUICK_SETUP.md πŸ”§ GitHub CI/CD setup checklist
GITHUB_SETUP.md πŸ“– Complete GitHub setup guide
DEPLOYMENT_GUIDE_AWS.md πŸ“š Detailed deployment instructions
AWS_DATABRICKS_SETUP.md βš™οΈ AWS configuration summary
START_HERE_AWS.md πŸ—ΊοΈ AWS navigation guide
PROJECT_OVERVIEW.md πŸ“Š Architecture overview
FINAL_SETUP.md βœ… Complete setup summary

πŸ” Prerequisites

Required:

  1. βœ… 3 AWS Databricks workspaces (Dev, UAT, Prod)
  2. βœ… Service Principal in each workspace
  3. βœ… GitHub repository (this one!)
  4. βœ… Databricks CLI (v0.200.0+)

GitHub Secrets (5 required):

DATABRICKS_DEV_HOST
DATABRICKS_UAT_HOST
DATABRICKS_PROD_HOST
DATABRICKS_CLIENT_ID
DATABRICKS_CLIENT_SECRET

πŸ‘‰ See docs/GITHUB_QUICK_SETUP.md for setup instructions


πŸš€ Quick Deployment

# 1. Clone the repository
git clone https://github.com/chandrur44/Databricks-Asset-Bundles.git
cd Databricks-Asset-Bundles

# 2. Update config files (config/dev.yml, uat.yml, prod.yml)
vim config/dev.yml  # Add your workspace URL and S3 bucket

# 3. Set environment variables
export DATABRICKS_CLIENT_ID="your-app-id"
export DATABRICKS_CLIENT_SECRET="your-secret"

# 4. Deploy to Dev
databricks bundle validate -t dev
databricks bundle deploy -t dev

# 5. Test
databricks bundle run sample_etl_job -t dev

πŸ”„ CI/CD Workflow

develop branch β†’ Validates β†’ Deploys to Dev (automatic)
    ↓
main branch β†’ Validates β†’ Deploys to UAT (automatic)
    ↓
Manual trigger β†’ Validates β†’ Deploys to Prod (requires approval)

πŸ“¦ What's Included

Notebooks (8 files)

  • Bronze layer ingestion
  • Silver layer transformation
  • Gold layer aggregation
  • Data quality checks
  • DLT pipelines (batch + streaming)

Jobs (3 workflows)

  • Sample ETL job (Bronze β†’ Silver β†’ Gold)
  • Data quality job
  • SQL query job

Pipelines (2 DLT)

  • Batch processing pipeline
  • Streaming pipeline

SQL Queries (3 files)

  • Daily metrics
  • Customer analysis
  • Data quality reporting

πŸ› οΈ Configuration

All configurations are in the config/ directory:

  • config/dev.yml - Development environment
  • config/uat.yml - UAT environment
  • config/prod.yml - Production environment

Dynamic variables:

  • ${env.DATABRICKS_CLIENT_ID} - From GitHub secrets
  • Workspace URLs - Set per environment
  • S3 buckets - Set per environment
  • Instance types - Set per environment

πŸ†˜ Need Help?

  1. Quick questions? Check docs/README_FIRST.md
  2. Setup help? Read docs/GITHUB_QUICK_SETUP.md
  3. Deployment issues? See docs/DEPLOYMENT_GUIDE_AWS.md
  4. GitHub Actions not working? Read docs/GITHUB_SETUP.md

πŸ”— Quick Links


πŸ“Š Repository Stats

  • 32 files tracked
  • 8 notebooks ready to customize
  • 3 workflow jobs defined
  • 2 DLT pipelines configured
  • 3 environments supported
  • 100% dynamic configuration

βœ… Getting Started Checklist

GitHub Setup:
☐ Fork or clone this repository
☐ Add 5 GitHub secrets
☐ Create 3 GitHub environments (dev, uat, production)

Configuration:
☐ Update config/dev.yml with your Dev workspace URL
☐ Update config/uat.yml with your UAT workspace URL
☐ Update config/prod.yml with your Prod workspace URL
☐ Update S3 bucket names in all config files

Deployment:
☐ Push to develop branch to deploy to Dev
☐ Push to main branch to deploy to UAT
☐ Use manual workflow to deploy to Prod

πŸŽ‰ You're Ready!

Your Databricks Asset Bundle is:

  • βœ… Version controlled
  • βœ… Fully automated
  • βœ… 100% dynamic
  • βœ… Production ready

Start here: docs/README_FIRST.md πŸš€


πŸ“„ License

[Your License Here]


Made with ❀️ for AWS Databricks

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages