Skip to content

An attribute defines a property of a metadata element or a relationship with another metadata element.

Attributes can be used in the SELECT list. Most of them can be used in the WHERE clause. Some can be used in the ORDER BY clause.

If an attribute name contains any space or is a reserved word, you need to quote it with the double quote (") characters.

MM supports the following attribute types:

  • Profile attribute: for example, Usage, "File last modified", or "Default value". A profile attributes can be qualified by a profile name to prevent any ambiguity, e.g. "RDBMS Relational Database (Database)"."Data Type" or "Data Modeling (Business)"."Data Type". Profile attributes can be used in the WHERE clause.

  • Profile relationship: for example, Tables. A profile relationship can be qualified by a profile name to prevent any ambiguity, e.g. "RDBMS Relational Database (Database)"."External Schemas" or "File System (File)".Fields. Profile relationships cannot be used in the WHERE clause.

  • Custom attribute: for example, "Security level" or "Harvesting PoC". Custom attributes, except those of the BLOB data type, can be used in the WHERE clause.

  • Custom relationship: for example, "Is Defined By", "More General" or References. Custom relationships can be used in the WHERE clause.

  • User defined property (UDP): for example, "2PC Option_1092616415". UDPs can be used in the WHERE clause.

  • System attribute: for example, Name, Context, or "Object Type". Most system attributes can be used in the WHERE clause.

  • Data profiling attribute: for example, "Data Profiling".Min, "Data Profiling"."Distinct", or "Data Profiling"."Inferred Data Types". Data profiling attributes can be used in the WHERE clause.

  • Source history attributes: "Source History"."Popularity Count", "Source History"."Last Data Access Date", "Source History"."Last Data Update Date", and "Source History"."Last Access Users"

Source history attributes can be used in the WHERE clause.

  • Related object property: for example, Parent.Name and Parent. "Object Type". A related object property must be in the form of related object type.property, where the related object type is one of the following system attributes and the property can be a profile attribute, custom attribute, user defined property (UDP), data profiling attribute, or system attribute. If the property is a profile attribute, it can be qualified by a profile name to prevent any ambiguity.

  • Children (deprecated)

  • Parent

    Related object properties can be used in the WHERE clause if the property can be used in the WHERE clause.

  • Related object relationship: for example, Parent.Tables. A related object relationship must be in the form of related object type.relationship, where the related object type is one of the following system attributes and the relationship can be a custom relationship, or profile relationship which can be qualified by a profile name to prevent any ambiguity.

  • Children (deprecated)

  • Parent

    Related object custom relationships can be used in the WHERE clause.

System Attributes

The following system attributes can be used in the SELECT list, FROM clause and WHERE clause of a MQL Query.

System attribute name Description Value examples Value data type Supported operators in WHERE Supported in ORDER BY Supported in FACET
"Business Description" (Deprecated) Business Description. The custom attribute "Definition" replaces and merges "Description" and "Business Description" A unique number for each customer String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS Yes No
"Certified By" The user who certified the object [{"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""}] Array of Grantee objects =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS Specify the name(s) of user(s) as filter values. No Yes
Certified Whether or not the object is certified true Boolean =, !=, [NOT] EXISTS Yes No
Children (Deprecated) Names of the children ["EmployeeId", "FirstName", "LastName", "Address"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
Collections Collections ["Hot Reports", "New Tables"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
"Column Histogram" Column histogram [{"count": 1,"lower": "1930-01-01 00:00:00","upper": "1940-01-01 00:00:00"}, {"count": 1,"lower": "1940-01-01 00:00:00","upper": "1950-01-01 00:00:00"}, {"count": 3,"lower": "1950-01-01 00:00:00","upper": "1960-01-01 00:00:00"}, {"count": 4,"lower": "1960-01-01 00:00:00","upper": "1970-01-01 00:00:00"}] Array of DataProfile_Histogram [NOT] EXISTS No No
"Column Statistics" Column statistics { "DistinctRows": 9,"DuplicateRows": 0,"ValidRows": 9,"EmptyRows": 0,"InvalidRows": 0} DataProfile_Statistics [NOT] EXISTS No No
"Comment Count" Comment count 2 Integer =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN … AND … Yes Yes
"Commented By" The users who commented on the object [{"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""}, {"id": "-1_390","name": "Susan","fullName": "Susan Smith","type": "User","description": "","email": ""}] Array of Grantee objects =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name(s) of user(s) as filter values. No Yes
"Conditional Labels" Conditional labels associated with the object [{"name": "Endorsed","description": "Endorsed objects"}] Array of ConditionalLabel objects =, ANY (...), = ALL (...) No No
Context Context (or model path) [{"id": "204_1","objectType": {"name": "Meta Integration (Glossary).Glossary"},"name": "Finance Glossary"}, {"id": "204_2","objectType": {"name": "Meta Integration (Glossary).Category"},"name": "Domains"}] Array of Entity [NOT] EXISTS No No
"Created Date" For Imported Objects: Created date in the source system for some models. (not all bridges will have this information. )For Custom Model Objects: The time the object was created. If an object was restored (from repository backup) it will not have a created date as the history is never backed up and thus not restored. 2018-09-24 13:25:17 Date =, BEFORE, AFTER, BETWEEN ... AND ... , [NOT] EXISTS Yes Yes
"Created By" The user who created the object. Supported on custom model objects, physical data model objects, semantic mapping objects and data mapping objects. {"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""} Grantee =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name of user as filter value. Yes Yes
"Data Classifications" Names of the proposed or approved data classes. Run GET /repository/dataClasses/{objectId} to get a list of available data classes ["Airport Code", "Airport Name"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No Yes
"Data Classifications Proposed" Names of the proposed data classes. Run GET /repository/dataClasses/{objectId} to get a list of available data classes ["Airport Code", "Airport Name"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No Yes
"Data Classifications Approved" Names of the approved data classes. Run GET /repository/dataClasses/{objectId} to get a list of available data classes ["Airport Code", "Airport Name"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No Yes
"Data Classifications Matched" Names of the matched data classes. Run GET /repository/dataClasses/{objectId} to get a list of available data classes ["Airport Code", "Airport Name"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No Yes
"Data Classifications Rejected" Names of the rejected data classes. Run GET /repository/dataClasses/{objectId} to get a list of available data classes ["Airport Code", "Airport Name"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No Yes
"Data Profiling" Data profiling data { "totalProfiledRows": 9,"profilingDate": "2020-01-23 23:18:49","statistics": {"distinctRows": 4,...,"maxLength": 24},"inferredDataTypes": {"string": 9},"invalidDataTypeValues": [],"patterns": {"Aaaaa Aaaaaaa": 1,...,"Aaaaa Aaaaaaaaaaaaaa": 6},"values": {"Vice President, Sales": 1,"Sales Representative": 6,"Inside Sales Coordinator": 1,"Sales Manager": 1},"histogram": []} DataProfile [NOT] EXISTS No No
"Data Quality Latest Date" Most recent date the data quality of the object was imported 2024-03-13 15:36:44 Date =, BEFORE, AFTER, BETWEEN ... AND ... , [NOT] EXISTS Yes Yes
"Data Quality Latest Score" More recent score of the data quality of the object 90 Integer =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN … AND … Yes Yes
"Data Quality Latest Status" Most recent status of the data quality of the object Good Enumeration: Good, Acceptable, Bad =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS Yes Yes
"Data Sampling" Data sampling data { "header": ["city", "birthdate"],"samples": [["Seattle", "New York", "San Francisco"],["1970-01-01", "2001-10-20", "1990-10-02"]]} DataSample [NOT] EXISTS No No
"Data Select Method" How the data query should select the rows of the profiled object Top Rows Enumeration: Default, Top Rows, Random Rows, Custom =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS Yes Yes
"Data Select Query" Custom SELECT SQL statement to use to retrieve the most relevant data for profiling and sampling rows of this object String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS No No
Destination The destination objects of a complex relationship object [{"id": "5091_3","name": "Employees","objectType": {"name": "Table","displayName": "Table"}}] Array of Entity =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
"Destination Model" The models of the destination objects of a complex relationship object [{"id": "5090_1","name": "Accounts Payable erwin","objectType": {"name": "DataModel","displayName": "DataModel"}}] Array of Entity =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
Documentation The summarized documentation of the object. The summarized documentation returns the first documentation found on the object following the following priority: Business Documentation > Term Documentation > Mapped Documentation > Inferred Documentation > Imported (Documentation) > Searched (Documentation). Warning: Using this attribute may cause bad performance.The original Documentation of glossary terms has been renamed to "Long Description" to not conflict with the new "Documentation" attribute described above. [{"type": "MAPPED","entity": {"id": "8366_23","name": "Account","objectType": {"name": "Term","displayName": "Term"},"attributes": null}}] Array of SemanticEntity [NOT] EXISTS No No
Editors Editors of worksheets, collections and dashboards [{"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""}, {"id": "-1_390","name": "Susan","fullName": "Susan Smith","type": "User","description": "","email": ""}] Array of Grantee objects =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name(s) of user(s) or group(s) as filter values. No Yes
"Endorsement Count" Endorsement count 4 Integer =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN … AND … Yes Yes
"Endorsed By" The users who endorsed the object [{"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""}, {"id": "-1_390","name": "Susan","fullName": "Susan Smith","type": "User","description": "","email": ""}] Array of Grantee objects =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name(s) of user(s) as filter values. No Yes
"Has Data Impact" Has Data Impact true Boolean =, !=, [NOT] EXISTS No No
"Has Data Lineage" Has Data Lineage true Boolean =, !=, [NOT] EXISTS No No
"Has Semantic Definition" Has Semantic Definition true Boolean =, !=, [NOT] EXISTS No No
"Has Semantic Usage" Whether or not a term is used. true Boolean =, !=, [NOT] EXISTS No No
"Imported Date" For Imported Objects: The last time the object was imported (possibly after incremental harvesting), which might be newer than the Updated Date. This date is critical to assess the freshness / accuracy of the Updated Dates, when the import is manual, or on a slow pace weekly / monthly schedule.For Custom Model Objects: Not Applicable 2023-09-24 13:25:17 Date =, BEFORE, AFTER, BETWEEN ... AND ... , [NOT] EXISTS Yes Yes
"Import Bridge" For Imported Objects: The name of the bridge used to import the object.For Custom Model Objects: Not Applicable Microsoft Azure Power BI Service (Repository) String =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS No No
"Inferred Documentation" The list of terms (name and description) indirectly documenting the objects through its pass-through data lineage / impact. Warning: Using this attribute may cause bad performance. [{"type": "SEARCHED","entity": {"id": "8366_23","name": "Account","objectType": {"name": "Term","displayName": "Term"},"attributes": null}}] Array of Semantic Entity [NOT] EXISTS No No
Labels Labels ["Jons Tasks", "Obsolete"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No Yes
"Last Change Event" The description of the last change made on the object Business Name was changed to "NorthwindCustomers" String None No No
"Mapped Documentation" The list of semantically mapped objects (name and description) documenting the object. Warning: Using this attribute may cause bad performance. [{"type": "MAPPED","entity": {"id": "8366_23","name": "Account","objectType": {"name": "Term","displayName": "Term"},"attributes": null}}] Array of Semantic Entity [NOT] EXISTS No No
"Mentioned Objects" Object(s) mentioned in an object [{"id": "5091_3","name": "Employees","objectType": {"name": "Table", "displayName": "Table"}}] Array of Entity =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), =WHERE(…), !=WHERE(...), [NOT] EXISTSSpecify the stable id(s) of object(s) as filter values No No
"Mentioned Users" User(s) and group(s) mentioned in an object [{"id": "-1_204", "name": "Bob", "fullName": "Robert Robertson",  "type": "User",  "description": "", "email": ""}] Array of Grantee objects =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name(s) of user(s) or group(s) as filter values. No Yes
"Model Definition" Definition on the repository model Accounts Payable String None No No
Model Name of the repository model. If the model is a nested model, it will be "multi-model"."single model" Northwind.dbo String =, !=, = ANY (...), != ANY (...), =WHERE(…), !=WHERE(...) Yes Yes
"Model Id" Model Id 35913 Integer =, !=, = ANY (...), != ANY (...) Yes Yes
"Model Name" Name of the root repository model Accounts Payable String None No No
"Modified Date" For Imported Objects: Modified date in the source system for some models. (not all bridges will have this information. ) Snowflake is an example of a bridge which supports this feature.For Custom Model Objects: Not Applicable 2018-09-24 13:25:17 Date =, BEFORE, AFTER, BETWEEN ... AND ... , [NOT] EXISTS Yes Yes
"My Workflow Tasks" Workflow step-based actions on a custom model object available to you with the workflow role assignments you have ["Discard", "Mark for Deprecation", "Start Review", "Submit for Approval"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
Name Name Custom ID String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS Yes Yes
"Native Id" Native ID {799A0437-D91A-4CC5-998A-7C23E2130F39}+00000001 String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS Yes Yes
"Object Id" Object Identifier 123_45678 String =, !=, = ANY (...), != ANY (...) Yes No
"Object Image" Object Image {"type": IMAGE,"name": "image","location": "USSocialSecurityCard.png","size": "8450"} Attachment [NOT] EXISTS No No
"Object Profile" Profile Name. Run GET /types/listProfiles to get a list of profile names Tableau (Business) String =, !=, = ANY (...), != ANY (...) No No
"Object StableId" Object stable identifier encoded in Base 64 AAAC0AAa1sJ7wyKdA0EUkZYCu9hE_-v4uQ String =, !=, = ANY (...), != ANY (...) No No
"Object System Type" Entity System Type: Entity Group, Relationship Group, Classifier, Feature, Diagram, Connection, Schema, Content, System, Hierarchy, Model, Namespace, Key, or Custom Attribute Classifier String =, !=, = ANY (...), != ANY (...) Yes Yes
"Object Type" Entity Type. Run GET /types/listEntityTypes to get a list of entity types of a profile Table String =, !=, = ANY (...), != ANY (...) Yes Yes
"Object Type Id" Entity Type ID 277000016 Integer =, !=, = ANY (...), != ANY (...) Yes Yes
"Open In Tool" The URL which opens a report in the supported tool null String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS No No
Owner The user who is the owner of a worksheet, collection, or dashboard. {"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""} Grantee =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name of user as filter value. No Yes
Parent The name of the parent dbo String =, = ANY (...) No No
"Physical Name" Physical Name CustomID String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS Yes Yes
"Replication Quality" The replication quality of a replication link {"featureMappings": [{"sourceField": "1597_222","destinationField": "1601_114"},{"sourceField": "1597_223","destinationField": "1601_115"}],"numberOfSourceFields": 3,"numberOfDestinationFields": 4} ReplicationQuality None No No
"Sensitivity Label" The current (approved, data proposed, or lineage proposed) sensitivity label associated with the object. Run GET /repository/sensitivityLabels to get a list of available sensitivity labels {"name": "Top Secret","position": 5,"description": "","status": "APPROVED","foregroundColor": "","backgroundColor": ""} SensitivityLabelWithStatus =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
"Sensitivity Label Approved" Approved sensitivity label. Run GET /repository/sensitivityLabels to get a list of available sensitivity labels {"name": "Confidential","position": 4,"description": "","status": "APPROVED","foregroundColor": "","backgroundColor": ""} SensitivityLabelWithStatus =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No Yes
"Sensitivity Label Lineage Proposed" Sensitivity label inferred from other objects using data flow analysis. Run GET /repository/sensitivityLabels to get a list of available sensitivity labels {"name": "Confidential","position": 4,"description": "","status": "INFERRED","foregroundColor": "","backgroundColor": ""} SensitivityLabelWithStatus =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
"Sensitivity Labels Data Proposed" Sensitivity labels detected during the data classification process and thus associated with this object. Run GET /repository/sensitivityLabels to get a list of available sensitivity labels [{"status": "PROPOSED","name": "Confidential","position": 4,"description": "","foregroundColor": "","backgroundColor": ""}, {"status": "PROPOSED","name": "Prohibit export","position": 2,"description": "","foregroundColor": "","backgroundColor": ""}] Array of SensitivityLabelWithStatus =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No Yes
"Sensitivity Labels Rejected" Rejected sensitivity labels. Run GET /repository/sensitivityLabels to get a list of available sensitivity labels [{"status": "REJECTED","name": "Top Secret","position": 5,"description": "","foregroundColor": "","backgroundColor": ""}] Array of SensitivityLabelWithStatus =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No Yes
Source The source objects of a complex relationship object [{"id": "5091_3","name": "Employees","objectType": {"name": "Table","displayName": "Table"}}] Array of Entity =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
"Source Model" The models of the source objects of a complex relationship object [{"id": "5090_1","name": "Accounts Payable erwin","objectType": {"name": "DataModel","displayName": "DataModel"}}] Array of Entity =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
"Source System Definition" "Source System Definition" on imported objects replaces any use of "Definition", "Description", or "Comment" in the source system metamodel (profile) imported from data modeling, data integration, and business intelligence tools Custom's identifier String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] CONTAINS No No
"System Description" Replaces "Description" Custom's identifier String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] CONTAINS No No
Term (Deprecated) Names of the terms used to define the object ["Address", "AddressLine"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS No No
"Term Documentation" (Deprecated) The list of terms (name and description) documenting the object. Also known as "Is Defined By" custom relationship [{"type": "CLASSIFIED","entity": {"id": "8366_23","name": "Account","objectType": {"name": "Term","displayName": "Term"},"attributes": null}}] Array of SemanticEntity None. Use Term system attribute, or "Is Defined By" custom relationship. No No
"Updated By" The user who made the last update {"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""} Grantee =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name of user as filter value. Yes Yes
"Updated Date" The date when an object of authored content was last updated, including custom model objects (e.g.glossary terms). Or for imported objects, it is the last date the repository object was updated, not the last date the object was updated in the source system. 2018-09-24 13:25:17 Date =, BEFORE, AFTER, BETWEEN ... AND ... , [NOT] EXISTS Yes Yes
Viewers Viewers of worksheets, collections, and dashboards [{"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""}, {"id": "-1_390","name": "Susan","fullName": "Susan Smith","type”: “User","description": "","email": ""}] Array of Grantee objects =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name(s) of user(s) or group(s) as filter values. No Yes
"Warning Count" Warning count 1 Integer =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN … AND … Yes Yes
"Warned By" The users who put a warning on the object [{"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""}, {"id": "-1_390","name": "Susan","fullName": "Susan Smith","type": "User","description": "","email": ""}] Array of Grantee objects =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name(s) of user(s) as filter values. No Yes
Watchers Users and groups who are the watchers of the model. It returns null if the object is not a model. For any name specified as a value of the filter, the name is treated as a user if there exist a user and a group by the same name. To avoid ambiguity, avoid naming users and groups by the same names. [{"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""}, {"id": "-1_39","name": "Data Lake Data Analyst","fullName": "","type": "UserGroup","description": "","email": ""}] Array of Grantee objects =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name(s) of user(s) or group(s) as filter values. No No
"Workflow Assignees" Users and groups who can perform any transitions on the object. For any name specified as a value of the filter, the name is treated as a user if there exist a user and a group by the same name. To avoid ambiguity, avoid naming users and groups by the same names. [{"id": "-1_204","name": "Bob","fullName": "Robert Robertson","type": "User","description": "","email": ""}, {"id": "-1_39","name": "Data Lake Data Analyst","fullName": "","type": "UserGroup","description": "","email": ""}] Array of Grantee objects =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTSSpecify the name(s) of user(s) or group(s) as filter values. No No
"Workflow Deprecation Requested" Return value true or false indicates whether an object has been requested for deprecation. Null is returned if the object belongs to a model which is not workflow enabled. true Boolean =, !=, [NOT] EXISTS No No
"Workflow State" Current workflow state of a custom model object Approved Enumeration: Draft, Under Review, Pending Approval, Approved, Published, DeprecatedNote: the workflow state is localized. =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS, [NOT] STARTS WITH, [NOT] ENDS WITH, [NOT] CONTAINS Yes Yes
"Workflow Published" Return value true or false indicates whether an object belongs to the editable version of a workflow enabled custom model and the object exists in the published version of the model. Null is returned if the object belongs to a non-editable version, or the model is not workflow enabled. true Boolean =, !=, [NOT] EXISTS No No

Unlike profile attributes, custom attributes and UDPs, which normally hold scalar values (except for multi-valued custom attributes), the value of a system attribute can be an object or an array of scalar values or objects. For example, the value of Context is an array of Entity objects.

System attributes can be used in the SELECT list and WHERE clause of any MQL query, which can be used to define a Worksheet in MM Explorer or used as an input parameter or part of the body parameter to some REST API methods. Some system attributes can also be used in the Order By clause of a MQL query.

The following REST API methods take a SELECT query parameter, or a QueryInput body parameter which contains a SELECT clause. For more information about the REST API methods, refer to the MM REST API documentation.

  • GET /entities/validateMQLQuery

  • POST /entities/executeMQLQuery

  • GET /entities/{objectId}

  • GET /relationships/{objectId}

Object-valued System Attributes

The following system attributes are some examples of the object-valued system attributes:

  • Context

  • "Column Histogram"

  • "Column Statistics"

  • "Data Profiling"

  • "Data Sampling"

  • "Workflow Assignees" in the SELECT

The examples in the previous section show such values in Json format. The schema of the objects Entity, SemanticEntity, DataSample, DataProfile, DataProfile_Statistics, DataProfile_Histogram, and Grantee, etc. are defined in the MM REST API documentation.

When used in the WHERE clause, the filters with the object-valued system attributes can only be ANDed with other filters and only be used with the EXISTS and NOT EXISTS operators.

Custom Attributes in MQL

Custom attributes are the reusable attributes defined in the meta model. They can be used on both business model objects and imported objects.

Custom Relationships

Custom relationships are the reusable relationships defined in the meta model. They define relationships between a business model object and another business model object, a business model object and an imported model object, or an imported model object and another imported model object. For example, the custom relationship "Is Defined By" defines a relationship between an imported model object and a term.

When used in the WHERE clause, the filters with the custom relationship can be used with the =, !=, =ANY, !=ANY, !=ALL, !=ALL, =WHERE, !=WHERE, EXISTS and NOT EXISTS operators.

Data Profiling Attributes

Data profiling attributes can be used in the SELECT list, WHERE clause and ORDER BY clause of a MQL Query.

The following Data Profiling attributes are supported on file fields or table/view columns.

Data Profiling attribute name Description Value examples Value data type Supported operators in WHERE
"Data Profiling".Blank Number of blank value rows 20 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling"."Distinct" Number of distinct rows 1001 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Duplicate Number of duplicate rows 5 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Valid Number of valid rows 5 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Empty (Deprecated) Number of empty rows: null in database or empty in files. This attribute is split into 3 attributes: "Data Profiling".Null, "Data Profiling".Blank and "Data Profiling".Zero. 5 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Invalid Number of invalid rows 5 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Min Lowest value 1.0 Double =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Max Highest value 3.123456E30 Double =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Mean Mean value 3.123456E30 Double =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Null Number of null value rows 10 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Variance Variance value 3.123456E30 Double =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling".Median Median value 3.123456E30 Double =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling"."Lower Quantile" Lower quantile 3.123456E30 Double =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling"."Upper Quantile" Upper quantile 3.123456E30 Double =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling"."Avg Length" Average length of strings 6.5 Double =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling"."Min Length" Minimum length of strings 3 Integer =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling"."Max Length" Maximum length of strings 20 Integer =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling"."Inferred Data Types" List of data types detected by the profiler ["integer", "string"] Array of String =, !=, = ANY (...), != ANY (...), = ALL (...), != ALL (...), [NOT] EXISTS
"Data Profiling".Zero Number of zero value rows 40 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN

The following Data Profiling attributes are supported on files, tables and views.

Data Profiling attribute name Description Value examples Value data type Supported operators in WHERE
"Data Profiling"."Profiled Date" Last profiled date 2022-09-24 13:25:17 Date =, BEFORE, AFTER, BETWEEN ... AND ... , [NOT] EXISTS
"Data Profiling"."Processed Records" Processed row count 10 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN
"Data Profiling"."Total Records" Total row count 100 Long =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN

When somebody uses a data profiling attribute in a filter, MIMM removes all objects from the results which are marked as hide data for that user. The hide data is controlled by multiple factors: whether the user has the Data Viewer capability object role assignment, whether a harvested object has a proposed or assigned data class resulting in a Sensitivity Label that has the HIDE DATA flag, or whether the object has a Sensitivity Label that has the HIDE DATA flag.

Source History Attributes

Source History attributes can be used in the SELECT list, WHERE clause and ORDER BY clause of a MQL Query.

The following Source History attributes are supported on a set of imported objects such as tables, views, and Tableau worksheets, dashboards and workbooks.

Source History attribute name Description Value examples Value data type Supported operators in WHERE Supported in ORDER BY Supported in FACET
"Source History"."Popularity Count" Popularity count of the object in the source system 10 Integer =, !=, = ANY (...), != ANY (...), [NOT] EXISTS, <, <=, >, >= and BETWEEN … AND … Yes Yes
"Source History"."Last Data Access Date" Last data access date for database tables and views etc. 2024-07-24 13:25:17 Date =, BEFORE, AFTER, BETWEEN ... AND …, [NOT] EXISTS Yes Yes
"Source History"."Last Data Update Date" Last data modification date for database tables and views etc. 2024-07-24 13:25:17 Date =, BEFORE, AFTER, BETWEEN ... AND …, [NOT] EXISTS Yes Yes
"Source History"."Last Access Users" Last users who access an object [{"name": "Angela","email": "agelar@metaintegration.com", "lastAccessTime": "2024-07-24 13:25:17"}] Array of SourceHistoryAccessUser [NOT] EXISTS No No

In MM one object may relate to some other object(s). We call the latter related object(s) of the current object. The relationship between the current object and its related objects is called the related object type.

For example, a table Customer may have columns such as CustomerId, Name, Address, etc. These columns are the table Customer's related objects. The related object type is Children.

The related object types are a subset of the system attributes. These are the related object types currently available:

  • Children: children of the current object

  • Parent: parent of the current object

In some cases, the user wants to select or filter on the properties of the related objects. We call the property of a related object a related object property. For example, Parent."Object Type" refers to the object type of the parent.

Here is a list of properties defined on each of the related object type:

Related Object Type Related Object Properties
Children (Deprecated) System Attribute, profile attribute, data profiling attribute, custom attribute, custom relationship, and udp
Parent System Attribute, profile attribute, custom attribute, custom relationship, and udp

The user may also select on the relationships of the related objects. We call the relationship of a related object a related object relationship. For example, Parent."Is Defined By" refers to the terms used to classify the parent of the current object. The value of a relationship or related object relationship is an array of objects of the type of Entity.

A related object type can be used as a system attribute by itself or as a related object property of another related object type or the same related object type. When a related object type is used as a system attribute or a related object property, its value is the same as the Name system attribute of the related object(s). For example, the system attribute Parent of the EmployeeId column is "Employees", which is the name of the Employees table.

We only support related objects of one level. I.e. we do not support the following: Parent.Parent. "Object Type".

One object may have multiple related objects of the same type. For example, a table may have multiple columns. This kind of related object type is multi-valued.

The following related object types are multi-valued:

  • Children (Deprecated)

The value of any multi-valued related object property is an array of strings or other object types.

If the multi-valued related object property is a custom attribute of the Enumeration (multi-value) data type, a multi-valued custom relationship, or a multi-valued system attributes or data profiling attribute, such as Children, "Data Classifications", "Data Classifications Approved", "Data Classifications Matched", "Data Classifications Rejected", Labels, Collections, "My Workflow Tasks", Context, "Column Histogram", "Data Profiling"."Inferred Data Types", the value of the property is an array of arrays of strings or objects. For example, Children.Children of a database schema is an array of arrays. The outer array is an array of tables of the schema. The inner array is an array of column names of each table of the outer array.

The value of any multi-valued related object relationship is an array of arrays of objects of the type of Entity.

Attribute resolution

A name can identify multiple property types especially if the configuration contains models with many different profiles. To prevent ambiguity the user may qualify a profile attribute or profile relationship with a profile name. Custom attributes, custom relationships, UDPs and system attributes also share the same name space. MM uses the following precedence rules in resolving ambiguity among the custom attributes, custom relationships, UDPs, system attributes and any unqualified profile attributes or profile relationships. The rules are listed in descending order:

  1. System attributes and Source History attributes

  2. Custom attributes

  3. Custom relationships

  4. Data Profiling attributes

  5. Profile attributes

  6. Profile relationships

  7. UDPs