Skip to content

tikalk/abc-dbt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Tikal CNE DBT Enterprise Template

DBT Version Python BigQuery Snowflake License: MIT

Enterprise-grade DBT template with advanced CLI tooling, automated workflows, and production-ready data pipelines

An opinionated, battle-tested DBT project template designed for enterprise data teams. Features intelligent CLI automation, comprehensive validation, and seamless integration with modern data orchestration platforms like Dagster.

✨ Key Features

  • 🎯 Smart CLI Interface - Interactive command-line tools for rapid development
  • πŸ—οΈ Enterprise Architecture - Staging β†’ Marts data modeling patterns
  • πŸ”„ Dagster Integration - Native support for asset-based orchestration
  • πŸ›‘οΈ Advanced Validation - SQL linting, model validation, and data quality checks
  • πŸš€ CI/CD Ready - Production-grade GitHub Actions workflows
  • πŸ“Š Multi-Warehouse Support - BigQuery, Snowflake, and more
  • πŸ” Data Observability - Built-in monitoring with Elementary Data
  • πŸ“ Auto-Documentation - Self-documenting models and lineage

🎬 Quick Demo

# Set up your environment in seconds
task setup-env

# Launch the interactive CLI
task cli

# Create a new data domain with models
create domain security_tools --sub-domain crowdstrike
create model --domain security_tools --type staging --name endpoint_data

# Run your pipeline
task dbt:build

πŸ›οΈ Architecture Overview

πŸ“ models/
β”œβ”€β”€ πŸ”§ staging/          # Clean, standardized source data
β”‚   β”œβ”€β”€ integration_tools/
β”‚   β”‚   β”œβ”€β”€ okta/        # Identity & access management
β”‚   β”‚   β”œβ”€β”€ crowdstrike/  # Endpoint security
β”‚   β”‚   └── active_directory/
β”‚   └── infra/           # Pipeline metadata & metrics
└── πŸͺ marts/            # Business-ready analytics tables
    β”œβ”€β”€ security/        # Security analytics
    β”œβ”€β”€ compliance/      # Compliance reporting
    └── operations/      # Operational insights

πŸš€ Quick Start

Prerequisites

  • Go-task - Task runner
  • Python 3.12+
  • Access to BigQuery or Snowflake

1. Environment Setup

# Automated setup (installs gh, uv, pre-commit)
task setup-env

# Or use dev container for containerized development
# (see .devcontainer configuration)

2. Configuration

# Copy and configure environment
cp .env_example .env
# Edit .env with your warehouse credentials

# Test your setup
task test-setup

3. Launch CLI

# Start interactive CLI with autocomplete
task cli

# Verify warehouse connection
task dbt:debug

πŸŽ›οΈ CLI Commands

Our intelligent CLI provides guided workflows for common tasks:

πŸ“Š Data Modeling

create domain <domain_name>              # Create new data domain
create model --domain <name> --type <staging|marts>  # Generate models
create integration-tool <tool_name>      # Add new data source
create macro --name <macro_name>         # Reusable SQL components

πŸ” Development & Testing

task dbt:run --select <model>           # Run specific models
task dbt:test                           # Execute data tests
task dbt:build                          # Full build pipeline
task dbt:docs                           # Generate documentation

πŸ› οΈ Quality & Validation

validate all                            # Run all validations
task dbt:lint                          # SQL formatting
task dbt:format                        # Auto-fix formatting

πŸ“ˆ Monitoring & Observability

task dbt:edr-report                     # Elementary data report
learn catalog                          # Explore data catalog
select organization                     # Switch contexts

πŸ—οΈ Project Structure

πŸ“‚ Models Organization

models/
β”œβ”€β”€ staging/                    # 🧹 Data cleaning & standardization
β”‚   β”œβ”€β”€ _sources.yml           # Source definitions
β”‚   └── stg_<source>_<entity>.sql
β”œβ”€β”€ marts/                      # 🎯 Business logic & analytics
β”‚   β”œβ”€β”€ core/                  # Core business entities
β”‚   β”œβ”€β”€ finance/               # Financial analytics
β”‚   └── security/              # Security metrics
└── intermediate/              # πŸ”„ Reusable transformations

