Overview
VW_DATASET_METADATA_OBJECTS provides a flat, searchable list of every metadata object (schemas, tables, and columns) across all data sources. Unlike VW_DATASET_TABLES and VW_DATASET_COLUMNS which are rich in profile data and custom fields, this view is optimized for lookups, search, and object-level joins via the OBJECT_KEY column.
Use this view for searching across your entire metadata catalog, building navigation aids, and joining tests or executions to their linked objects.
Schema
| Column | Type | Description |
|---|---|---|
| OBJECT_NAME | VARCHAR | Name of the object |
| OBJECT_ID | NUMBER | Unique ID of the object |
| OBJECT_TYPE | VARCHAR | "Schema", "Table", "View", or "Column" |
| PARENT_OBJECT_NAME | VARCHAR | Name of the parent object (data source for schemas, schema for tables, table for columns) |
| DATA_SOURCE_NAME | VARCHAR | Name of the data source |
| DATA_SOURCE_ID | NUMBER | ID of the data source |
| DATE_CREATED | TIMESTAMP | When the object was first seen |
| DATE_MODIFIED | TIMESTAMP | Last modification date |
| CREATED_BY | VARCHAR | Full name of the creator (if applicable) |
| MODIFIED_BY | VARCHAR | Full name of the last modifier |
| METADATA_PATH | VARCHAR | Dot-separated path: schema, schema.table, or schema.table.column |
| OBJECT_URL | VARCHAR | Relative URL to the object in the Validatar Explorer (e.g., /explorer/28/schemas/215/tables/8482) |
| OBJECT_KEY | VARCHAR | Join key: s.<ID>, t.<ID>, or c.<ID> — matches keys in VW_DATASET_TESTS and VW_DATASET_TEST_EXECUTIONS |
Relationships
VW_DATASET_METADATA_OBJECTS
│
├── OBJECT_KEY → VW_DATASET_TESTS.TEST_PRIMARY_METADATA_LINK_OBJECT_KEY
├── OBJECT_KEY → VW_DATASET_TESTS.CONTROL_PRIMARY_METADATA_LINK_OBJECT_KEY
├── OBJECT_KEY → VW_DATASET_TEST_EXECUTIONS.TEST_PRIMARY_METADATA_LINK_OBJECT_KEY
├── OBJECT_KEY → VW_DATASET_TABLES.TABLE_KEY (where OBJECT_TYPE = 'Table' or 'View')
├── OBJECT_KEY → VW_DATASET_COLUMNS.COLUMN_KEY (where OBJECT_TYPE = 'Column')
└── DATA_SOURCE_ID → VW_DATASET_TABLES.DATA_SOURCE_ID
Example Queries
Search for Objects by Name Pattern
SELECT
OBJECT_TYPE,
DATA_SOURCE_NAME,
METADATA_PATH,
OBJECT_URL
FROM REPOSITORY.VW_DATASET_METADATA_OBJECTS
WHERE OBJECT_NAME ILIKE '%customer%'
ORDER BY OBJECT_TYPE, METADATA_PATH;
Count Objects per Data Source
SELECT
DATA_SOURCE_NAME,
OBJECT_TYPE,
COUNT(*) AS OBJECT_COUNT
FROM REPOSITORY.VW_DATASET_METADATA_OBJECTS
GROUP BY DATA_SOURCE_NAME, OBJECT_TYPE
ORDER BY DATA_SOURCE_NAME, OBJECT_TYPE;
Find All Tests Linked to a Metadata Object
SELECT
mo.METADATA_PATH,
mo.OBJECT_TYPE,
t.TEST_NAME,
t.TEST_TYPE,
t.OVERALL_RESULT_STATUS
FROM REPOSITORY.VW_DATASET_METADATA_OBJECTS mo
JOIN REPOSITORY.VW_DATASET_TESTS t
ON t.TEST_PRIMARY_METADATA_LINK_OBJECT_KEY = mo.OBJECT_KEY
WHERE mo.METADATA_PATH = 'PUBLIC.DIM_CUSTOMER'
AND t.IS_ACTIVE_VERSION = TRUE;
Metadata Object Hierarchy
-- Show all tables and their column counts per schema
SELECT
DATA_SOURCE_NAME,
PARENT_OBJECT_NAME AS SCHEMA_NAME,
OBJECT_NAME AS TABLE_NAME,
(SELECT COUNT(*)
FROM REPOSITORY.VW_DATASET_METADATA_OBJECTS child
WHERE child.OBJECT_TYPE = 'Column'
AND child.PARENT_OBJECT_NAME = mo.OBJECT_NAME
AND child.DATA_SOURCE_ID = mo.DATA_SOURCE_ID) AS COLUMN_COUNT
FROM REPOSITORY.VW_DATASET_METADATA_OBJECTS mo
WHERE mo.OBJECT_TYPE IN ('Table', 'View')
ORDER BY DATA_SOURCE_NAME, PARENT_OBJECT_NAME, OBJECT_NAME;
VW_DATASET_METADATA_OBJECT_PROPERTIES — Extended Property Details
The companion view VW_DATASET_METADATA_OBJECT_PROPERTIES provides a vertical (one-row-per-property) representation of detailed metadata attributes for schemas, tables, and columns. This view surfaces custom field values, discussion comments, lineage definitions, linked tests, and expanded schema metadata that don't appear in the flat VW_DATASET_METADATA_OBJECTS view.
Schema
| Column | Type | Description |
|---|---|---|
| OBJECT_NAME | VARCHAR | Name of the metadata object |
| OBJECT_TYPE | VARCHAR | "Schema", "Table", "View", or "Column" |
| PARENT_METADATA_OBJECT | VARCHAR | Parent object name (data source for schemas, schema for tables/views, table for columns) |
| OBJECT_ID | NUMBER | ID of the metadata object |
| DATA_SOURCE_ID | NUMBER | Data source ID |
| PROPERTY_CATEGORY | VARCHAR | Category grouping (see below) |
| PROPERTY_NAME | VARCHAR | Specific property name |
| PROPERTY_NAME_INDEX | NUMBER | Sequence within property (NULL for single-value) |
| PROPERTY_VALUE_TYPE | VARCHAR | Data type: "String Value", "Numeric Value", "Yes/No", or custom field types |
| PROPERTY_VALUE | VARCHAR | The property value |
| DATE_MODIFIED | TIMESTAMP | When this property was last changed |
| MODIFIED_BY | VARCHAR | Who modified it |
| DATA_SOURCE_NAME | VARCHAR | Data source name |
| METADATA_PATH | VARCHAR | Dot-separated path (e.g., "PUBLIC.CUSTOMERS.EMAIL") |
| OBJECT_URL | VARCHAR | Relative URL to the object in Validatar Explorer |
| OBJECT_KEY | VARCHAR | Join key: s.<ID>, t.<ID>, or c.<ID> |
Property Categories
| PROPERTY_CATEGORY | Applies To | PROPERTY_NAME Values | Description |
|---|---|---|---|
| Custom Metadata | Schema, Table, Column | (user-defined custom field names) | Custom field values. Supports String, Numeric, Dropdown, TagList, UserGroupList data types. |
| Discussion Comment | Schema, Table, Column | Discussion Comment | Comments on the object's discussion thread. |
| Lineage Definition | Table, Column | Lineage Transformation | The transformation logic text for lineage. |
| Table, Column | Lineage Notes | Notes attached to lineage definitions. | |
| Table, Column | Lineage Source | Upstream source object path (e.g., "SCHEMA.TABLE" or "SCHEMA.TABLE.COLUMN"). | |
| Linked Tests | Table, Column | Linked Test Name | Names of tests linked to this metadata object. |
| Expanded Schema Metadata | Column | Data Type | The column's data type from the source system. |
| Column | Is Nullable | "Yes" or "No" | |
| Column | Is Identity | "Yes" or "No" | |
| Column | Is Primary Key | "Yes" or "No" | |
| Column | String Max Length | Maximum string length | |
| Column | Numeric Precision | Numeric precision value | |
| Column | Numeric Scale | Numeric scale value | |
| Column | DateTime Precision | Datetime precision value |
Joining Metadata Objects to Properties
Use OBJECT_KEY or OBJECT_ID + OBJECT_TYPE as the join key. For joining to VW_DATASET_COLUMNS, use the pattern concat('c.', COLUMN_ID) to build the OBJECT_KEY.
Example: Columns with a Discussion Comment Containing "security"
Find columns where a user has added a comment mentioning "security", filtered to STRING data types:
SELECT
prop_comment.DATA_SOURCE_NAME,
prop_comment.METADATA_PATH,
prop_comment.PROPERTY_VALUE AS COMMENT_TEXT,
prop_comment.MODIFIED_BY,
prop_comment.DATE_MODIFIED
FROM REPOSITORY.VW_DATASET_METADATA_OBJECT_PROPERTIES prop_comment
INNER JOIN REPOSITORY.VW_DATASET_METADATA_OBJECT_PROPERTIES prop_type
ON prop_type.OBJECT_ID = prop_comment.OBJECT_ID
AND prop_type.OBJECT_TYPE = 'Column'
AND prop_type.PROPERTY_CATEGORY = 'Expanded Schema Metadata'
AND prop_type.PROPERTY_NAME = 'Data Type'
AND UPPER(prop_type.PROPERTY_VALUE) LIKE '%STRING%'
WHERE prop_comment.OBJECT_TYPE = 'Column'
AND prop_comment.PROPERTY_CATEGORY = 'Discussion Comment'
AND LOWER(prop_comment.PROPERTY_VALUE) LIKE '%security%'
ORDER BY prop_comment.DATE_MODIFIED DESC;
Example: Tables with a Custom Field "Data Owner" Set to a Specific Team
SELECT
p.DATA_SOURCE_NAME,
p.METADATA_PATH AS TABLE_PATH,
p.PROPERTY_VALUE AS DATA_OWNER,
p.DATE_MODIFIED
FROM REPOSITORY.VW_DATASET_METADATA_OBJECT_PROPERTIES p
WHERE p.OBJECT_TYPE IN ('Table', 'View')
AND p.PROPERTY_CATEGORY = 'Custom Metadata'
AND p.PROPERTY_NAME = 'Data Owner'
AND p.PROPERTY_VALUE = 'Analytics Engineering'
ORDER BY p.DATA_SOURCE_NAME, p.METADATA_PATH;
Example: Columns That Are Primary Keys with No Linked Tests
SELECT
pk.DATA_SOURCE_NAME,
pk.METADATA_PATH,
pk.OBJECT_URL
FROM REPOSITORY.VW_DATASET_METADATA_OBJECT_PROPERTIES pk
WHERE pk.OBJECT_TYPE = 'Column'
AND pk.PROPERTY_CATEGORY = 'Expanded Schema Metadata'
AND pk.PROPERTY_NAME = 'Is Primary Key'
AND pk.PROPERTY_VALUE = 'Yes'
AND NOT EXISTS (
SELECT 1
FROM REPOSITORY.VW_DATASET_METADATA_OBJECT_PROPERTIES lt
WHERE lt.OBJECT_ID = pk.OBJECT_ID
AND lt.OBJECT_TYPE = 'Column'
AND lt.PROPERTY_CATEGORY = 'Linked Tests'
)
ORDER BY pk.DATA_SOURCE_NAME, pk.METADATA_PATH;
Example: All Lineage Sources for a Specific Table
SELECT
p.PROPERTY_NAME,
p.PROPERTY_VALUE AS SOURCE_OBJECT,
p.MODIFIED_BY,
p.DATE_MODIFIED
FROM REPOSITORY.VW_DATASET_METADATA_OBJECT_PROPERTIES p
WHERE p.OBJECT_TYPE = 'Table'
AND p.METADATA_PATH = 'PUBLIC.DIM_CUSTOMER'
AND p.PROPERTY_CATEGORY = 'Lineage Definition'
ORDER BY p.PROPERTY_NAME;
Example: Find All Columns of a Specific Data Type Across All Data Sources
SELECT
p.DATA_SOURCE_NAME,
p.METADATA_PATH,
p.PROPERTY_VALUE AS DATA_TYPE
FROM REPOSITORY.VW_DATASET_METADATA_OBJECT_PROPERTIES p
WHERE p.OBJECT_TYPE = 'Column'
AND p.PROPERTY_CATEGORY = 'Expanded Schema Metadata'
AND p.PROPERTY_NAME = 'Data Type'
AND UPPER(p.PROPERTY_VALUE) LIKE '%TIMESTAMP%'
ORDER BY p.DATA_SOURCE_NAME, p.METADATA_PATH;
Secure View
VW_SECURE_DATASET_METADATA_OBJECT_PROPERTIES adds USER_ID and ACCESS_TYPE columns, filtered by data source ViewMetadata permission (same security tier as VW_SECURE_DATASET_METADATA_OBJECTS).
Databricks Notes
- Replace
ILIKEwithLOWER(OBJECT_NAME) LIKE LOWER('%customer%')if your Databricks configuration is case-sensitive - Subquery syntax in the hierarchy example works the same in both engines, though a JOIN-based approach may perform better on large catalogs