Documentation Index

Fetch the complete documentation index at: https://docs.validatar.com/llms.txt

Use this file to discover all available pages before exploring further.

VW_DATASET_METADATA_OBJECTS

Prev Next

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 ILIKE with LOWER(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