78 lines
3.0 KiB
Markdown
78 lines
3.0 KiB
Markdown
# Snowflake Data Warehouse Dashboard
|
|
|
|
An interactive visualization tool for exploring Snowflake data warehouse structures, including databases, schemas, and tables (both fact and dimension).
|
|
|
|
## Features
|
|
|
|
- **True Infinite Canvas**: Unlimited zooming and panning capabilities for exploring vast data structures
|
|
- **Interactive Exploration**: Click to expand/collapse databases and schemas
|
|
- **Table Details**: View detailed information about fact and dimension tables
|
|
- **Visual Distinction**: Different colors for databases, schemas, fact tables, and dimension tables
|
|
- **Relationship Visualization**: Animated connections between related elements
|
|
- **Dynamic Navigation**: Zoom controls and minimap for easy navigation of the infinite space
|
|
- **Custom Connections**: Create and manage custom connections between any elements (databases, schemas, tables)
|
|
|
|
## Implementation Details
|
|
|
|
This dashboard is built using:
|
|
|
|
- React for the UI components
|
|
- ReactFlow for the interactive graph visualization
|
|
- CSS for styling and visual hierarchy
|
|
|
|
## Usage
|
|
|
|
1. **Exploring the Data Warehouse**:
|
|
- Click on a database node to expand and see its schemas
|
|
- Click on a schema node to expand and see its tables
|
|
- Click on a table node to view detailed information
|
|
|
|
2. **Infinite Canvas Navigation**:
|
|
- Use the mouse wheel to zoom in/out without limits
|
|
- Click and drag to pan infinitely in any direction
|
|
- Use the minimap in the bottom-right for quick navigation
|
|
- Use the dedicated "Zoom Out" button to quickly get a broader view
|
|
- Click "Reset View" to return to the initial state
|
|
- Current zoom level is displayed in the control panel
|
|
|
|
3. **Creating Custom Connections**:
|
|
- Click "Start Connection Mode" to enter connection mode
|
|
- Choose connection type: Reference, Dependency, or Custom
|
|
- Drag from a connection point (dot) on any node
|
|
- Drop onto a connection point on another node to create the connection
|
|
- View and manage all custom connections in the bottom-left panel
|
|
- Delete connections by clicking the "✕" button
|
|
- Connection points appear on all four sides of each node
|
|
|
|
## Data Structure
|
|
|
|
The dashboard visualizes:
|
|
|
|
- **Databases**: Top-level containers (e.g., Sales DW, Marketing DW)
|
|
- **Schemas**: Logical groupings of tables within a database
|
|
- **Fact Tables**: Tables containing measurable, quantitative data about business events
|
|
- **Dimension Tables**: Tables containing descriptive attributes used for analysis
|
|
|
|
## Future Enhancements
|
|
|
|
- Add search functionality to quickly find specific elements
|
|
- Implement filtering options for different table types
|
|
- Add ability to save and share specific views
|
|
- Integrate with real Snowflake data sources via API
|
|
- Add SQL query generation based on selected tables
|
|
|
|
## Development
|
|
|
|
To run the project locally:
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
The application will be available at http://localhost:5173/
|
|
|
|
---
|
|
|
|
This project was bootstrapped with [Vite](https://vitejs.dev/) and uses [React](https://reactjs.org/) for the UI.
|