Overview
VW_DATASET_TABLES provides a comprehensive view of every metadata table and view registered across all data sources in your Validatar environment. Each row represents one table or view and includes its identity, trust scores, custom field values, and table-level profile metrics.
This is the primary view for building reports on data asset inventory, trust score dashboards, and metadata governance workflows.
Schema
Identity Columns
| Column |
Type |
Description |
| TABLE_ID |
NUMBER |
Unique identifier for the table |
| TABLE_NAME |
VARCHAR |
Name of the table or view |
| TABLE_KEY |
VARCHAR |
Composite key in format t.<TABLE_ID> — used for joins to other views |
| TABLE_TYPE_ID |
NUMBER |
Numeric type code (77 = Table, 78 = View) |
| TABLE_TYPE_NAME |
VARCHAR |
Human-readable type: "Table" or "View" |
| SCHEMA_ID |
NUMBER |
ID of the parent schema |
| SCHEMA_NAME |
VARCHAR |
Name of the parent schema |
| DATA_SOURCE_ID |
NUMBER |
ID of the data source containing this table |
| DATA_SOURCE_NAME |
VARCHAR |
Name of the data source |
| FULL_PATH |
VARCHAR |
Fully qualified path: <schema>.<table> |
Date Columns
| Column |
Type |
Description |
| DATE_FIRST_SEEN |
TIMESTAMP |
When Validatar first discovered this table |
| DATE_MODIFIED |
TIMESTAMP |
Last modification date in Validatar |
| DATE_FIRST_PROFILED |
TIMESTAMP |
First time profiling ran on this table |
| DATE_LAST_PROFILED |
TIMESTAMP |
Most recent profiling execution |
| DATE_LAST_REFRESHED |
TIMESTAMP |
Last schema metadata refresh for the data source |
Trust Score Columns
| Column |
Type |
Description |
| TRUST_SCORE |
NUMBER |
Overall trust score (0-100) |
| COVERAGE_SCORE |
NUMBER |
Test coverage percentage (0-100) |
| QUALITY_SCORE |
NUMBER |
Quality score percentage (0-100) |
| QUALITY_DIMENSION_COUNT |
NUMBER |
Number of distinct quality dimensions tested |
| QUALITY_SCORE_NUMERATOR |
NUMBER |
Passed test count in quality calculation |
| QUALITY_SCORE_DENOMINATOR |
NUMBER |
Total test count in quality calculation |
| TRUST_SCORE_DATE_PERIOD_START |
TIMESTAMP |
Start of the trust score calculation window |
| TRUST_SCORE_DATE_PERIOD_END |
TIMESTAMP |
End of the trust score calculation window |
| TRUST_SCORE_TEST_EXECUTION_COUNT |
NUMBER |
Number of test executions in the scoring period |
| TRUST_SCORE_PASSED_COUNT |
NUMBER |
Passed executions in the scoring period |
| TRUST_SCORE_FAILED_COUNT |
NUMBER |
Failed executions in the scoring period |
| TRUST_SCORE_ERROR_COUNT |
NUMBER |
Errored executions in the scoring period |
Impact Rating Columns
| Column |
Type |
Description |
| IMPACT_RATING |
VARCHAR |
Name of the assigned impact rating (e.g., "Critical", "High", "Medium", "Low") |
| IMPACT_RATING_ID |
NUMBER |
ID of the impact rating |
| IMPACT_RATING_TARGET_TRUST_SCORE |
NUMBER |
Target trust score for this rating |
| IMPACT_RATING_TARGET_QUALITY_SCORE |
NUMBER |
Target quality score for this rating |
| IMPACT_RATING_TARGET_COVERAGE_SCORE |
NUMBER |
Target coverage score for this rating |
| TRUST_SCORE_BADGE |
VARCHAR |
"Above Target", "Below Target", or "Unknown" |
Custom Field Columns
Columns prefixed with CUSTOM_ contain values from custom metadata fields configured in your environment. Common examples:
| Column |
Description |
| CUSTOM_FRIENDLY_NAME |
User-assigned friendly name |
| CUSTOM_DESCRIPTION |
User-assigned description |
| CUSTOM_TABLE_TAGS |
Comma-separated tags |
| CUSTOM_BUSINESS_DATA_STEWARD |
Assigned business steward |
| CUSTOM_TECHNICAL_DATA_STEWARD |
Assigned technical steward |
| CUSTOM_SUBJECT_AREA |
Business subject area classification |
| CUSTOM_TABLE_TYPE |
Custom table type (e.g., "Fact", "Dimension") |
| CUSTOM_DW_TABLE_TYPE |
Data warehouse table classification |
| CUSTOM_ENABLE_TABLE_DQM_TESTS |
Whether DQM tests are enabled |
| CUSTOM_SOURCE_DATA_SOURCE |
Source system for lineage |
| CUSTOM_SOURCE_SCHEMA |
Source schema for lineage |
| CUSTOM_SOURCE_TABLE |
Source table for lineage |
The full set of custom columns depends on your environment's custom field configuration.
Profile Columns
| Column |
Type |
Description |
| PROFILE_LAST_REFRESH_DATE |
TIMESTAMP |
When table profiles were last calculated |
| PROFILE_RECORD_COUNT |
DECIMAL |
Total row count from last profiling |
| PROFILE_TOTAL_DATA_MB |
DECIMAL |
Total data size in megabytes |
| PROFILE_COLUMN_COUNT |
DECIMAL |
Number of columns |
| PROFILE_CONCATENATED_ROW_TEXT_CALC |
VARCHAR |
Concatenated row text checksum |
| PROFILE_SUM_CHECKSUM_TABLE |
DECIMAL |
Sum checksum for change detection |
Relationships
VW_DATASET_TABLES
│
├── TABLE_ID → VW_DATASET_COLUMNS.TABLE_ID (one-to-many)
├── TABLE_KEY → VW_DATASET_TESTS.TEST_PRIMARY_METADATA_LINK_OBJECT_KEY
├── TABLE_KEY → VW_DATASET_METADATA_OBJECTS.OBJECT_KEY
├── DATA_SOURCE_ID → VW_DATASET_TEST_EXECUTIONS.TEST_DATA_SOURCE_ID
└── DATA_SOURCE_ID → VW_SECURE_USER_DATA_SOURCE_ACCESS.META_DATA_SOURCE_ID
Example Queries
Tables with Trust Scores Below Target
SELECT
DATA_SOURCE_NAME,
FULL_PATH,
TRUST_SCORE,
IMPACT_RATING,
IMPACT_RATING_TARGET_TRUST_SCORE,
TRUST_SCORE_BADGE
FROM REPOSITORY.VW_DATASET_TABLES
WHERE TRUST_SCORE_BADGE = 'Below Target'
ORDER BY TRUST_SCORE ASC;
Find Tables by Subject Area
SELECT
FULL_PATH,
CUSTOM_SUBJECT_AREA,
CUSTOM_TABLE_TYPE,
TRUST_SCORE,
PROFILE_RECORD_COUNT
FROM REPOSITORY.VW_DATASET_TABLES
WHERE CUSTOM_SUBJECT_AREA = 'Finance'
ORDER BY FULL_PATH;
Tables Not Profiled in 30+ Days
SELECT
DATA_SOURCE_NAME,
FULL_PATH,
DATE_LAST_PROFILED,
DATEDIFF(day, DATE_LAST_PROFILED, CURRENT_DATE) AS DAYS_SINCE_PROFILED
FROM REPOSITORY.VW_DATASET_TABLES
WHERE DATE_LAST_PROFILED < DATEADD(day, -30, CURRENT_DATE)
OR DATE_LAST_PROFILED IS NULL
ORDER BY DATE_LAST_PROFILED ASC NULLS FIRST;
Data Source Inventory Summary
SELECT
DATA_SOURCE_NAME,
TABLE_TYPE_NAME,
COUNT(*) AS OBJECT_COUNT,
AVG(TRUST_SCORE) AS AVG_TRUST_SCORE,
SUM(CASE WHEN TRUST_SCORE_BADGE = 'Below Target' THEN 1 ELSE 0 END) AS BELOW_TARGET_COUNT
FROM REPOSITORY.VW_DATASET_TABLES
GROUP BY DATA_SOURCE_NAME, TABLE_TYPE_NAME
ORDER BY DATA_SOURCE_NAME;
Databricks Notes
- Replace
DATEADD(day, -30, CURRENT_DATE) with DATE_ADD(CURRENT_DATE(), -30)
- Replace
DATEDIFF(day, col, CURRENT_DATE) with DATEDIFF(CURRENT_DATE(), col)
NULLS FIRST / NULLS LAST works the same in both engines