View a markdown version of this page

Amazon EMR-Datenqualität - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon EMR-Datenqualität

Mit Amazon EMR Data Quality, unterstützt von AWS Glue Data Quality, können Sie die Qualität der Daten messen und überwachen, die Ihre Amazon EMR Spark-Workloads lesen und schreiben, ohne die Spark-Anwendung verlassen zu müssen. Amazon EMR Data Quality verwendet dieselbe Open-Source-Deequ-Engine wie AWS Glue Data Quality. Beginnend mit der AWS-Laufzeit für Apache Spark (emr-spark-8.1.0) auf Amazon EMR können Sie die Datenqualität direkt in Ihren Amazon EMR Spark-Anwendungen bewerten, indem Sie die EvaluateDataQuality Transformation zu Ihrem Spark-Skript hinzufügen. Die Transformation führt einen deklarativen Regelsatz für Ihren aus DataFrame und gibt das Ergebnis pro Regel während des Prozesses zurück, sodass Ihre Anwendung auf das Ergebnis reagieren kann (z. B. einen Downstream-Schreibvorgang abbrechen, wenn eine Regel fehlschlägt). Jede Bewertung wird auch in AWS Glue Data Quality veröffentlicht, sodass Sie den Verlauf Ihrer Läufe überprüfen und neben Läufen von AWS Glue ETL und dem AWS Glue Data Catalog darauf hinweisen können.

Für die Verwendung von Amazon EMR Data Quality sind eine Spark-Anwendung und ein in Data Quality Definition Language (DQDL) geschriebener Regelsatz erforderlich. Neben Ihrem bestehenden Spark-Workflow ist keine weitere Programmierung erforderlich.

Amazon EMR Data Quality ist in allen drei Amazon EMR-Bereitstellungsmodi verfügbar: Amazon EMR auf EC2, Amazon EMR auf EKS und Amazon EMR Serverless. Es wird nur für Apache Spark unterstützt.

Wie funktioniert Datenqualität

Amazon EMR Data Quality ist eine Spark-Transformation. Sie übergeben ihr einen DataFrame und einen DQDL-Regelsatz. Er wertet die Regeln aus und gibt a der Ergebnisse zurück. DataFrame Jede Bewertung wird auch in AWS Glue Data Quality veröffentlicht, sodass Sie das Ergebnis später über die APIs oder die AWS Glue-Konsole abfragen können. AWS Glue ETL und der AWS Glue Data Catalog werden im selben Store veröffentlicht, sodass Sie Amazon EMR-Läufe mit Läufen von beiden Engines vergleichen können.

Sie definieren Ihre Erwartungen an die Datenqualität als deklarativen Regelsatz, der in einer DQDL-Referenz (Data Quality Definition Language) geschrieben ist. Ein Regelsatz ist ein Regelsatz, der die erwarteten Eigenschaften eines Datensatzes beschreibt. Der folgende Regelsatz überprüft beispielsweise, ob eine Tabelle mehr als 100 Zeilen hat, ob ihre customer_id Spalte vollständig und eindeutig ist und ob die country Spalte aus einem festen Satz von Werten stammt.

Rules = [ RowCount > 100, IsComplete "customer_id", IsUnique "customer_id", ColumnValues "country" in ["US", "CA", "MX"] ]

Zur Laufzeit liest die EvaluateDataQuality Transformation Ihre DataFrame, bewertet jede Regel mit derselben Deequ-Engine, die von AWS Glue Data Quality und dem AWS Glue Data Catalog verwendet wird, und gibt das Ergebnis (PassedFailed, oderError) für jede Regel zurück. Fehlgeschlagene Regeln enthalten den beobachteten Wert, sodass Sie sie analysieren können, ohne die Anwendung erneut ausführen zu müssen. Das Ergebnis ist ein Spark, auf dem DataFrame Ihre Anwendung verzweigen, protokollieren oder fortbestehen kann.

Data Quality veröffentlicht außerdem jede Bewertung im AWS Glue Data Quality Service. Von dort aus können Sie:

  • Fragen Sie historische Ergebnisse mit den AWS Glue Data Quality APIs (GetDataQualityResultV2,ListDataQualityResultsV2,BatchGetDataQualityResultV2) AWS CLI, der oder der AWS Glue-Konsole ab.

  • Sehen Sie sich den Lauf in der AWS Glue-Konsole unter der AWS Glue-Datenkatalogtabelle an, der validiert wurde, als Ihre Anwendung eingerichtet wurdepublishToDataCatalogTarget. Der Lauf wird auf der Registerkarte Datenqualität der angegebenen Datenbank und Tabelle angezeigt, zusammen mit AWS Glue-ETL-Läufen, die auf dieselbe Tabelle abzielen.

  • Aktivieren Sie die Erkennung von Anomalien in der Zeitreihe der Statistiken, die bei jedem Lauf erstellt werden.

Da die Ergebnisse in demselben Speicher veröffentlicht werden können, der von AWS Glue Data Quality verwendet wird, können Sie Läufe zwischen Compute Engines korrelieren. Läufe, die eine EvaluationContext (eine Zeichenketten-ID, die Sie an die Transformation übergeben) gemeinsam verwenden, werden als ein einziger logischer Datensatz in der Konsole und im Training zur Erkennung von Anomalien angezeigt, unabhängig davon, ob sie aus einer Amazon EMR Spark-Anwendung oder einem AWS Glue-ETL-Job stammen.

Konzepte und Terminologie

Die folgenden Begriffe kommen in diesem Kapitel sowie in den APIs und der Konsole von AWS Glue Data Quality vor.

Regel

