Learn how to develop dbt models, Python applications, Streamlit dashboards, and Metrics project using the IDE with best practices and examples
Focus: Master the development workflows for different types of data applications, from dbt transformations to Python scripts and interactive Streamlit dashboards.The 5X IDE provides specialized development environments for the most common data development tasks. This guide covers practical workflows for building data models, applications, and dashboards with real examples and best practices.
Development EnvironmentThe IDE comes pre-configured with multiple Python versions, dbt environments, and development tools. No additional setup required for basic development tasks.
The IDE comes pre-installed with multiple Python versions managed through pyenv, providing flexibility for different project requirements and dependency compatibility.Available Python versions:
Python 3.8.20 - Extended legacy support for older projects
Python 3.9.23 - Legacy support for older projects
Python 3.10.18 - Stable version with good package compatibility
Python 3.11.13 - Default version (set by PYENV_VERSION)
Python 3.12.11 - Latest stable with performance improvements
Python 3.13.4 - Cutting-edge features and optimizations
Python virtual environments provide isolated dependency management for your projects, preventing conflicts between different project requirements.Create a virtual environment:
Copy
Ask AI
# Using Python 3.11.13 (default)/root/.pyenv/versions/3.11.13/bin/python -m venv my_project_env# Using specific Python version/root/.pyenv/versions/3.10.18/bin/python -m venv legacy_project_env
Activate and manage environments:
Copy
Ask AI
# Activate environmentsource my_project_env/bin/activate# Verify active environment (should show your env path)which python# Deactivate when finisheddeactivate
Maintain project dependencies using requirements.txt files for reproducible environments across team members and deployment targets.Create requirements.txt:
Copy
Ask AI
# Core data processingpandas==2.0.3numpy==1.24.3# API and web requests requests==2.31.0urllib3==2.0.4# Visualizationmatplotlib==3.7.2seaborn==0.12.2# Development toolsjupyter==1.0.0pytest==7.4.0
The dbt Power User extension provides the most integrated development experience, automatically using your configured dbt settings from Settings → Credentials including version selection, database connections, and target configuration.Key workflows:
Model execution
Run and test modelsExecute individual models, selections, or entire dbt projects with integrated test runner
Lineage visualization
Understand dependenciesInteractive dependency graphs showing upstream and downstream model relationships
Documentation
Generate docsCreate and view dbt documentation with integrated preview and automatic refresh
SQL compilation
Preview compiled SQLSee the actual SQL that will be executed before running models
For users preferring terminal-based workflows, the IDE provides pre-configured dbt virtual environments for each supported version.Activate dbt environment:
Copy
Ask AI
# List available dbt environmentsls /root/.venv# Activate specific dbt versionsource /root/.venv/dbt-1.8.9/bin/activate# Verify dbt installationdbt --version
Available dbt versions:
dbt-1.6.18 (/root/.venv/dbt-1.6.18/) - Legacy support
dbt-1.7.19 (/root/.venv/dbt-1.7.19/) - Stable version
dbt-1.8.9 (/root/.venv/dbt-1.8.9/) - Current stable
dbt-1.9.10 (/root/.venv/dbt-1.9.10/) - Latest features
# Navigate to your dbt project directorycd /path/to/your/dbt/project# Run entire projectdbt run# Run specific modelsdbt run --select staging.stg_customers+# Test your modelsdbt test# Generate documentationdbt docs generatedbt docs serve
Model development example:
Copy
Ask AI
-- models/staging/stg_customers.sqlSELECT customer_id::int AS customer_id, LOWER(TRIM(email)) AS email, INITCAP(first_name) AS first_name, INITCAP(last_name) AS last_name, created_at::timestamp AS created_at, CASE WHEN status = 'A' THEN 'active' WHEN status = 'I' THEN 'inactive' ELSE 'unknown' END AS statusFROM {{ source('crm', 'customers') }}WHERE customer_id IS NOT NULL
The IDE provides powerful lineage visualization capabilities that help you understand data flow and model dependencies throughout your dbt project.To view lineage:
Open any dbt model file in the editor
Navigate to the Lineage tab in the IDE interface
Explore interactive dependency graphs showing:
Upstream models and sources feeding into current model
Downstream models consuming current model output
Cross-project dependencies and external table references
Lineage features:
Interactive navigation - Click nodes to jump between related models
Dependency depth control - Adjust how many levels of dependencies to display
Impact analysis - Understand which models will be affected by changes
Visual debugging - Identify circular dependencies and optimization opportunities
Execute dbt commands directly from the IDE for any valid dbt project without leaving your development workspace.To run dbt commands:
1
Open dbt project
Open a dbt project folder in the IDE
2
Access dbt command interface
Click on the icon from the top-right status bar
3
Go to terminal and activate dbt environment
Copy
Ask AI
# List available dbt environmentsls /root/.venv# Activate specific dbt versionsource /root/.venv/dbt-1.8.9/bin/activate# Verify dbt installationdbt --version
4
Enter command
A command input box will appear, allowing you to enter the desired dbt command
5
Execute command
Confirm the command to execute it in the terminal
Terminal session management:If similar commands were executed previously for the same project, the IDE will prompt you to either:
Open a new terminal session - Start a fresh terminal for the command
Continue using existing terminal - Reuse the current terminal session
This integrated feature simplifies the dbt workflow, enabling you to build, test, and manage transformations without leaving your development workspace.Example dbt commands:
Copy
Ask AI
# Run all modelsdbt run# Run specific modelsdbt run --select staging.stg_customers+# Test modelsdbt test# Generate documentationdbt docs generate# Compile modelsdbt compile
Create new cubes directly from the IDE without leaving your development environment, providing a seamless and integrated experience for managing cube creation.To create a cube:
1
Open cubes repository
Open any file within the cubes repository
2
Access cube creation
Click on the icon located on the top-right corner of the status bar
3
Automatic server start
The Cube Server will automatically start, enabling the cube creation process
4
Select schema
A new file tab will open, displaying a list of available schemas. Select the desired schema
5
Define and create
Proceed to define and create cubes as needed
This workflow provides a seamless and integrated experience for managing cube creation within the IDE, eliminating the need to switch between different tools or environments.
Start the Cube Server for a specific active file tab directly from the IDE toolbar, giving you full control over active Cube Server sessions.To start the Cube Server:
1
Open cube file
Open any file within your cubes repository
2
Start server
Click on the icon from the IDE toolbar
3
Access server
Once initiated, the Cube Server will launch and can be accessed locally via http://localhost:4000
Server conflict management:If there is an existing Cube Server instance running, a prompt will appear asking you to:
Stop the currently active server and start a new one - Terminate the existing instance and launch a fresh server
Cancel to retain the current session - Keep the existing server running
This ensures that multiple servers do not conflict and that you retain full control over active Cube Server sessions.
Dependency management - Automatic installation of dependencies from requirements.txt reduces manual setup overhead
Version selection - Choose the appropriate Python version for your project requirements
Seamless workflow - Run applications and scripts without leaving the IDE or switching contexts
This process ensures environment consistency and reduces manual setup overhead for Streamlit or Python-based workflows, allowing you to focus on development rather than environment configuration.