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`;