Expectation Suites validieren

Einführung in Data Quality mit Great Expectations

Davina Moossazadeh

Data Scientist

Validation Definitions

Validation Definition – Eine Referenz, die eine Expectation Suite mit den dazugehörigen Daten verknüpft

Ein Schema, das eine Validation Definition mit Daten und Expectation Suite als Eingaben und Validation Results als Ausgabe zeigt.

1 https://docs.greatexpectations.io/docs/core/run_validations/create_a_validation_definition/
Einführung in Data Quality mit Great Expectations

Eine Validation Definition erstellen

Erstelle eine Validation Definition mit der Klasse ValidationDefinition:

validation_definition = gx.ValidationDefinition(

name="my_validation_definition",
data=batch_definition,
suite=suite, )
print(validation_definition)
Einführung in Data Quality mit Great Expectations

Eine Validation Definition ansehen

name='my_validation_definition' 
data=BatchDefinition(
    id='1fcb36d6-fac6-4b9a-8ba6-a659978fd59e', 
    name='my_batch_definition', 
    partitioner=None
) 
suite={
  "name": "my_suite",
  "id": "0a123b9c-e370-4b18-b703-785dde88732d",
  "expectations": [],
  "meta": {"great_expectations_version": "1.2.4"},
  "notes": null
} 
id=None
Einführung in Data Quality mit Great Expectations

Eine Validation Definition ansehen

print(validation_definition.name)
'my_validation_definition' 
print(validation_definition.data)
id='1fcb36d6-fac6-4b9a-8ba6-a659978fd59e' 
name='my_batch_definition' 
partitioner=None
print(validation_definition.suite)
{
  "name": "my_suite",
  "id": "0a123b9c-e370-4b18-b703-785dde88732d",
  "expectations": [],
  "meta": {"great_expectations_version": "1.2.4"},
  "notes": null
} 
print(validation_definition.id)
None
Einführung in Data Quality mit Great Expectations

Eine Validation Definition ansehen

print(validation_definition.data_source)
assets:
  - batch_definitions:
      - name: my_batch_definition
        partitioner: null
    batch_metadata: {}
    id: 83682084-3bc4-4898-a807-fadc0f911415
    name: 'my_dataframe_asset'
    type: dataframe
id: f71d275e-a5b2-402e-a53c-8dad6975cce5
name: 'my_pandas_data_source'
type: pandas
Einführung in Data Quality mit Great Expectations

Eine Validation Definition ausführen

Führe eine Validation mit der .run()-Methode der Validation Definition aus und übergib das DataFrame über batch_parameters:

validation_results = validation_definition.run(

batch_parameters={"dataframe": dataframe} )
Einführung in Data Quality mit Great Expectations

Fehler bei Validation Definitions

Beachte den Fehler:

ValidationDefinitionRelatedResourcesFreshnessError:
ExpectationSuite 'my_suite' must be added to the DataContext before it can be 
updated. Please call `context.suites.add(<SUITE_OBJECT>)`, then try your action 
again.

Das Ausführen einer Validation Definition, bevor die Expectation Suite dem Data Context hinzugefügt wurde, führt zu einem Fehler

Einführung in Data Quality mit Great Expectations

Eine Expectation Suite hinzufügen

Füge eine Expectation Suite mit .suites.add() zum Data Context hinzu:

suite = context.suites.add(

suite=suite )
Einführung in Data Quality mit Great Expectations

Eine Validation Definition beurteilen

validation_results = validation_definition.run(
    batch_parameters={"dataframe": dataframe}
)
Calculating Metrics: 0/0 [00:00<?, ?it/s]
print(validation_results.success)
False
print(validation_results.describe())
Einführung in Data Quality mit Great Expectations

Eine Validation Definition beurteilen

{ "success": false,
  "statistics": {
    "evaluated_expectations": 1, "successful_expectations": 0,
    "unsuccessful_expectations": 1, "success_percent": 0.0
  },
  "expectations": [{
    "expectation_type": "expect_table_row_count_to_equal",
    "success": false,
    "kwargs": {"batch_id": ""my_datasource-my_dataframe_asset", "value": 118000}, 
    "result": {"observed_value": 11866}}
  ],
  "result_url": "https://app.greatexpectations.io/organizations/my_org/data-assets/*/validations/expectation-suites/0a123b9c-e370-4b18-b703-785dde88732d/results/cb093105-6ede-47d4-a141-dee10c632e18"
}
Einführung in Data Quality mit Great Expectations

Hinweis zu GX

  • Great Expectations bietet mehrere Workflows für ähnliche Aufgaben
    • z. B. Batch Definitions vs. Validation Definitions
  • Dieser Kurs vermittelt einen Überblick; alternative GX-Implementierungen können andere Ansätze nutzen
Einführung in Data Quality mit Great Expectations

Spickzettel

Expectation Suite zum Data Context hinzufügen:

context.suites.add(suite)

Validation Definition erstellen:

validation_definition = \
gx.ValidationDefinition(
  name: str, 
  data=batch_definition, 
  suite=suite
)

Validation ausführen:

validation_results = \
validation_definition.run(
  batch_parameters={"dataframe": dataframe}
)

Validation-Ergebnisse prüfen:

validation_results.success
validation_results.describe()
Einführung in Data Quality mit Great Expectations

Lass uns üben!

Einführung in Data Quality mit Great Expectations

Preparing Video For Download...