This Streamlit app was developed as a proof of concept to demonstrate how a Python SDK can be integrated with Snowflake to enable privacy-preserving analytics using synthetic data.
The app showcases how to:
- Leverage the Python SDK within a Snowflake environment via Streamlit UI.
- Generate synthetic data directly in Snowflake using the SDK.
- Analyze privacy risks associated with the synthetic dataset using the open-source tool Anonymeter.
The core of this proof of concept is the Anonymeter, a library designed to evaluate privacy risks in synthetic datasets.
Anonymeter contains privacy evaluators to measure the risks of singling out, linkability, and inference attacks that may be carried out against a synthetic dataset.
These risks are the three key indicators of factual anonymization according to the European General Data Protection Regulation (GDPR).
For more details on the methodology behind Anonymeter, please refer to the paper by M. Giomi et al.:
📄 Assessing the Privacy Guarantees of Synthetic Data
- Streamlit – UI layer for interaction and visualization
- Anonymeter – Privacy risk evaluation for synthetic datasets
The descriptions in the app will closely follow the Jupyter Notebook example from the Anonymeter repository. As the application doesn't adhere to the sequential nature of a notebook, there are a few key changes made to make the UI a little more flexible:
- Analyze All
At the top, you can use this button to run all three risk assessments on the default
adultsdataset. This will give you a high-level report of the overall scores for each in the top-right corner of the screen.
- Use Your Own Data
On the
Datasetstab, toggling this will allow you to drag in your own CSV datasets and analyze them. Theaux_colsfor the Linkability assessment will update according to your dataset and will need to be re-evaluated before running a new assessment.
- Standalone Assessments Each assessment type has its own tab with unique parameters that can be adjusted and run individually. As seen here with Singling Out, this will give you more specifics on the outcome.
- Ensure that you have installed Python
3.8.x,3.9.x, or3.10.x - Install the required libraries:
pip install -r requirements.txt
- Run the app:
streamlit run app.py
If you have Docker and Docker Compose installed, you can build and start the app at port 8501 with:
docker compose up -dThis project is for demonstration purposes only and is not intended for production use.


