mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-10-04 21:32:16 +00:00
689 lines
23 KiB
Markdown
689 lines
23 KiB
Markdown
---
|
||
title: Tests - UI Config | OpenMetadata Quality Config Guide
|
||
description: Define UI tests to validate data quality during ingestion and enforce expectations at column or table level.
|
||
slug: /how-to-guides/data-quality-observability/quality/tests-ui
|
||
---
|
||
|
||
# Tests in the OpenMetadata UI
|
||
Here you can see all the supported tests definitions and how to configure them in the UI.
|
||
|
||
A **Test Definition** is a generic definition of a test. This Test Definition then gets specified in a Test Case. This Test Case is where the parameter(s) of a Test Definition are specified.
|
||
|
||
In this section, you will learn what tests we currently support and how to configure them in the OpenMetadata UI.
|
||
|
||
- [Table Tests](#table-tests)
|
||
- [Column Tests](#column-tests)
|
||
|
||
## Table Tests
|
||
Tests applied on top of a Table. Here is the list of all table tests:
|
||
|
||
- [Table Row Count to Equal](#table-row-count-to-equal)
|
||
- [Table Row Count to be Between](#table-row-count-to-be-between)
|
||
- [Table Column Count to Equal](#table-column-count-to-equal)
|
||
- [Table Column Count to be Between](#table-column-count-to-be-between)
|
||
- [Table Column Name to Exist](#table-column-name-to-exist)
|
||
- [Table Column to Match Set](#table-column-to-match-set)
|
||
- [Table Custom SQL Test](#table-custom-sql-test)
|
||
- [Table Row Inserted Count To Be Between](#table-row-inserted-count-to-be-between)
|
||
- [Compare 2 Tables for Differences](#compare-2-tables-for-differences)
|
||
- [Table Data to Be Fresh [Collate]](#table-data-to-be-fresh-collate)
|
||
|
||
### Table Row Count to Equal
|
||
Validate that the total number of rows in a table exactly matches an expected value.**
|
||
|
||
#### When to Use
|
||
- To monitor tables where row count is expected to remain fixed (e.g., dimension tables).
|
||
- To catch over- or under-loading issues after ETL processes.
|
||
- To verify baseline data volumes for test/staging/prod comparisons.
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|---------------|------------------------------------------------|
|
||
| **Expected Value** | The exact number of rows the table should contain. |
|
||
|
||
#### Test Logic
|
||
|
||
| Condition | Status |
|
||
|-----------------------------------|------------|
|
||
| Actual row count = expected value | ✅ Success |
|
||
| Actual row count ≠ expected value | ❌ Failed |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/equal.gif"
|
||
/%}
|
||
|
||
### Table Row Count to be Between
|
||
Ensure that the total number of rows in the table falls within an expected range.
|
||
|
||
#### When to Use
|
||
- To monitor for abnormal growth or shrinkage in table size.
|
||
- To catch failed inserts, unintended truncations, or unexpected data surges.
|
||
- To set alerts based on historical data volume expectations.
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|-----------------|-----------------------------------------------------------------|
|
||
| **Min Value** | Minimum expected number of rows (`minValue`) |
|
||
| **Max Value** | Maximum allowed number of rows (`maxValue`) |
|
||
|
||
- At least one of these values is required to run the test.
|
||
|
||
#### Test Logic
|
||
|
||
| Condition | Status |
|
||
|------------------------------------------------|------------|
|
||
| Row count is between `minValue` and `maxValue` | ✅ Success |
|
||
| Row count is outside the defined range | ❌ Failed |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/between.gif"
|
||
/%}
|
||
|
||
### Table Column Count to Equal
|
||
|
||
Validate that the table contains exactly the expected number of columns.
|
||
|
||
#### When to Use
|
||
- To detect unapproved schema changes (e.g., columns being added or dropped).
|
||
- To enforce data contracts between teams or systems.
|
||
- To ensure structural consistency across environments.
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|------------------|------------------------------------------|
|
||
| **Expected Count** | Exact number of columns the table must have. |
|
||
|
||
#### Test Logic
|
||
|
||
| Condition | Status |
|
||
|-----------------------------------------------|------------|
|
||
| Actual column count = expected count | ✅ Success |
|
||
| Actual column count ≠ expected count | ❌ Failed |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/column-equal.gif"
|
||
/%}
|
||
|
||
### Table Column Count to be Between
|
||
Validate that the number of columns in a table falls within a defined range.
|
||
|
||
#### When to Use
|
||
- To detect schema drift or changes in table structure.
|
||
- To ensure a table has a predictable number of columns across environments (e.g., staging vs. production).
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|------------------|----------------------------------------------|
|
||
| **Min Columns** | Minimum number of expected columns (`minColValue`) |
|
||
| **Max Columns** | Maximum number of allowed columns (`maxColValue`) |
|
||
|
||
#### Test Logic
|
||
|
||
| Condition | Status |
|
||
|-------------------------------------------------------|------------|
|
||
| Actual column count is within the defined range | ✅ Success |
|
||
| Actual column count is outside the defined range | ❌ Failed |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/column-between.gif"
|
||
/%}
|
||
|
||
### Table Column Name to Exist
|
||
Ensure that a specific column is present in the table schema.
|
||
|
||
#### When to Use
|
||
- To validate that required schema fields exist (e.g., `order_id`, `customer_id`).
|
||
- To monitor schema changes that might break downstream processes.
|
||
- To enforce critical column presence in governed datasets.
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|----------------|--------------------------------------------|
|
||
| **Column Name** | Name of the column that must exist in the table. |
|
||
|
||
#### Test Logic
|
||
|
||
| Condition | Status |
|
||
|---------------------------------------------|------------|
|
||
| `columnName` exists in the table schema | ✅ Success |
|
||
| `columnName` is missing from the table | ❌ Failed |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/exist.gif"
|
||
/%}
|
||
|
||
### Table Column to Match Set
|
||
Validate that a table’s column names match a predefined set — with or without order sensitivity.
|
||
|
||
#### When to Use
|
||
- To ensure schema alignment across different environments or pipeline stages.
|
||
- To detect unexpected column additions, deletions, or reordering.
|
||
- To enforce table contracts where the exact structure is critical.
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|------------------|-----------------------------------------------------------------------------|
|
||
| **Column Names** | Comma-separated list of expected column names (e.g., `col1, col2, col3`) |
|
||
| **Ordered** | Boolean flag (`true` or `false`) — whether the order of columns must match. |
|
||
|
||
#### Test Logic
|
||
|
||
| Ordered | Condition | Status |
|
||
|---------|--------------------------------------------------------|------------|
|
||
| `false` | All expected column names exist (any order) | ✅ Success |
|
||
| `true` | Column names match and appear in the exact order | ✅ Success |
|
||
| `false` | Some columns are missing or extra | ❌ Failed |
|
||
| `true` | Columns are present but order is incorrect | ❌ Failed |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/match-set.gif"
|
||
/%}
|
||
|
||
### Table Custom SQL Test
|
||
|
||
Use this test to define your own validation logic using a custom SQL expression.
|
||
|
||
#### When to Use
|
||
- To implement logic beyond predefined test definitions.
|
||
- To detect outliers, nulls, duplicates, or business-specific data anomalies.
|
||
- When you need full flexibility using SQL syntax.
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|----------|-------------|
|
||
| **SQL Expression** | The SQL query used to evaluate the test. |
|
||
| **Strategy** | Defines how to interpret the result. Options: `ROWS` *(default)* or `COUNT`. |
|
||
| **Threshold** | The maximum allowed rows or count before marking the test as failed. Default is `0`. |
|
||
|
||
#### Test Logic
|
||
|
||
| Strategy | Condition | Status |
|
||
|----------|-----------|--------|
|
||
| ROWS | Number of returned rows ≤ `threshold` | ✅ Success |
|
||
| ROWS | Number of returned rows > `threshold` | ❌ Failed |
|
||
| COUNT | Count result ≤ `threshold` | ✅ Success |
|
||
| COUNT | Count result > `threshold` | ❌ Failed |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/custom-sql.gif"
|
||
/%}
|
||
|
||
### Table Row Inserted Count To Be Between
|
||
Check that the number of rows inserted during a defined time window falls within an expected range.**
|
||
|
||
#### When to Use
|
||
- To detect whether recent data ingestion volumes are within acceptable limits.
|
||
- To monitor time-partitioned tables for daily/hourly/monthly data drops or spikes.
|
||
- To validate pipeline freshness and completeness over time.
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|---------------------|-----------------------------------------------------------------------------|
|
||
| **Min Row Count** | Minimum number of inserted rows expected in the given range. |
|
||
| **Max Row Count** | Maximum number of inserted rows allowed in the given range. |
|
||
| **Column Name** | Timestamp column used to filter the inserted rows. |
|
||
| **Range Type** | Time granularity: `HOUR`, `DAY`, `MONTH`, or `YEAR`. |
|
||
| **Range Interval** | Number of units (e.g., last `1 DAY`, `2 HOURS`, etc.). |
|
||
|
||
#### Test Logic
|
||
|
||
| Condition | Status |
|
||
|----------------------------------------------------|------------|
|
||
| Row count within `min` and `max` for the interval | ✅ Success |
|
||
| Row count outside of the expected range | ❌ Failed |
|
||
|
||
{% note %}
|
||
|
||
The Table Row Inserted Count To Be Between cannot be executed against tables that have configured a partition in OpenMetadata. The logic of the test performed will be similar to executing a Table Row Count to be Between test against a table with a partition configured.
|
||
|
||
{% /note %}
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/inserted-count.gif"
|
||
/%}
|
||
|
||
### Compare 2 Tables for Differences
|
||
|
||
Use this test to verify data consistency between two tables, even across different platforms or services.
|
||
|
||
#### When to Use
|
||
- After data replication or migration (e.g., Snowflake → Redshift).
|
||
- To validate data integrity between source and target systems.
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|----------|-------------|
|
||
| **Key Columns** | Columns used as the row-matching key. Defaults to the table's primary key if not specified. |
|
||
| **Columns to Compare** | Subset of columns used for comparison. If not provided, all columns will be compared. |
|
||
| **Second Table** | Fully qualified name of the second table (e.g., `redshift_dbt.dev.dbt_jaffle.boolean_test`). |
|
||
| **Threshold** | Maximum number of mismatched rows allowed. Default is `0` (strict equality). |
|
||
| **Filter Condition** | *(Optional)* A `WHERE` clause (e.g., `id != 999`) to limit rows involved in the comparison. |
|
||
| **Case-Sensitive Columns** | Set to `true` if column name case must match exactly (default is `false`). |
|
||
|
||
#### Test Logic
|
||
|
||
| Condition | Status |
|
||
|-----------|--------|
|
||
| Number of differing rows ≤ threshold | ✅ Success |
|
||
| Number of differing rows > threshold | ❌ Failed |
|
||
|
||
#### 🌐 Supported Data Sources
|
||
|
||
- Snowflake
|
||
- BigQuery
|
||
- Athena
|
||
- Redshift
|
||
- Postgres
|
||
- MySQL
|
||
- MSSQL
|
||
- Oracle
|
||
- Trino
|
||
- SAP Hana
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/differences.gif"
|
||
/%}
|
||
|
||
### Table Data to Be Fresh [Collate]
|
||
Ensure that table data is being updated frequently enough to be considered fresh.
|
||
|
||
#### When to Use
|
||
- To monitor data pipelines for staleness or lag.
|
||
- To detect delays in scheduled batch updates.
|
||
- To ensure compliance with SLAs for near real-time data delivery.
|
||
|
||
#### Test Summary
|
||
|
||
| Property | Description |
|
||
|----------------------|-----------------------------------------------------------------------------|
|
||
| **Column** | The datetime column used to determine the last update. |
|
||
| **Time Since Update**| Time threshold (in seconds) — maximum age of the most recent data entry. |
|
||
|
||
#### Test Logic
|
||
|
||
| Condition | Status |
|
||
|-------------------------------------------|------------|
|
||
| Last update time ≤ `timeSinceUpdate` | ✅ Success |
|
||
| Last update time > `timeSinceUpdate` | ❌ Failed |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/table-test/fresh.gif"
|
||
/%}
|
||
|
||
## Column Tests
|
||
Tests applied on top of Column metrics. Here is the list of all column tests:
|
||
- [Column Values to Be Unique](#column-values-to-be-unique)
|
||
- [Column Values to Be Not Null](#column-values-to-be-not-null)
|
||
- [Column Values to Match Regex](#column-values-to-match-regex)
|
||
- [Column Values to not Match Regex](#column-values-to-not-match-regex)
|
||
- [Column Values to Be in Set](#column-values-to-be-in-set)
|
||
- [Column Values to Be Not In Set](#column-values-to-be-not-in-set)
|
||
- [Column Values to Be Between](#column-values-to-be-between)
|
||
- [Column Values Missing Count to Be Equal](#column-values-missing-count-to-be-equal)
|
||
- [Column Values Lengths to Be Between](#column-values-lengths-to-be-between)
|
||
- [Column Value Max to Be Between](#column-value-max-to-be-between)
|
||
- [Column Value Min to Be Between](#column-value-min-to-be-between)
|
||
- [Column Value Mean to Be Between](#column-value-mean-to-be-between)
|
||
- [Column Value Median to Be Between](#column-value-median-to-be-between)
|
||
- [Column Values Sum to Be Between](#column-values-sum-to-be-between)
|
||
- [Column Values Standard Deviation to Be Between](#column-values-standard-deviation-to-be-between)
|
||
- [Column Values To Be At Expected Location](#column-values-to-be-at-expected-location)
|
||
|
||
### Column Values to Be Unique
|
||
Ensures each value in a column appears only once.
|
||
|
||
#### Dimension
|
||
`Uniqueness`
|
||
|
||
#### When to Use
|
||
- Primary keys or natural identifiers
|
||
- Fields like email, username, or ID
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|------------------------------|--------|
|
||
| All values are unique | ✅ |
|
||
| Any duplicate value found | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/unique.gif"
|
||
/%}
|
||
|
||
### Column Values to Be Not Null
|
||
Ensures there are no NULL entries in the column.
|
||
|
||
#### Dimension
|
||
`Completeness`
|
||
|
||
#### When to Use
|
||
- Mandatory fields such as `email`, `amount`, `created_at`
|
||
- Required keys or business-critical columns
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|------------------------------|--------|
|
||
| No NULLs present | ✅ |
|
||
| Any NULL value present | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/not-null.gif"
|
||
/%}
|
||
|
||
### Column Values to Match Regex
|
||
This test allows us to specify how many values in a column we expect that will match a certain regex expression. Please note that for certain databases we will fall back to SQL `LIKE` expression. The databases supporting regex pattern as of 0.13.2 are:
|
||
- redshift
|
||
- postgres
|
||
- oracle
|
||
- mysql
|
||
- mariaDB
|
||
- sqlite
|
||
- clickhouse
|
||
- snowflake
|
||
|
||
Ensures all values match a specified regular expression pattern.
|
||
|
||
#### Dimension
|
||
`Validity`
|
||
|
||
#### When to Use
|
||
- Emails, zip codes, IDs, structured formats
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|------------------------------|--------|
|
||
| All values match regex | ✅ |
|
||
| Any value does not match | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/match-regex.gif"
|
||
/%}
|
||
|
||
### Column Values to not Match Regex
|
||
This test allows us to specify values in a column we expect that will not match a certain regex expression. If the test find values matching the `forbiddenRegex` the test will fail. Please note that for certain databases we will fall back to SQL `LIKE` expression. The databases supporting regex pattern as of 0.13.2 are:
|
||
- redshift
|
||
- postgres
|
||
- oracle
|
||
- mysql
|
||
- mariaDB
|
||
- sqlite
|
||
- clickhouse
|
||
- snowflake
|
||
|
||
The other databases will fall back to the `LIKE` expression
|
||
|
||
Ensures values do **not** match a restricted regex pattern.
|
||
|
||
#### Dimension
|
||
`Validity`
|
||
|
||
#### When to Use
|
||
- Prevent forbidden values, test strings, or patterns
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|-------------------------------------|--------|
|
||
| No value matches forbidden pattern | ✅ |
|
||
| Any value matches the pattern | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/not-match-regex.gif"
|
||
/%}
|
||
|
||
### Column Values to Be in Set
|
||
Ensures values are within a predefined whitelist.
|
||
|
||
#### Dimension
|
||
`Validity`
|
||
|
||
#### When to Use
|
||
- Enum values: `status`, `currency`, `country_code`
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|---------------------------------------------------------|--------|
|
||
| All values in set (if `matchEnum = true`) | ✅ |
|
||
| Any value not in set (if `matchEnum = true`) | ❌ |
|
||
| Any value from set exists (if `matchEnum = false`) | ✅ |
|
||
| No values from set found (if `matchEnum = false`) | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/column-values-in-set.gif"
|
||
/%}
|
||
|
||
### Column Values to Be Not In Set
|
||
Ensures values are **not** in a specified blacklist.
|
||
|
||
#### Dimension
|
||
`Validity`
|
||
|
||
#### When to Use
|
||
- Block invalid values like `"NA"`, `"Unknown"`, `-1`
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|-------------------------------------------|--------|
|
||
| No values from forbidden set | ✅ |
|
||
| Any value from forbidden set found | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/column-values-not-in-set.gif"
|
||
/%}
|
||
|
||
### Column Values to Be Between
|
||
Validates numeric values of a column are within a given range.
|
||
|
||
#### Dimension
|
||
`Accuracy`
|
||
|
||
#### When to Use
|
||
- Username length, field input length validation
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|---------------------------------------------|--------|
|
||
| Length within `[min, max]` | ✅ |
|
||
| Length < min or > max | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/to-be-between.gif"
|
||
/%}
|
||
|
||
### Column Values Missing Count to Be Equal
|
||
Ensures total missing values (NULL + defined "missing" strings) match a target count.
|
||
|
||
#### Dimension
|
||
`Completeness`
|
||
|
||
#### When to Use
|
||
- Auditing known missing values
|
||
- Accounting for `"NA"`, `"N/A"`, `"null"`
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|------------------------------------------------|--------|
|
||
| Missing count = expected value | ✅ |
|
||
| Missing count ≠ expected value | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/missing-count.gif"
|
||
/%}
|
||
|
||
### Column Values Lengths to Be Between
|
||
Ensures that the length of each string value in the column is within a defined character range.
|
||
|
||
#### Dimension
|
||
`Accuracy`
|
||
|
||
#### When to Use
|
||
- To validate field length constraints like `name`, `address`, or `description`
|
||
- To catch too-short or too-long values that may break UI or downstream logic
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|-----------------------------------------------|--------|
|
||
| All values have length within `[min, max]` | ✅ |
|
||
| Any value length < min or > max | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/lengths-to-be-between.gif"
|
||
/%}
|
||
|
||
### Column Value Max to Be Between
|
||
Validates the **maximum** value of a column lies within a range.
|
||
|
||
#### Dimension
|
||
`Accuracy`
|
||
|
||
#### When to Use
|
||
- Cap validation for `score`, `amount`, `age`
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|------------------------------------------------------|--------|
|
||
| Max value in range `[min, max]` | ✅ |
|
||
| Max < min or Max > max | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/max.gif"
|
||
/%}
|
||
|
||
### Column Value Min to Be Between
|
||
Validates the **minimum** value of a column lies within a range.
|
||
|
||
#### Dimension
|
||
`Accuracy`
|
||
|
||
#### When to Use
|
||
- Threshold validation for `discount`, `price`, etc.
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|------------------------------------------------------|--------|
|
||
| Min value in range `[min, max]` | ✅ |
|
||
| Min < min or Min > max | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/min.gif"
|
||
/%}
|
||
|
||
### Column Value Mean to Be Between
|
||
Validates that the **mean (average)** value is in the expected range.
|
||
|
||
#### Dimension
|
||
`Accuracy`
|
||
|
||
#### When to Use
|
||
- Check dataset drift or pipeline behavior
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|-------------------------------------------------------|--------|
|
||
| Mean value in `[min, max]` | ✅ |
|
||
| Mean < min or Mean > max | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/mean.gif"
|
||
/%}
|
||
|
||
### Column Value Median to Be Between
|
||
Validates the **median** value is in the expected range.
|
||
|
||
#### Dimension
|
||
`Accuracy`
|
||
|
||
#### When to Use
|
||
- Median income, score, latency checks
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|--------------------------------------------------------|--------|
|
||
| Median in range `[min, max]` | ✅ |
|
||
| Median < min or Median > max | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/median.gif"
|
||
/%}
|
||
|
||
### Column Values Sum to Be Between
|
||
Validates the total **sum** of values in a column is within a defined range.
|
||
|
||
#### Dimension
|
||
`Accuracy`
|
||
|
||
#### When to Use
|
||
- Revenue, units sold, total scores, etc.
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|-----------------------------------------------|--------|
|
||
| Sum in range `[min, max]` | ✅ |
|
||
| Sum < min or Sum > max | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/sum.gif"
|
||
/%}
|
||
|
||
### Column Values Standard Deviation to Be Between
|
||
Validates the **standard deviation** (spread) of values is acceptable.
|
||
|
||
#### Dimension
|
||
`Accuracy`
|
||
|
||
#### When to Use
|
||
- Monitoring variance in numeric datasets
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|--------------------------------------------------|--------|
|
||
| Std Dev in `[min, max]` | ✅ |
|
||
| Std Dev < min or > max | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/standard-deviation.gif"
|
||
/%}
|
||
|
||
### Column Values To Be At Expected Location
|
||
Validates latitude/longitude values are within a defined area.
|
||
|
||
#### Dimension
|
||
`Accuracy`
|
||
|
||
#### When to Use
|
||
- Verifying address coordinates
|
||
- Mapping regional data
|
||
|
||
#### Behavior
|
||
|
||
| Condition | Status |
|
||
|------------------------------------------------------|--------|
|
||
| Coordinates within buffer of expected location | ✅ |
|
||
| Any record outside allowed radius | ❌ |
|
||
|
||
{% image
|
||
src="/images/v1.9/how-to-guides/quality/column-test/expected-location.gif"
|
||
/%}
|