Skip to main content

Query Language

Marmot provides a query language for searching and filtering assets in your catalog. The language supports free-text search, field-specific filters, comparison operators and boolean logic.

Optional but Powerful

The query language is entirely optional. Simple free-text searches work well for everyday discovery. When you need precision, such as finding all Kafka topics owned by a specific team or tables with more than a million rows, the query language gives you that control. Queries are also repeatable and shareable, making it easy to bookmark common searches or share them with your team.

Where It's Used

The query language powers several features across Marmot:

Search

Find assets quickly using free-text or precise field filters in the global search bar.

Data Products

Define dynamic rules that automatically include matching assets in your Data Products.

Build Dynamic Data Products

Use the query language to create rules that automatically group related assets. As your catalog grows, matching assets are included automatically.

Learn About Data Products

Query Builder

The search bar includes a visual query builder that helps you construct queries without memorising the syntax. Click the filter icon to open it, select your field and operator, then enter your value. The builder generates the query syntax automatically.

Query builder in Marmot

Syntax Reference

Fields

Filter assets using field prefixes:

FieldDescriptionExample
@typeAsset type@type: "table"
@providerProvider or platform@provider: "kafka"
@nameAsset name@name: "users"
@kindResource kind in Marmot@kind: "asset"
@metadata.*Custom metadata fields@metadata.team: "platform"

Metadata supports dot notation for nested fields: @metadata.config.retention: "7d"

Operators

OperatorDescriptionExample
: or =Exact match@type: "table"
!=Not equal@metadata.environment != "test"
containsSubstring match@name contains "customer"
> < >= <=Numeric comparison@metadata.partitions > 10
rangeNumeric range@metadata.size range [100 TO 500]
*Wildcard@name: "customer*"

Boolean Logic

Combine filters with AND, OR and NOT. Use parentheses to control precedence:

# Multiple conditions
@type: "topic" AND @provider: "kafka"

# Either condition
@metadata.priority: "high" OR @metadata.criticality: "critical"

# Exclusion
@metadata.environment: "production" AND NOT @name contains "test"

# Grouped logic
(@type: "table" OR @type: "view") AND @provider: "postgres"

Examples

Search across asset names, descriptions and metadata without any special syntax.

user orders

Find all Kafka topics by combining type and provider filters.

@type: "topic" AND @provider: "kafka"

Find all assets owned by a specific team using custom metadata.

@metadata.team: "data-platform"

Filter assets based on numeric metadata values.

@type: "topic" AND @metadata.partitions > 10

Use wildcards when you don't know the exact name.

@name: "*customer*" AND @type: "table"

Use parentheses to control how conditions are combined.

(@type: "table" OR @type: "view") AND @provider: "postgres"

Need Help with Queries?

Join our Discord community to ask questions and share tips with other Marmot users.

Join Discord