Validation Result
Overview
Definition
A Validation Result is an object generated when data is validated against an ExpectationA verifiable assertion about data. or Expectation SuiteA collection of verifiable assertions about data..
Features and promises
Validation Results can be saved for every time that a CheckpointThe primary means for validating data in a production deployment of Great Expectations. ValidatesThe act of applying an Expectation Suite to a Batch. data, permitting you to maintain records of your data's adherence to Expectations and track trends in the quality of the validated data. Validation Results are also among the information passed to ActionsA Python class with a run method that takes a Validation Result and does something with it when a Checkpoint is run. This allows them to be used for any purpose that an Action can be created to handle.
Relationship to other objects
Validation Results are generated by a Checkpoint when
a
ValidatorUsed to run an Expectation Suite against
data.
runs an Expectation Suite against its paired
Batch RequestProvided to a Datasource in order to create a
Batch.. The Validation Result will be passed to the
Checkpoint's action_list
where it
will be available to any Actions that may need it. The
StoreValidationResultAction
subclass of
ValidationAction
will save Validation
Results to the
Validation Result StoreA connector to store and retrieve information
about objects generated when data is Validated
against an Expectation Suite.
if it is present in a Checkpoint's
action_list
.
Use cases
Create Expectations |
A Validation Result is generated when you use
the interactive workflow to create Expectations
and the newly created Expectation is run against the
sample
BatchA selection of records from a Data Asset.
of data you are working with. These individual
Validation Results will be created as
ExpectationValidationResult
instances.
Validate Data |
Validation Results are generated when you run
Checkpoints to Validate data. Because Checkpoints
operate on Expectation Suites rather than individual
Expectations, the Validation Results generated by
Checkpoints will be created as
ExpectationSuiteValidationResult
instances. The difference between an
ExpectationValidationResult
instance and
an
ExpectationSuiteValidationResult
instance
is much like the difference between an Expectation and
an Expectation Suite: One contains more of the other,
along with some additional metadata.
Specifically, an
ExpectationSuiteValidationResult
will
contain additional information pertaining to the
Expectation Suite that was Validated, and will contain
the data of an
ExpectationValidationResult
for each
Expectation in the Expectation Suite. These
ExpectationValidationResult
instances
will be in a list accessed by the
results
attribute of the
ExpectationSuiteValidationResult
instance.
The Validation Results generated as
ExpectationSuiteValidationResult
instances can be saved in JSON format in a Validation
Result Store, and rendered in
Data DocsHuman readable documentation generated from Great
Expectations metadata detailing Expectations,
Validation Results, etc.. Both of these activities are handled by Actions in
the Checkpoint's action_list
. In
most cases, when you see "Validation
Results" in Great Expectations, it will be in
reference to the output generated as an
ExpectationSuiteValidationResult
when a
Checkpoint is run.
Features
Trends in data quality
Saved Validation Results allow you to track trends in how well your data adheres to Expectations. This can help you determine if failed Expectations are due to outliers in new data, or a more systemic problem.
Actions and documentation
Because Validation Results are passed to Actions in a
Checkpoint's action_list
you can
create Actions that have behaviour conditional to the
Validation Results. Examples of this might be sending
a Slack or email notification if the Validation fails,
only launching a secondary process if the Validation
Results report that Validation passed, or updating
your Data Docs with specific information pulled from
the Validation Results.
API basics
How to access
Inside of Actions, Validation Results are a parameter
that is passed to the Action when it is run. The other
place where you can access your Validation Results is
in your Validation Result Store. In both of these
cases, you will be working with an
ExpectationSuiteValidationResult
instance, or the serialization of such an instance
into a JSON file.
Outside of Actions and your Validation Result Store,
you will generally only encounter Validation Results
when validating a single expectation against some
sample data in the interactive workflow for creating
Expectations. When an individual Validation Result is
generated, it is generated as an
ExpectationValidationResult
instance.
How to create
Validation Results are created automatically when data is Validated in Great Expectations. You will not need to manually create them; they are a product of the Validation process.
A single Validation Result is created when an
Expectation is created with the interactive workflow
and the newly created Expectation validates itself
against the sample data that is used in that process.
This is generated as an
ExpectationValidationResult
object.
A Validation Result is also created for each
Expectation in an Expectation Suite when a Checkpoint
is run. These are generated as values in the
results
list of an
ExpectationSuiteValidationResult
object.
Configuration
Expectation Validation Results
ExpectationValidationResult
instances
represent the Validation Result of a single
Expectation. If you are accessing the instance itself
(rather than the serialized JSON of an instance found
in your Validation Results Store) you will find that
the instance provides information about the
Expectation and the outcome of its Validation through
the following attributes:
-
success: A
true
orfalse
indicator of whether the Expectation passed. - expectation_config: The config used by the Expectation, including such things as type of Expectation and key word arguments that were passed to the Expectation.
- result: The observed values generated when the Expectation was run.
- meta: Provides additional information about the Validation Result of some Expectations.
-
exception_info: This is a
dictionary with three keys.
-
raised_exception
indicates if an exception was raised during the Validation. -
exception_traceback
contains the traceback of the raised exception, if an exception was raised. -
exception_message
contains the message associated with the raised exception, if an exception was raised.
-
Expectation Suite Validation Results
ExpectationSuiteValidationResult
instances are generated when an Expectation Suite is
validated. These instances contain a list of
Validation Results for individual Expectations in the
Expectation Suite, as well as some additional
information. This information can be accessed through
the following attributes:
-
success: A
true
orfalse
indicator of whether all the Expectations in the Expectation Suite passed. - evaluation_parameters: The Evaluation Parameters and their values at the time when the Expectation Suite was Validated.
-
results: A list of
ExpectationValidationResult
results for each Expectation in the Expectation Suite. - meta: Additional information about the Validation Results, such as the name of the Expectation Suite that was run, information about the Batch that was Validated, when the Validation took place, and what version of Great Expectations was used to run the Validation.
-
statistics: Some statistics to
summarize the
results
list, including things like the number of evaluated Expectations and the percentage of those Expectations that passed successfully.
The attributes described above for
ExpectationValidationResult
and
ExpectationSuiteValidationResult
also
correspond to the keys that you will find in the
serialized JSON that is created when Validation
Results in the form of an
ExpectationSuiteValidationResult
instance
are saved to the Validation Results Store.