Automated metadata discovery, data dictionary generation, quality scoring, and searchable catalog for Databricks Unity Catalog.
By Datanest Digital | Version 1.0.0 | $39
data-catalog-builder/
βββ README.md
βββ manifest.json
βββ LICENSE
βββ src/
β βββ catalog_scanner.py # Unity Catalog metadata discovery
β βββ metadata_enricher.py # Business metadata enrichment
β βββ lineage_mapper.py # Column-level lineage tracing
β βββ search_index.py # Full-text catalog search
β βββ quality_scorer.py # Data quality scoring engine
β βββ catalog_reporter.py # Markdown report generator
βββ configs/
β βββ catalog_config.yaml # Scanner and enrichment settings
β βββ classification_rules.yaml # PII / sensitivity classification
β βββ templates/
β βββ table_doc.md.j2 # Jinja2 table documentation template
βββ notebooks/
β βββ scan_catalog.py # Run catalog discovery scan
β βββ catalog_dashboard.py # Catalog health dashboard
βββ tests/
β βββ conftest.py # Shared test fixtures
β βββ test_catalog_scanner.py # Scanner tests
β βββ test_quality_scorer.py # Quality scoring tests
βββ guides/
βββ data-catalog-guide.md # Setup and usage guide
Follow this guide to get data catalog builder up and running in your environment.
Edit configs/catalog_config.yaml with your Unity Catalog settings:
scanner:
catalogs: ["main"]
schemas: ["bronze", "silver", "gold"]
exclude_patterns: ["_tmp_*", "_staging_*"]from src.catalog_scanner import CatalogScanner
scanner = CatalogScanner(config_path="configs/catalog_config.yaml")
catalog = scanner.scan_all()
print(f"Discovered {catalog.table_count} tables across {catalog.schema_count} schemas")from src.metadata_enricher import MetadataEnricher
enricher = MetadataEnricher(config_path="configs/catalog_config.yaml")
enricher.apply_tags(catalog)
enricher.classify_columns(rules_path="configs/classification_rules.yaml")from src.quality_scorer import QualityScorer
scorer = QualityScorer()
scores = scorer.score_catalog(catalog)
for table, score in scores.items():
print(f"{table}: {score.overall:.0f}/100")from src.catalog_reporter import CatalogReporter
reporter = CatalogReporter(template_path="configs/templates/table_doc.md.j2")
reporter.generate_all(catalog, output_dir="/Workspace/docs/catalog")ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Unity Catalog β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β β Bronze β β Silver β β Gold β β
β β tables β β tables β β tables β β
β ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ β
βββββββββΌβββββββββββββββΌββββββββββββββΌβββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββββββββββββββββββββββββββββββ
β Catalog Scanner β
β (discover tables, columns, stats) β
βββββββββββββββββββ¬βββββββββββββββββββββββββ
β
βββββββββββββββΌββββββββββββββ
βΌ βΌ βΌ
ββββββββββ ββββββββββββ ββββββββββββββββ
βMetadataβ β Quality β β Lineage β
βEnricherβ β Scorer β β Mapper β
βββββ¬βββββ ββββββ¬ββββββ ββββββββ¬ββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββββββββββββββββββββββββββββββββββ
β Search Index + Catalog Reporter β
β (search, browse, export documentation) β
ββββββββββββββββββββββββββββββββββββββββββββ
Get the full Data Catalog Builder and unlock everything.
Get the complete guide with every chapter unlocked, including code samples, diagrams, and best practices.
Access all interactive tools with complete data, all workload profiles, and the full scenario library.
Downloadable source code, configuration files, and working examples from every chapter.
Free updates for life. Every new chapter, tool, and improvement included.