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 définitions de validation avec des paramètres communs

Schéma montrant un Checkpoint, avec le flux suivant : demandes de lot (Batch Requests) -> source de données -> Validation Definition. La Validation Definition produit des Validation Results, transmis à une Action List optionnelle contenant une ou plusieurs Actions.

Actions — Composants configurés par les Checkpoints pour intégrer 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 définitions de validation sur un lot (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 avis 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

Lancer un Checkpoint avant d'ajouter la Validation Definition au Data Context provoque 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 Web 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 affichant une liste d'Expectations au niveau de la table et leurs valeurs observées. Une Expectation sur l'intervalle du nombre de lignes montre un historique de validation déroulé avec l'heure d'exécution, la valeur observée et les valeurs min/max. En haut à droite, un encadré vert avec un crochet 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 du Checkpoint :

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...