Aller au contenu principal

Attentes

Les décorateurs d'attentes déclarent des contraintes de qualité des données sur les vues matérialisées, les tables de streaming ou les vues temporaires créées dans un pipeline.

Le module dp comprend six décorateurs pour contrôler le comportement des attentes. Le tableau suivant décrit les dimensions selon lesquelles ces permutations diffèrent :

Comportement

Options

Action en cas de violation

  • Inclure la ligne dans le dataset cible. Le nombre d'enregistrements valides et invalides est enregistré avec d'autres métriques de dataset.
  • Supprimez la ligne avant d'écrire dans le dataset cible. Le nombre d'enregistrements supprimés est consigné avec d'autres métriques de dataset.
  • Arrêtez immédiatement la mise à jour. Cette attente provoque l’échec d’un seul flux et n’entraîne pas l’échec d’autres flux dans votre pipeline.

Nombre d'attentes

Une seule attente ou plusieurs attentes.

Comportement

Options

Action en cas de violation

  • Inclure la ligne dans le dataset cible. Le nombre d'enregistrements valides et invalides est enregistré avec d'autres métriques de dataset.
  • Supprimez la ligne avant d'écrire dans le dataset cible. Le nombre d'enregistrements supprimés est consigné avec d'autres métriques de dataset.
  • Arrêtez immédiatement la mise à jour. Cette attente provoque l’échec d’un seul flux et n’entraîne pas l’échec d’autres flux dans votre pipeline.

Nombre d'attentes

Une seule attente ou plusieurs attentes.

Vous pouvez ajouter plusieurs décorateurs d’attente à vos datasets, ce qui vous offre une flexibilité dans le niveau de rigueur de vos contraintes de qualité des données.

Lorsque vous utilisez les décorateurs expect_all, chaque attente a sa propre description et signale des métriques granulaires.

Syntaxe

Les décorateurs d’attentes viennent après un décorateur @dp.table(), @dp.materialized_view ou @dp.temporary_view() et avant une fonction de définition de dataset, comme dans l’exemple suivant :

Python
from pyspark import pipelines as dp

@dp.table()
@dp.expect(description, constraint)
@dp.expect_or_drop(description, constraint)
@dp.expect_or_fail(description, constraint)
@dp.expect_all({description: constraint, ...})
@dp.expect_all_or_drop({description: constraint, ...})
@dp.expect_all_or_fail({description: constraint, ...})
def <function-name>():
return (<query>)

parameter

parameter

Type

Description

description

str

Obligatoire. Une description qui identifie la contrainte. Les descriptions de contraintes doivent être uniques pour chaque dataset.

constraint

str

Obligatoire. La clause de contrainte est une instruction conditionnelle SQL qui doit être évaluée à true ou false pour chaque enregistrement. La contrainte contient la logique réelle de ce qui est validé. Lorsqu'un enregistrement ne satisfait pas à cette condition, l'attente est Trigger.

parameter

Type

Description

description

str

Obligatoire. Une description qui identifie la contrainte. Les descriptions de contraintes doivent être uniques pour chaque dataset.

constraint

str

Obligatoire. La clause de contrainte est une instruction conditionnelle SQL qui doit être évaluée à true ou false pour chaque enregistrement. La contrainte contient la logique réelle de ce qui est validé. Lorsqu'un enregistrement ne satisfait pas à cette condition, l'attente est Trigger.

Les décorateurs expect_all nécessitent que les descriptions et les contraintes soient transmises sous forme de dict de paires clé-valeur.

Sur cette page