Data Observability platform Help

Import

The Import feature allows to import data into the system by uploading CSV or Excel files. The catalog import is opened from the "More" dropdown on the right of the toolbar on the Catalog page's tabs.

Catalog import modal consists of:

import_modal.png

Fields

Entity type

  • Business rules - Catalog business rules (Catalog import does not support linking test cases, can be done with API)

    • owners column is optional

    • A new rule with no known owner gets the importing user as owner

    • An existing rule with no owner given keeps its current owners

    • An existing rule with no known role given keeps its allowed roles

    • Unknown owner and role names are skipped with a note

    • An existing rule the importing user cannot edit cannot be imported and stays unchanged

    • The preview of an existing rule with no owner given shows its current owners

  • Objects - Catalog objects descriptions

  • Attributes - Catalog attributes (columns) descriptions

  • Attribute relations - Relations between attributes

  • Attribute relations (SQL) - Relations between attributes and query evaluation functionality

  • Attribute term relations - Term labels on attributes

  • Terms - Business glossary terms

  • Term relations - Relations between glossary terms

Alert recipients

Terms, Objects and test case files set alert recipients in two columns, alertEmails for addresses and alertWebhooks for webhook names, several values separated by ;. A cell with values replaces that kind of recipient: anyone not listed is unsubscribed.

Value

What the import does

ops@example.com

Subscribes the address. An existing subscriber keeps their scopes, a new one gets Changes (Failure on test cases)

ops@example.com[AUDIT]

Subscribes the address with exactly the Changes scope

Slack[AUDIT\|QUALITY=10]

Subscribes the webhook with Changes and Quality, notified from a 10% drop

Slack[QUALITY=0]

Subscribes the webhook with Quality only, notified about any drop

Slack[QUALITY]

Subscribes the webhook with Quality only, keeping its current minimum drop (any drop if new)

-

Removes every recipient of that kind: all addresses in alertEmails, all webhooks in alertWebhooks

blank cell

Leaves that kind of recipient untouched

  • Scopes go in brackets after the name, separated by |, in any case: AUDIT = Changes, FAILURE = Failure, QUALITY = Quality

  • Terms offer Changes; Objects offer Changes and Quality; Test cases offer Changes and Failure

  • QUALITY=<n> sets the minimum drop in percent, from 0 to 100; 0 means any drop

  • A scope the entity type does not offer is dropped with a note; the recipient imports with the rest

  • Only the last bracket group is read as scopes, so a webhook named Ops [EU] is written Ops [EU][AUDIT]

  • Exports write every recipient's scopes, Quality always with its minimum, so an exported file re-imports as-is

  • A value with an address that is not valid, a webhook name that matches no webhook or a scope that is not valid is skipped with a note, shown in the preview (after the import for test cases), and the rest of the row imports

  • The cell replaces that kind of recipient, so a skipped recipient who was subscribed is unsubscribed when the cell still holds another usable value; a cell left with no usable value changes nothing

A Terms file with the Comma separator, subscribing two addresses and removing all webhooks:

name,glossary,alertEmails,alertWebhooks Revenue,Finance,ops@example.com;finance@example.com[AUDIT],-

A test case file (test case CSV files are always comma-separated), alerting on failures and changes:

connectionName,testsuiteName,description,sql,expectedResult,type,alertEmails,alertWebhooks Warehouse,Nightly,Addresses not empty,SELECT COUNT(*) FROM public.addresses,>0,Query,ops@example.com[AUDIT|FAILURE],Slack[FAILURE]

With the Semicolon separator, a cell holding several values has to be quoted: "ops@example.com;finance@example.com[AUDIT]".

File

Import can be done from both CSV and Excel files

You can get the import template with required headers (including custom fields) in your preferred format:

Import format

Separator

If you are using CSV files, you can also choose your separator:

  • Comma (,) - Values are separated by commas.

  • Semicolon (;) - Values are separated by semicolons.

File Upload

Upload File: Uploading import template will preview all entities that are available for import.

import_example.png

Under the preview table, a summary counts what the file contains:

  • "N importable entities found" - the rows shown in the preview table, which is what pressing Import will write.

  • "N rows cannot be imported" (red) - the row is left out entirely.

  • "N rows will be skipped" (amber) - the row repeats an earlier row for the same entity, which is imported once.

  • "N rows will be imported with notes" (grey) - the row imports with an adjustment: the importing user becomes the owner when none is given, or an unknown owner or role name, an alertEmails address that is not valid, an alertWebhooks name that matches no webhook or a scope that is not valid is left off.

Whenever the file has any of these rows, a Show details button appears beside the counts.

Import details

Show details opens the Import details modal, listing the reported rows in file order so the file can be corrected from top to bottom:

  • Line - the line number in the uploaded file, counting the header as line 1, as a spreadsheet shows it in its row gutter

  • Reason - every problem the row has. A term that could not be found suggests the glossary-qualified spelling, and a cell that could not be read names the column and the rejected value

  • The remaining columns are the file's own headers, showing each row exactly as it was uploaded

  • The icon beside the line number marks the outcome: red triangle - cannot be imported, amber triangle - will be skipped, grey info - imported with a note

A row is reported for one of these reasons:

  • A cell could not be read - a number, an identifier or a true/false column holding something else. The row cannot be imported

  • A reference could not be resolved - an unknown connection, object, attribute or term. The row cannot be imported

  • The entity cannot be edited - an existing business rule the importing user cannot edit. The row cannot be imported

  • The row repeats an earlier one - the row will be skipped

  • A value was adjusted - a defaulted owner, or an owner, role, alertEmails address, alertWebhooks name or scope that was left off. The row imports with a note

One bad row never stops the rest of the file from importing.

After the import

The checks above run before anything is written. A row can still fail at the point of import - a relation that already exists, or one that would create a cycle. When that happens an "Entities that were skipped or failed" modal opens by itself after the import, naming each entity and the problem behind it. The import dialog deliberately stays open underneath, so closing the modal does not take the list with it.

Evaluate query

To open query evaluate modal, choose entity type "Attribute relations (SQL)" and press "Insert from query" button

evaluate

Lineage from query

To accurately evaluate data lineage, select a database connection and insert SQL query. SelectZero is able to parse lineage from various queries containing INSERT, UPDATE, JOIN statements, parsing abstract syntax tree from SQL queries.

queryEvaluate

Smart relations

In case your queries contain objects which are missing metadata loaded into the platform, you can use smart relations. In case SelectZero counters missing objects such as temp tables, it can still stitch together lineage which is connected to existing metadata objects through N temporary objects.

You can enable this by checking the querySmartRelations

Origin query check

You can also check the origin query by clicking on the relation type arrow relationTypeArrow

queryView

09 October 2026