Appliquer des Expectations à de nouvelles données

Introduction à la qualité des données avec Great Expectations

Davina Moossazadeh

Data Scientist

Checkpoints

Checkpoint - Objet qui regroupe et exécute des Validation Definitions avec des paramètres communs

Schéma montrant un Checkpoint, avec le workflow suivant : Batch Requests -> Data Source -> Validation Definition. La Validation Definition produit des Validation Results, qui alimentent une Action List optionnelle, contenant une ou plusieurs Actions.

Actions - Composants configurés par les Checkpoints qui intègrent GX à d’autres outils selon les Validation Results

1 https://docs.greatexpectations.io/docs/core/trigger_actions_based_on_results/create_a_checkpoint_with_actions/
Introduction à la qualité des données avec Great Expectations

Pourquoi utiliser des Checkpoints ?

Réutilisabilité

  • Peut exécuter plusieurs Validation Definitions sur un Batch

Actions

  • Peut déclencher des Actions selon les Validation Results
Introduction à la qualité des données avec Great Expectations

Créer un Checkpoint

$$

Créer un Checkpoint avec notification Slack via gx.Checkpoint() :

checkpoint = gx.Checkpoint(

name="my_checkpoint",
validation_definitions=[validation_definition],
actions=[SlackNotificationAction()] # optionnel )
Introduction à la qualité des données avec Great Expectations

Erreurs de Checkpoint

Exécuter un Checkpoint avant d’ajouter la Validation Definition au Data Context génère une erreur :

CheckpointRelatedResourcesFreshnessError: 
ValidationDefinition 'my_validation_definition' must be added to the DataContext 
before it can be updated. Please call `context.validation_definitions.add(
<VALIDATION_DEFINITION_OBJECT>)`, then try your action again.
Introduction à la qualité des données avec Great Expectations

Ajouter une Validation Definition

Ajoutez la Validation Definition au Data Context avec .validation_definitions.add() :

validation_definition = context.validation_definitions.add(

validation_definition=validation_definition )
Introduction à la qualité des données avec Great Expectations

Exécuter un Checkpoint

checkpoint_results = checkpoint.run(
    batch_parameters={"dataframe": dataframe}
)

Résultats du Checkpoint. La sortie est longue et ne tient pas sur la diapositive.

Introduction à la qualité des données avec Great Expectations

Évaluer les résultats du Checkpoint

print(checkpoint_results.success)
False
print(checkpoint_results.describe())
Introduction à la qualité des données avec Great Expectations

Évaluer les résultats du Checkpoint

{ "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"
}
Introduction à la qualité des données avec Great Expectations

Data Docs

Data Docs - sites statiques générés à partir des métadonnées GX

# Checkpoint avec Action pour mettre à jour les Data Docs
gx.Checkpoint(
    name,
    validation_definitions,
    actions=[
      gx.checkpoint.actions.UpdateDataDocsAction(
          name="update_my_site", site_names="my_data_docs_site"
        )
    ],
)
1 https://docs.greatexpectations.io/docs/core/configure_project_settings/configure_data_docs/
Introduction à la qualité des données avec Great Expectations

Data Docs

Capture d’écran d’une page Data Docs, listant des Expectations au niveau table et leurs valeurs observées. Une Expectation sur l’intervalle du nombre de lignes affiche un historique développé avec l’heure d’exécution, la valeur observée, et les min/max. En haut à droite, un encadré vert avec coche indique « Toutes les Expectations satisfaites ».

Introduction à la qualité des données avec Great Expectations

Aide-mémoire

Ajouter la Validation Definition au Data Context :

context.validation_definitions.add(
    validation_definition
)

Créer un Checkpoint :

checkpoint = gx.Checkpoint(
    name: str, 
    validation_definitions: list,
)

Exécuter le Checkpoint :

checkpoint_results = checkpoint.run(
    batch_parameters={"dataframe": dataframe}
)

Vérifier les résultats :

checkpoint_results.success
checkpoint_results.describe()
Introduction à la qualité des données avec Great Expectations

Passons à la pratique !

Introduction à la qualité des données avec Great Expectations

Preparing Video For Download...