Convalidare le Expectation Suite

Introduzione alla Data Quality con Great Expectations

Davina Moossazadeh

Data Scientist

Validation Definition

Validation Definition - Un riferimento che collega un'Expectation Suite ai dati che descrive

Schema che mostra una Validation Definition con Dati ed Expectation Suite come input e Validation Results come output.

1 https://docs.greatexpectations.io/docs/core/run_validations/create_a_validation_definition/
Introduzione alla Data Quality con Great Expectations

Creare una Validation Definition

Crea una Validation Definition con la classe ValidationDefinition:

validation_definition = gx.ValidationDefinition(

name="my_validation_definition",
data=batch_definition,
suite=suite, )
print(validation_definition)
Introduzione alla Data Quality con Great Expectations

Visualizzare una Validation Definition

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
Introduzione alla Data Quality con Great Expectations

Visualizzare una Validation Definition

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
Introduzione alla Data Quality con Great Expectations

Visualizzare una Validation Definition

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
Introduzione alla Data Quality con Great Expectations

Eseguire una Validation Definition

Esegui una convalida con il metodo .run() della Validation Definition, passando il DataFrame via batch_parameters:

validation_results = validation_definition.run(

batch_parameters={"dataframe": dataframe} )
Introduzione alla Data Quality con Great Expectations

Errori di Validation Definition

Nota l'errore:

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.

Eseguire una Validation Definition prima di aggiungere l'Expectation Suite al Data Context genera un errore

Introduzione alla Data Quality con Great Expectations

Aggiungere un'Expectation Suite

Aggiungi un'Expectation Suite al Data Context con .suites.add():

suite = context.suites.add(

suite=suite )
Introduzione alla Data Quality con Great Expectations

Valutare una Validation Definition

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())
Introduzione alla Data Quality con Great Expectations

Valutare una Validation Definition

{ "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"
}
Introduzione alla Data Quality con Great Expectations

Nota su GX

  • Great Expectations offre più workflow per compiti simili
    • es. Batch Definition vs. Validation Definition
  • Questo corso dà una vista generale; altre implementazioni GX possono usare approcci diversi
Introduzione alla Data Quality con Great Expectations

Cheat sheet

Aggiungi l'Expectation Suite al Data Context:

context.suites.add(suite)

Crea una Validation Definition:

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

Esegui la convalida:

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

Verifica i risultati:

validation_results.success
validation_results.describe()
Introduzione alla Data Quality con Great Expectations

Ayo berlatih!

Introduzione alla Data Quality con Great Expectations

Preparing Video For Download...