πŸ”§ Macros & Utilities

macros/
β”œβ”€β”€ create_database/           # Database management
β”œβ”€β”€ generate_schema_name/      # Dynamic schema naming
β”œβ”€β”€ get_custom_alias/          # Table aliasing
└── normalization/             # Data standardization

πŸ§ͺ Testing & Validation

  • Generic Tests: Uniqueness, not-null, referential integrity
  • Singular Tests: Custom business logic validation
  • Data Quality: Elementary data monitoring
  • SQL Linting: SQLFluff integration

πŸ”„ CI/CD Pipeline

Our GitHub Actions workflow provides:

  • πŸ” Slim CI - Only test changed models
  • πŸ§ͺ Automated Testing - Data quality validation
  • πŸ“Š Documentation - Auto-generated data catalog
  • πŸš€ Deployment - Multi-environment support
  • πŸ“ˆ Monitoring - Performance tracking

Pipeline Stages

  1. Validation β†’ SQL linting, model validation
  2. Testing β†’ Unit tests, data quality checks
  3. Build β†’ Compile and run models
  4. Deploy β†’ Environment-specific deployment
  5. Monitor β†’ Data freshness and quality alerts

πŸ›‘οΈ Data Quality & Governance

Built-in Validations

  • Schema Enforcement - Automatic schema validation
  • Data Freshness - Source data recency checks
  • Referential Integrity - Cross-table relationship validation
  • Custom Business Rules - Domain-specific data quality tests

Pre-commit Hooks

  • πŸ”’ Security scanning (detect private keys)
  • πŸ“ SQL formatting (SQLFluff)
  • 🐍 Python code quality (black, isort, mypy)
  • πŸ§ͺ DBT validations (parsing, testing)

πŸ”§ Configuration

Environment Variables

# Warehouse Configuration
SNOWFLAKE_ACCOUNT=your-account
SNOWFLAKE_USER=your-username
SNOWFLAKE_PASSWORD=your-password
SNOWFLAKE_DATABASE=your-database

# BigQuery Configuration  
GOOGLE_APPLICATION_CREDENTIALS=path/to/credentials.json
BQ_PROJECT=your-project-id
BQ_DATASET=your-dataset

# Pipeline Configuration
ORG_ID=your-organization-id
DBT_TARGET=dev  # dev, staging, prod

Profiles Configuration

The project supports multiple target environments with automatic schema and database naming conventions.

πŸ“š Documentation & Learning

πŸ“– Getting Started Guides

πŸŽ“ Recommended Reading

πŸ”Œ IDE Extensions

🚨 Troubleshooting

Common Issues

Connection Problems

task dbt:debug  # Validate warehouse connection

Model Compilation Errors

dbt build --debug  # Verbose logging
# Check compiled SQL in target/compiled/

Performance Issues

task dbt:run --select "+state:modified"  # Slim runs

Debug Mode

Enable detailed logging for troubleshooting:

export DBT_LOG_LEVEL=debug
task dbt:run --debug

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork and clone the repository
  2. Create a feature branch
  3. Make your changes with tests
  4. Run validation: task validate
  5. Submit a pull request

πŸ“Š Monitoring & Observability

Elementary Data Integration

  • Data Quality Monitoring - Automated anomaly detection
  • Lineage Tracking - Visual data flow representation
  • Performance Metrics - Query performance insights
  • Alerting - Slack/email notifications for issues

Usage Analytics

Track model usage, performance, and data freshness with built-in monitoring dashboards.

🏒 Enterprise Features

  • Multi-tenant Architecture - Organization and instance isolation
  • Role-based Access Control - Fine-grained permissions
  • Audit Logging - Complete change tracking
  • Disaster Recovery - Backup and restore procedures
  • Compliance Ready - SOX, GDPR, HIPAA support

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE.md file for details.

πŸ™ Acknowledgments

Built with ❀️ by the Tikal CNE team using:


Ready to transform your data pipeline? πŸš€ Get started or explore the docs!

About

Dbt data platform for abc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages