Skip to content

Export Outputs

An Export operation writes Qualytics' own metadata into the enrichment destination, so it can be queried and reported on alongside your data. Four outputs can be exported:

  • _<datastore_name>_export_anomalies
  • _<datastore_name>_export_checks
  • _<datastore_name>_export_field_profiles
  • _export_check_templates

The first three use the source datastore's name, normalized to lowercase with non-alphanumeric characters replaced by underscores, with a leading underscore. For example, Acme Sales 2024 exports checks to _acme_sales_2024_export_checks. Unlike Scan, Remediation, and Materialize outputs, these names do not use the configurable enrichment prefix. Renaming the source changes the names used by future exports; it does not rename existing outputs.

Check templates belong to the whole organization rather than to a datastore, so their output has no datastore-name prefix; it is written by Export Check Templates from the Library. After that export, run Sync and then Profile on the selected enrichment datastore to discover and inspect the output as a container in Qualytics. This export does not trigger the automatic refresh used by datastore exports.

Note

Every export uses a create or replace approach: the output is created if it does not exist and replaced entirely if it does, so it always holds the latest export and nothing older.

For how to run an export, see the Export Operation documentation. For the shape of the exported records as Qualytics defines them, see the Export Schema; this page documents the outputs as they land in the destination.

Column names below are shown in uppercase for readability; identifier casing and physical types depend on the destination connector. Timestamps in the export payload are text. JSON values are serialized into string columns.

_EXPORT_ANOMALIES output

Contains metadata from anomalies in a distinct normalized format. Each export captures the current anomaly status; replacing the output does not preserve a history of status changes.

Columns

Name Data Type Description
ID NUMBER Unique identifier for the anomaly.
CREATED STRING Timestamp of anomaly creation.
UUID STRING Universal Unique Identifier of the anomaly.
TYPE STRING Type of the anomaly (e.g., 'shape').
STATUS STRING Current status of the anomaly (e.g., 'Active').
GLOBAL_TAGS STRING Tags associated globally with the anomaly.
CONTAINER_ID NUMBER Identifier for the associated container.
SOURCE_CONTAINER STRING Name of the source container.
DATASTORE_ID NUMBER Identifier for the associated datastore.
SOURCE_DATASTORE STRING Name of the source datastore.
GENERATED_AT STRING Timestamp when the export was generated.

_EXPORT_CHECKS output

Contains metadata from quality checks.

Columns

Name Data Type Description
ADDITIONAL_METADATA STRING JSON-formatted string containing additional metadata for the check.
COVERAGE FLOAT Represents the expected tolerance of the rule.
CREATED STRING Created timestamp of the check.
DELETED_AT STRING Deleted timestamp of the check.
DESCRIPTION STRING Description of the check.
FIELDS STRING Fields involved in the check separated by comma.
FILTER STRING Criteria used to filter data when asserting the check.
GENERATED_AT STRING Indicates when the export was generated.
GLOBAL_TAGS STRING Represents the global tags of the check separated by comma.
IS_PASSING BOOLEAN Current pass/fail status; may be null before assertion.
FIRST_ASSERTED STRING Earliest Scan start time that produced a pass or fail result.
STATUS STRING Active, Draft, Invalid, or Discarded.
ID NUMBER Unique identifier for the check.
INFERRED BOOLEAN Indicates whether the check is AI Managed (managed by Qualytics AI). The column name INFERRED is preserved for backward compatibility; in the UI the same concept is labeled AI Managed.
LAST_ASSERTED STRING Timestamp of the last assertion performed on the check.
LAST_EDITOR STRING Represents the last editor of the check.
LAST_UPDATED STRING Represents the last updated timestamp of the check.
PROPERTIES STRING Specific properties for the check in a JSON format.
RULE_TYPE STRING Type of rule applied in the check.
WEIGHT FLOAT The check's weight value (surfaced as Importance in the UI).
DATASTORE_ID NUMBER Identifier of the datastore used in the check.
CONTAINER_ID NUMBER Identifier of the container used in the check.
TEMPLATE_ID NUMBER Identifier of the template id associated to the check.
SOURCE_CONTAINER STRING Name of the container used in the check.
SOURCE_DATASTORE STRING Name of the datastore used in the check.

_EXPORT_CHECK_TEMPLATES output

Contains metadata from check templates.

Columns

Name Data Type Description
ADDITIONAL_METADATA STRING JSON-formatted string containing additional metadata for the check.
COVERAGE FLOAT Represents the expected tolerance of the rule.
CREATED STRING Created timestamp of the check.
DELETED_AT STRING Deleted timestamp of the check.
DESCRIPTION STRING Description of the check.
FIELDS STRING Fields involved in the check separated by comma.
FILTER STRING Criteria used to filter data when asserting the check.
GENERATED_AT STRING Indicates when the export was generated.
GLOBAL_TAGS STRING Represents the global tags of the check separated by comma.
ID NUMBER Unique identifier for the check.
LAST_EDITOR STRING Represents the last editor of the check.
LAST_UPDATED STRING Represents the last updated timestamp of the check.
PROPERTIES STRING Specific properties for the check in a JSON format.
RULE_TYPE STRING Type of rule applied in the check.
TEMPLATE_CHECKS_COUNT NUMBER The count of associated checks to the template.
TEMPLATE_LOCKED BOOLEAN Indicates whether the check template is locked or not.
WEIGHT FLOAT The check's weight value (surfaced as Importance in the UI).

_EXPORT_FIELD_PROFILES output

Contains metadata from field profiles.

Columns

Name Data Type Description
APPROXIMATE_DISTINCT_VALUES FLOAT Estimated number of distinct values in the field.
COMPLETENESS FLOAT Ratio of non-null entries to total entries in the field.
CONTAINER_ID NUMBER Identifier for the container holding the field.
SOURCE_CONTAINER STRING Name of the container holding the field.
CONTAINER_CONTAINER_TYPE STRING Container kind, such as table, file, or computed_table.
CREATED STRING Date when the field profile was created.
DATASTORE_ID NUMBER Identifier for the datastore containing the field.
SOURCE_DATASTORE STRING Name of the datastore containing the field.
DATASTORE_TYPE STRING Type of datastore.
ENTROPY FLOAT Measure of randomness in the information being processed.
FIELD_GLOBAL_TAGS STRING Global tags associated with the field.
FIELD_ID NUMBER Unique identifier for the field.
FIELD_NAME STRING Name of the field being profiled.
FIELD_DISPLAY_NAME STRING Custom display name of the field, when set.
FIELD_NATIVE_TYPE STRING Type declared by the source, such as VARCHAR.
FIELD_STATUS STRING active, masked, missing, or excluded.
FIELD_DESCRIPTION STRING Field description, when set.
FIELD_PROFILE_ID NUMBER Identifier for the field profile record.
FIELD_QUALITY_SCORE Nullable Currently exported as null. Read quality scores in Qualytics or through the API instead.
FIELD_TYPE STRING Data type of the field.
FIELD_WEIGHT NUMBER Weight assigned to the field for quality scoring.
GENERATED_AT STRING Date when the field profile was generated.
HISTOGRAM_BUCKETS STRING Distribution of data within the field represented as buckets.
IS_NOT_NORMAL BOOLEAN Indicator of whether the field data distribution is not normal.
KURTOSIS FLOAT Measure of the tailedness of the probability distribution.
MAX FLOAT Maximum value found in the field.
MAX_LENGTH FLOAT Maximum length of string entries in the field.
MEAN FLOAT Average value of the field's data.
MEDIAN FLOAT Middle value in the field's data distribution.
MIN FLOAT Minimum value found in the field.
MIN_LENGTH FLOAT Minimum length of string entries in the field.
NAME STRING Descriptive name of the field.
Q1 FLOAT First quartile in the field's data distribution.
Q3 FLOAT Third quartile in the field's data distribution.
SKEWNESS FLOAT Measure of the asymmetry of the probability distribution.
STD_DEV FLOAT Standard deviation of the field's data.
SUM FLOAT Sum of all numerical values in the field.
TYPE_DECLARED BOOLEAN Indicator of whether the field type is explicitly declared.
UNIQUE_DISTINCT_RATIO FLOAT Ratio of unique distinct values to the total distinct values.

Handling JSON and string splitting

Several columns of the exported checks output hold JSON (ADDITIONAL_METADATA, PROPERTIES) or comma-separated lists (FIELDS, GLOBAL_TAGS). The following SQL examples show how to unpack them in JDBC destinations. Replace _EXPORT_CHECKS in each query with the actual database table name and use the identifier casing required by your database.