Eine einzelne deklarative Behauptung über einen Datensatz, geschrieben in DQDL. Zum Beispiel RowCount > 1000 oder IsUnique "order_id". Jede Regel wird als, oder ausgewertet. Passed Failed Error

Regelsatz

Eine benannte Sammlung von Regeln, die zusammen in einem einzigen Aufruf von ausgewertet werden. EvaluateDataQuality

Analysator

Eine Statistik, die beispielsweise für einen Datensatz berechnet wird, ohne dass ein Ergebnis als bestanden oder nicht bestätigt wird. Mean "order_total" Analyzer analysieren Regelschwellenwerte und trainieren das Modell zur Erkennung von Anomalien. Siehe Analysatoren.

Bewertung der Datenqualität

Der Prozentsatz der Regeln in einem Regelsatz, die einen bestimmten Lauf bestanden haben, berechnet als. rules passed / (rules passed + rules failed) Regeln, bei denen Fehler und Beobachtungen nicht zur Punktzahl beitragen. Die Punktzahl wird von den AWS Glue-Datenqualitäts-APIs zurückgegeben und, wenn Ihre Anwendung festgelegt istpublishToDataCatalogTarget, in der AWS Glue-Konsole auf der Registerkarte Datenqualität der Attributkatalogtabelle angezeigt.

Beobachtung

Ein Wert, der von der Anomalieerkennung als außerhalb des vorhergesagten Bereichs gekennzeichnet wurde. Beobachtungen reduzieren den Datenqualitätsfaktor nicht. Siehe Anomalie-Erkennung.

EvaluationContext

Eine Zeichenketten-ID, die Läufe desselben logischen Datensatzes über Compute-Engines hinweg gruppiert. Läufe, die sich einen EvaluationContext Feed teilen, das gleiche Modell zur Erkennung von Anomalien verwenden und zusammen in der AWS Glue-Konsole angezeigt werden. Siehe Vergleich von Läufen in Amazon EMR und AWS Glue.

Veröffentlichen

Der Schritt, der das Ergebnis eines EvaluateDataQuality Laufs in den AWS Glue Data Quality Service schreibt, sodass es später über die AWS Glue Data Quality APIs und die AWS Glue-Konsole gelesen werden kann. Das Veröffentlichen ist standardmäßig aktiviert und wird durch die Eingabe der enableDataQualityResultsPublishing Taste gesteuertpublishing_options. Jede Veröffentlichung wird nach der Kennung eingegebenEvaluationContext, die bei der Erkennung von Anomalien und bei maschinenübergreifenden Vergleichen verwendet wird, um Läufe zu gruppieren. Wenn die Anwendung ebenfalls festgelegt wirdpublishToDataCatalogTarget, wird der Lauf einer Katalogtabelle zugeordnet und auf der Registerkarte Datenqualität dieser Tabelle in der AWS Glue-Konsole angezeigt.

DQDL

Data Quality Definition Language, die deklarative Sprache, die zur Erstellung von Regelsätzen für die Datenqualität verwendet wird. Siehe Regelauswertung und DQDL.

Wo sollten Sie in Ihrer Pipeline die Validierung durchführen

Sie können es an einer EvaluateDataQuality beliebigen Stelle in einem Spark-Skript aufrufen. Die drei gängigen Muster sind:

  • Pre-validation. Bewerten Sie die Roheingabe unmittelbar nach dem Lesen. Verwenden Sie diese Option, um bei Problemen im Upstream-Bereich (fehlende Dateien, Schemaabweichung, leere Tabellen) schnell zu scheitern, bevor Sie Rechenleistung für den Rest der Anwendung aufwenden.

  • Inline-Validierung. Evaluieren Sie ein Zwischenprodukt DataFrame zwischen Transformationen. Verwenden Sie dies, um die Ausgabe eines bestimmten Schritts zu überprüfen (z. B. nach einer Verknüpfung oder Aggregation).

  • Post-validation. Bewerten Sie das Finale, DataFrame bevor Sie auf Ihr Waschbecken schreiben. Verwenden Sie diese Option, um eine nachfolgende Veröffentlichung des Ergebnisses vorzunehmen: Verzweigen Sie die Outcome Spalte und brechen Sie den Schreibvorgang ab, falls eine Regel fehlschlägt.

Mit dem folgenden PySpark Codeausschnitt wird auf das Ergebnis einer Auswertung nach der Validierung verwiesen.

results = EvaluateDataQuality.apply( frame=final_df, ruleset=ruleset, publishing_options={ "dataQualityEvaluationContext": "orders_daily", "enableDataQualityResultsPublishing": True, }, ) failed = results.filter("Outcome in ('Failed', 'Error')").count() if failed > 0: raise RuntimeError(f"{failed} data quality rules failed or errored; aborting write") final_df.write.mode("overwrite").parquet("s3://amzn-s3-demo-bucket/orders_curated/")

Einschränkungen

  • Ein einziger Regelsatz kann bis zu 2.000 Regeln enthalten.

  • Die serialisierte DQDL-Quelle eines Regelsatzes darf nicht größer als 65 KB sein.

  • Data Quality sammelt Statistiken, wenn Sie eine Regel oder einen Analysator erstellen. Das Speichern dieser Statistiken ist mit keinen Kosten verbunden. Es gibt jedoch ein Limit von 100.000 Statistiken pro Konto, und diese Statistiken werden maximal zwei Jahre lang aufbewahrt.

  • Data Quality wird nur für Apache Spark-Anwendungen auf Amazon EMR unterstützt. Es läuft nicht auf Hive-, Trino-, Flink- oder anderen Nicht-Spark-Engines, die von Amazon EMR unterstützt werden.