Skip to content

mitch-zink/snowflake-table-comparison

Repository files navigation

Snowflake Table Comparison

Open with Streamlit

Python Snowflake Streamlit

Setup Instructions

Create a Virtual Environment, install dependencies, and run the app

For Mac/Linux

python3.12 -m venv .venv && source .venv/bin/activate && pip3 install --upgrade pip && pip3 install -r requirements.txt && streamlit run app.py

For Windows

py -3.12 -m venv venv; .\venv\Scripts\Activate.ps1; python -m pip install --upgrade pip; pip install -r requirements.txt; streamlit run app.py

Overview

This tool analyzes differences between two Snowflake tables across five main sections:

App Start-up

1. Row Level Analysis

Compares data row-by-row to highlight discrepancies and matches between tables, ensuring granular alignment. Provides details on mismatched rows, matched rows with differing columns, and summary counts

Row Level Analysis

2. Column Analysis

Examines columns to identify differences in column presence and data types across the two tables. This includes highlighting columns present in one table but not the other and mismatches in data types for shared columns Column Analysis

3. Aggregate Analysis

Performs aggregate checks such as sum, count, and distinct value comparisons for matching columns. Results are displayed with flags for matches or mismatches to ensure consistency in aggregate data Aggregate Analysis

4. Schema Analysis

Compares schemas by analyzing row counts for all tables within each schema. Flags discrepancies and displays a summary of matched and mismatched tables Schema Analysis

5. Date Column Analysis

Compares unique key counts grouped by month-year between the two tables, ensuring temporal consistency. Handles missing months dynamically by generating a complete date range and filling gaps with zero counts for clear visualization Date Column Analysis

Roadmap

About

This tool analyzes differences between two Snowflake tables across five main sections

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages