❄️
Data Flakes

Back

Data Governance used to be the “boring” part of data engineering. It was about locking things down and saying “no”. In 2025, governance is the enabler of AI. You cannot safely let an LLM loose on your enterprise data if you don’t know what that data is and who is allowed to see it.

Enter Snowflake Horizon.

Horizon isn’t a single feature; it’s the unified brand for Snowflake’s built-in governance, security, and compliance suite. If you are still managing access with just RBAC (Role Based Access Control) and manual spreadsheets for data dictionaries, you are living in the past.

What is Horizon?#

Horizon unifies compliance, security, privacy, and discovery. It covers:

  • Discovery: extracting metadata, lineage, and classification.
  • Security: Authentication, network policies, and encryption.
  • Privacy: Masking policies, row access policies, and differential privacy.

Key Feature: The Trust Center#

One of the best additions in Horizon is the Trust Center (available in Snowsight). It’s essentially a security posture dashboard that scans your account against CIS benchmarks and Snowflake best practices.

It will flag things like:

  • Users without MFA (Multi-Factor Authentication).
  • Network policies that are too permissive (0.0.0.0/0).
  • Public role abuse.

Pro-tip: Schedule a weekly review of the Trust Center findings as part of your admin routine.

Data Quality with Metric Functions (DMFs)#

We used to write custom SQL to check for nulls. Now, we use Data Metric Functions.

-- Create a metric for uniqueness
CREATE DATA METRIC FUNCTION count_duplicates(TABLE_NAME table(ID string))
RETURNS number AS
$$
    SELECT COUNT(*) - COUNT(DISTINCT ID) FROM TABLE_NAME
$$;

-- Associate it with a table
ALTER TABLE my_table ADD DATA METRIC FUNCTION count_duplicates ON (ID);
sql

Snowflake will runs these checks automatically and populate the results in the DATA_QUALITY_MONITORING_RESULTS view.

Access Policies vs. Row Access Policies#

A common point of confusion:

  • Row Access Policy (RAP): Filters rows based on logic (e.g., “Sales users only see EMEA region”).
  • Access Policy: Restricts operations on the object itself (e.g., “This table can only be accessed by this UDF”).

In 2025, we use Access Policies heavily to secure “Data Apps”. You might want to allow a Streamlit app to read a sensitive table, but not allow the user logged into that app to query the table directly in a worksheet. Access Policies allow this granular binding.

Horizon also includes Universal Search, powered by Cortex. You can now search for “Customer Churn Table” in the top bar of Snowsight, and it uses vector search against the table descriptions and comments to find relevant assets, even if the names don’t match exactly.

Best Practices for implementation#

  1. Tag Everything: Apply object tags (cost_center, environment, sensitivity) at the schema or database level and let them inherit down.
  2. Automate Classification: Use the sensitive data classifier to auto-tag PII.
  3. Monitor Lineage: Use the Graph UI in Snowsight to understand upstream impacts before dropping columns.

Conclusion#

Snowflake Horizon makes governance a platform capability rather than a third-party add-on. By leveraging these native tools, we reduce latency (no proxy layers) and increase security.

Disclaimer

The information provided on this website is for general informational purposes only. While we strive to keep the information up to date and correct, there may be instances where information is outdated or links are no longer valid. We make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability, or availability with respect to the website or the information, products, services, or related graphics contained on the website for any purpose. Any reliance you place on such information is therefore strictly at your own risk.