Skip to main content

How to Write and Deploy No-Code Test Cases

OpenMetadata supports data quality tests at the table and column level on all of the supported database connectors. OpenMetadata supports both business-oriented tests as well as data engineering tests. The data engineering tests are more on the technical side to ascertain a sanity check on the data. It ensures that your data meets the technical definition of the data assets, like the columns are not null, columns are unique, etc. There is no need to fill a YAML file or a JSON config file to set up data quality tests in OpenMetadata. You can simply select the options and add in the details right from the UI to set up test cases. To create a test in OpenMetadata:
  • Navigate to the table you would like to create a test for. Click on the Data Observability tab.
  • Click on Add Test to select a Table or Column level test.
Write and Deploy No-Code Test Cases

Table Level Test

To create a Table Level Test enter the following details:
  • Name: Add a name that best defines your test case.
  • Test Type: Based on the test type, you will have further fields to define your test.
  • Description: Describe the test case. Click on Submit to set up a test.
OpenMetadata currently supports the following table level test types:
  1. Table Column Count to be Between: Define the Min. and Max.
  2. Table Column Count to Equal: Define a number.
  3. Table Column Name to Exist: Define a column name.
  4. Table Column Names to Match Set: Add comma separated column names to match. You can also verify if the column names are in order.
  5. Custom SQL Query: Define a SQL expression. Select a strategy if it should apply for Rows or for Count. Define a threshold to determine if the test passes or fails.
  6. Table Row Count to be Between: Define the Min. and Max.
  7. Table Row Count to Equal: Define a number.
  8. Table Row Inserted Count to be Between: Define the Min. and Max. row count. This test will work for columns whose values are of the type Timestamp, Date, and Date Time field. Specify the range type in terms of Hour, Day, Month, or Year. Define the interval based on the range type selected.
  9. Compare 2 Tables for Differences: Compare 2 tables for differences. Allows a user to check for integrity.
  10. Table Data to Be Fresh: Validate the freshness of a table’s data (OpenMetadata).
Configure a Table Level Test

Column Level Test

To create a Column Level Test enter the following details:
  • Column: Select a column. On the right hand side, you can view some context about that column.
  • Name: Add a name that best defines your test case.
  • Test Type: Based on the test type, you will have further fields to define your test.
  • Description: Describe the test case. Click on Submit to set up a test.
Column tests attach to top-level columns only. Nested (struct) child columns don’t appear in the Column selector. To validate a nested field, create a Table Custom SQL Test that returns the rows with an invalid value, or ingest a view that exposes the nested field as a column and test the view.
OpenMetadata currently supports the following column level test types:
  1. Column Value Lengths to be Between: Define the Min. and Max.
  2. Column Value Max. to be Between: Define the Min. and Max.
  3. Column Value Mean to be Between: Define the Min. and Max.
  4. Column Value Median to be Between: Define the Min. and Max.
  5. Column Value Min. to be Between: Define the Min. and Max.
  6. Column Values Missing Count: Define the number of missing values. You can also match all null and empty values as missing. You can also configure additional missing strings like N/A.
  7. Column Values Sum to be Between: Define the Min. and Max.
  8. Column Value Std Dev to be Between: Define the Min. and Max.
  9. Column Values to be Between: Define the Min. and Max.
  10. Column Values to be in Set: You can add an array of allowed values.
  11. Column Values to be Not in Set: You can add an array of forbidden values.
  12. Column Values to be Not Null
  13. Column Values to be Unique
  14. Column Values to Match Regex Pattern: Define the regular expression that the column entries should match.
  15. Column Values to Not Match Regex: Define the regular expression that the column entries should not match.
Configure a Column Level Test Once the test has been created, you can view the test suite. The test case will be displayed in the Data Quality tab. You can also edit the Display Name and Description for the test. Column Level Test Created A pipeline can be set up for the tests to run at a regular cadence.
  • On the Data Quality page, select the test suite and click the Pipelines tab. Alternatively, open the table, go to Data Observability > Data Quality, and click the Pipelines tab.
  • Add a pipeline
Set up a Pipeline
  • Set up the scheduler for the desired frequency. The timezone is in UTC.
  • Click on Submit.
Schedule the Pipeline The pipeline has been set up and will run at the scheduled time. Pipeline Scheduled The tests will be run and the results will be updated in the Data Quality tab. Data Quality Tests

Run a Test Case On Demand

You don’t have to wait for the schedule. To run your test cases right away, run the pipeline manually:
  1. Open the table that has the test case and go to Data Observability > Data Quality.
  2. Select the Pipelines tab and find the pipeline that runs your test case.
  3. Click the ⋮ menu next to the pipeline and select Run. Pipelines tab on the Data Quality page with the Run option open in the pipeline actions menu
  4. Check the Recent Runs column for the pipeline to follow the result. The test case results update in the Data Quality tab.
A manual run doesn’t change the pipeline’s schedule.
Note: The Run option appears only if the pipeline is deployed and you have the Trigger permission. For more information, see Authorization.

Handle Test Failures

If a test fails, you can Edit the Test Status to New, Acknowledged, or Resolved status by clicking on the Status icon. Failed Test: Edit Status
  • Select the Test Status
Edit Test Status
  • If you are marking the test status as Resolved, you must specify the Reason for the failure and add a Comment. The reasons for failure can be Duplicates, False Positive, Missing Data, Other, or Out of Bounds.
  • Click on Submit.
Resolved Status: Reason Users can also set up alerts to be notified when a test fails.

How to Set Alerts for Test Case Fails

Get notified when a data quality test fails.