SELECT
    PARSE_JSON(ADDITIONAL_METADATA):metadata_1::string AS Metadata1_Key1,
    PARSE_JSON(ADDITIONAL_METADATA):metadata_2::string AS Metadata2_Key1,
    PARSE_JSON(ADDITIONAL_METADATA):metadata_3::string AS Metadata3_Key1,
    -- Add more lines as needed up to MetadataN
    CONTAINER_ID,
    COVERAGE,
    CREATED,
    DATASTORE_ID,
    DELETED_AT,
    DESCRIPTION,
    SPLIT_PART(FIELDS, ',', 1) AS Field1,
    SPLIT_PART(FIELDS, ',', 2) AS Field2,
    -- Add more lines as needed up to FieldN
    FILTER,
    GENERATED_AT,
    SPLIT_PART(GLOBAL_TAGS, ',', 1) AS Tag1,
    SPLIT_PART(GLOBAL_TAGS, ',', 2) AS Tag2,
    -- Add more lines as needed up to TagN
    IS_PASSING,
    ID,
    INFERRED,
    LAST_ASSERTED,
    LAST_EDITOR,
    LAST_UPDATED,
    PARSE_JSON(PROPERTIES):allow_other_fields::string AS Property_AllowOtherFields,
    PARSE_JSON(PROPERTIES):assertion::string AS Property_Assertion,
    PARSE_JSON(PROPERTIES):comparison::string AS Property_Comparison,
    PARSE_JSON(PROPERTIES):datetime_::string AS Property_Datetime,
    -- Add more lines as needed up to Property
    RULE_TYPE,
    SOURCE_CONTAINER,
    SOURCE_DATASTORE,
    TEMPLATE_ID,
    WEIGHT
FROM "_EXPORT_CHECKS";
SELECT
    (ADDITIONAL_METADATA::json ->> 'metadata_1') AS Metadata1_Key1,
    (ADDITIONAL_METADATA::json ->> 'metadata_2') AS Metadata2_Key1,
    (ADDITIONAL_METADATA::json ->> 'metadata_3') AS Metadata3_Key1,
    -- Add more lines as needed up to MetadataN
    CONTAINER_ID,
    COVERAGE,
    CREATED,
    DATASTORE_ID,
    DELETED_AT,
    DESCRIPTION,
    (string_to_array(FIELDS, ','))[1] AS Field1,
    (string_to_array(FIELDS, ','))[2] AS Field2,
    -- Add more lines as needed up to FieldN
    FILTER,
    GENERATED_AT,
    (string_to_array(GLOBAL_TAGS, ','))[1] AS Tag1,
    (string_to_array(GLOBAL_TAGS, ','))[2] AS Tag2,
    -- Add more lines as needed up to TagN
    IS_PASSING,
    ID,
    INFERRED,
    LAST_ASSERTED,
    LAST_EDITOR,
    LAST_UPDATED,
    (PROPERTIES::json ->> 'allow_other_fields') AS Property_AllowOtherFields,
    (PROPERTIES::json ->> 'assertion') AS Property_Assertion,
    (PROPERTIES::json ->> 'comparison') AS Property_Comparison,
    (PROPERTIES::json ->> 'datetime_') AS Property_Datetime,
    -- Add more lines as needed up to PropertyN
    RULE_TYPE,
    SOURCE_CONTAINER,
    SOURCE_DATASTORE,
    TEMPLATE_ID,
    WEIGHT
FROM "_EXPORT_CHECKS";
SELECT
    (ADDITIONAL_METADATA->>'$.metadata_1') AS Metadata1_Key1,
    (ADDITIONAL_METADATA->>'$.metadata_2') AS Metadata2_Key1,
    (ADDITIONAL_METADATA->>'$.metadata_3') AS Metadata3_Key1,
    -- Add more lines as needed up to MetadataN
    CONTAINER_ID,
    COVERAGE,
    CREATED,
    DATASTORE_ID,
    DELETED_AT,
    DESCRIPTION,
    SUBSTRING_INDEX(FIELDS, ',', 1) AS Field1,
    -- Add more lines as needed up to FieldN
    SUBSTRING_INDEX(GLOBAL_TAGS, ',', 1) AS Tag1,
    -- Add more lines as needed up to TagN
    IS_PASSING,
    ID,
    INFERRED,
    LAST_ASSERTED,
    LAST_EDITOR,
    LAST_UPDATED,
    (PROPERTIES->>'$.allow_other_fields') AS Property_AllowOtherFields,
    (PROPERTIES->>'$.assertion') AS Property_Assertion,
    (PROPERTIES->>'$.comparison') AS Property_Comparison,
    (PROPERTIES->>'$.datetime_') AS Property_Datetime,
    -- Add more lines as needed up to PropertyN
    RULE_TYPE,
    SOURCE_CONTAINER,
    SOURCE_DATASTORE,
    TEMPLATE_ID,
    WEIGHT
FROM `_EXPORT_CHECKS`;