← Back to all products

Databricks Notebook Framework

$59

Production-grade notebook development framework with structured project templates, reusable utility modules, testing patterns, and CI/CD integration for Databricks.

📁 15 files🏷 v1.0.0
PythonYAMLJSONMarkdownAzureDatabricksPySparkSparkCI/CD

📁 File Structure 15 files

databricks-notebook-framework/ ├── README.md ├── cicd/ │ ├── databricks.yml │ └── pre-commit-config.yaml ├── notebooks/ │ ├── bronze_ingest_template.py │ ├── gold_aggregate_template.py │ └── silver_transform_template.py ├── project-scaffold/ │ └── README.md ├── standards/ │ └── NOTEBOOK_STANDARDS.md ├── testing/ │ ├── conftest.py │ └── test_framework.py └── utils/ ├── config_manager.py ├── logging_utils.py ├── quality_checks.py └── secrets_manager.py

📖 Documentation Preview README excerpt

Databricks Notebook Framework

Production-grade notebook development framework for Databricks Lakehouse

By [Datanest Digital](https://datanest.dev) | Version 1.0.0 | $59

---

What You Get

A complete, battle-tested framework for building Databricks notebooks that follow medallion architecture best practices. Stop reinventing the wheel on every project — start with production-ready templates that handle logging, error handling, data quality, configuration, and CI/CD out of the box.

Key Features

  • Medallion Architecture Templates — Bronze, Silver, and Gold layer notebook templates with real-world patterns
  • Incremental & Full-Refresh Modes — Built-in watermark-based incremental ingestion with fallback to full refresh
  • Data Quality Framework — Null checks, uniqueness validation, referential integrity, and freshness monitoring
  • SCD Type 2 Support — Slowly changing dimension logic ready to use in Silver layer transformations
  • Structured Logging — Consistent, queryable logging across all notebooks with run context capture
  • Configuration Management — Widget-based parameters with environment variable fallbacks
  • Secrets Management — Unified interface for Databricks secret scopes and Azure Key Vault
  • Testing Framework — Nutter-pattern testing with pytest integration and mock fixtures
  • CI/CD Ready — Pre-commit hooks, DABs bundle configuration, and deployment templates
  • Development Standards — Comprehensive notebook standards document for team alignment

File Listing


databricks-notebook-framework/
├── README.md                              # This file
├── manifest.json                          # Package manifest
│
├── notebooks/
│   ├── bronze_ingest_template.py          # Bronze layer ingestion template
│   ├── silver_transform_template.py       # Silver layer transformation template
│   └── gold_aggregate_template.py         # Gold layer aggregation template
│
├── utils/
│   ├── logging_utils.py                   # Structured logging module
│   ├── config_manager.py                  # Widget & environment config management
│   ├── quality_checks.py                  # Data quality validation functions
│   └── secrets_manager.py                 # Secrets retrieval wrapper
│
├── testing/
│   ├── test_framework.py                  # Nutter-pattern notebook testing framework
│   └── conftest.py                        # Pytest fixtures with mock dbutils & spark
│
├── cicd/
│   ├── pre-commit-config.yaml             # Pre-commit hooks for notebook linting
│   └── databricks.yml                     # DABs bundle configuration template
│
├── standards/
│   └── NOTEBOOK_STANDARDS.md              # Notebook development standards
│
└── project-scaffold/
    └── README.md                          # Quick-start scaffold instructions

Getting Started

... continues with setup instructions, usage examples, and more.

📄 Code Sample .py preview

notebooks/bronze_ingest_template.py # Databricks notebook source # COMMAND ---------- # MAGIC %md # MAGIC # Bronze Layer Ingestion Template # MAGIC # MAGIC **Framework**: Databricks Notebook Framework by [Datanest Digital](https://datanest.dev) # MAGIC # MAGIC ## Purpose # MAGIC Ingest raw data from source into the Bronze layer of the Lakehouse. # MAGIC Supports both incremental (watermark-based) and full-refresh modes. # MAGIC # MAGIC ## Parameters # MAGIC | Widget | Description | Default | # MAGIC |--------|-------------|---------| # MAGIC | catalog | Unity Catalog name | `dev` | # MAGIC | schema | Target schema | `bronze` | # MAGIC | source | Source identifier / table name | *(required)* | # MAGIC | watermark_column | Column for incremental loads | `modified_at` | # MAGIC | run_mode | `incremental` or `full_refresh` | `incremental` | # COMMAND ---------- # MAGIC %md # MAGIC ## Setup & Configuration # COMMAND ---------- import uuid import json from datetime import datetime, timezone from pyspark.sql import functions as F from pyspark.sql.types import TimestampType, StringType # COMMAND ---------- # Widget Parameters dbutils.widgets.text("catalog", "dev", "Target Catalog") dbutils.widgets.text("schema", "bronze", "Target Schema") dbutils.widgets.text("source", "", "Source Identifier") dbutils.widgets.text("watermark_column", "modified_at", "Watermark Column") dbutils.widgets.dropdown("run_mode", "incremental", ["incremental", "full_refresh"], "Run Mode") catalog = dbutils.widgets.get("catalog") schema = dbutils.widgets.get("schema") source = dbutils.widgets.get("source") watermark_column = dbutils.widgets.get("watermark_column") run_mode = dbutils.widgets.get("run_mode") assert source, "Parameter 'source' is required and cannot be empty." # ... 228 more lines ...