

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kualitas Data Amazon EMR
<a name="emr-data-quality"></a>

Amazon EMR Data Quality, didukung oleh [AWS Glue Data Quality](https://docs.aws.amazon.com/glue/latest/dg/glue-data-quality.html), memungkinkan Anda mengukur dan memantau kualitas data yang dibaca dan ditulis oleh beban kerja Amazon EMR Spark Anda tanpa meninggalkan aplikasi Spark. Amazon EMR Data Quality menggunakan mesin [Deequ](https://github.com/awslabs/deequ) open-source yang sama dengan Glue Data Quality. AWS Dimulai dengan [runtime AWS untuk Apache Spark () `emr-spark-8.1.0` di](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark810-release.html) Amazon EMR, Anda dapat mengevaluasi kualitas data langsung di dalam aplikasi Amazon EMR Spark Anda dengan menambahkan transformasi ke skrip Spark Anda. `EvaluateDataQuality` Transformasi menjalankan kumpulan aturan deklaratif terhadap Anda DataFrame dan mengembalikan hasil per aturan dalam proses, sehingga aplikasi Anda dapat bertindak berdasarkan hasilnya (misalnya, membatalkan penulisan hilir ketika aturan gagal). Setiap evaluasi juga dipublikasikan ke AWS Glue Data Quality, sehingga Anda dapat meninjau riwayat proses Anda dan AWS memperingatkannya bersama run dari Glue ETL dan AWS Glue Data Catalog.

Menggunakan Amazon EMR Data Quality memerlukan aplikasi Spark dan aturan yang ditulis dalam Data Quality Definition Language (DQDL). Tidak ada pemrograman lain yang diperlukan di luar alur kerja Spark Anda yang ada.

[Kualitas Data EMR Amazon tersedia di ketiga mode penyebaran EMR Amazon: Amazon EMR di EC2, Amazon EMR di EKS, dan Amazon [EMR](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-data-quality.html) Tanpa Server.](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-data-quality.html) Ini didukung untuk Apache Spark saja.

**Topics**
+ [Bagaimana Kualitas Data bekerja](#emr-dq-how-it-works)
+ [Konsep dan terminologi](#emr-dq-concepts)
+ [Tempat memvalidasi di pipeline Anda](#emr-dq-validation-stages)
+ [Batas](#emr-dq-limits)
+ [Memulai dengan Kualitas Data EMR Amazon](emr-dq-getting-started.md)
+ [Kemampuan kunci](emr-dq-key-capabilities.md)
+ [Bekerja dengan hasil](emr-dq-working-with-results.md)
+ [Pemantauan dan peringatan](emr-dq-monitoring.md)
+ [Pemecahan masalah](emr-dq-troubleshooting.md)

## Bagaimana Kualitas Data bekerja
<a name="emr-dq-how-it-works"></a>

Amazon EMR Data Quality adalah transformasi Spark. Anda lulus a DataFrame dan aturan DQDL; itu mengevaluasi aturan dan mengembalikan hasil. DataFrame Setiap evaluasi juga dipublikasikan ke AWS Glue Data Quality sehingga Anda dapat menanyakan hasilnya nanti melalui API atau konsol AWS Glue. AWS Glue ETL dan AWS Glue Data Catalog diterbitkan ke toko yang sama, sehingga Anda dapat membandingkan Amazon EMR berjalan dengan run dari salah satu mesin tersebut.

Anda mendefinisikan harapan kualitas data Anda sebagai kumpulan aturan deklaratif yang ditulis dalam referensi [Data Quality Definition Language (DQDL](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html)). Kumpulan aturan adalah seperangkat aturan yang menggambarkan properti yang diharapkan dari kumpulan data. Misalnya, kumpulan aturan berikut memeriksa bahwa tabel memiliki lebih dari 100 baris, bahwa `customer_id` kolomnya lengkap dan unik, dan `country` kolom diambil dari serangkaian nilai tetap.

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

Saat runtime, `EvaluateDataQuality` transformasi membaca Anda DataFrame, mengevaluasi setiap aturan dengan mesin Deequ yang sama yang digunakan oleh Glue Data AWS Quality dan AWS Glue Data Catalog, dan mengembalikan hasil (`Passed`,`Failed`, atau`Error`) untuk setiap aturan. Aturan yang gagal menyertakan nilai yang diamati sehingga Anda dapat melakukan triase tanpa menjalankan kembali aplikasi. Hasilnya adalah Spark aplikasi DataFrame Anda dapat bercabang, log, atau bertahan.

Data Quality juga menerbitkan setiap evaluasi ke layanan AWS Glue Data Quality. Dari sana Anda dapat:
+ Kueri hasil historis dengan AWS Glue Data Quality API (`GetDataQualityResultV2``ListDataQualityResultsV2`,,`BatchGetDataQualityResultV2`), the AWS CLI, atau konsol AWS Glue.
+ Lihat run di konsol AWS Glue di bawah tabel AWS Glue Data Catalog yang divalidasi saat aplikasi Anda disetel`publishToDataCatalogTarget`. Run muncul di tab *Kualitas data* dari database dan tabel yang ditentukan, di samping AWS Glue ETL berjalan yang menargetkan tabel yang sama.
+ Aktifkan deteksi anomali selama deret waktu statistik yang dihasilkan oleh setiap proses.

Karena hasil dapat dipublikasikan ke toko yang sama yang digunakan oleh AWS Glue Data Quality, Anda dapat mengkorelasikan proses di seluruh mesin komputasi. Jalankan yang berbagi `EvaluationContext` (pengenal string yang Anda teruskan ke transformasi) muncul sebagai kumpulan data logis tunggal di konsol dan dalam pelatihan deteksi anomali, terlepas dari apakah itu berasal dari aplikasi Amazon EMR Spark atau pekerjaan Glue ETL. AWS 

## Konsep dan terminologi
<a name="emr-dq-concepts"></a>

Istilah berikut muncul di seluruh bagian ini dan di AWS Glue Data Quality API dan konsol.

Aturan  
Sebuah pernyataan deklaratif tunggal tentang dataset, ditulis dalam DQDL. Misalnya, `RowCount > 1000` atau `IsUnique "order_id"`. Setiap aturan mengevaluasi`Passed`,`Failed`, atau`Error`.

Set Aturan  
Kumpulan aturan bernama yang dievaluasi bersama dalam satu panggilan ke`EvaluateDataQuality`.

Analyzer  
Sebuah statistik yang dihitung untuk dataset tanpa menegaskan hasil lulus atau gagal, misalnya. `Mean "order_total"` Menganalisis ambang batas aturan benih dan melatih model deteksi anomali. Lihat [Analisa](emr-dq-key-capabilities.md#emr-dq-analyzers).

Skor kualitas data  
Persentase aturan dalam kumpulan aturan yang diteruskan pada run tertentu, dihitung sebagai. `rules passed / (rules passed + rules failed)` Aturan bahwa kesalahan dan pengamatan tidak berkontribusi pada skor. Skor dikembalikan oleh AWS Glue Data Quality API dan, ketika aplikasi Anda disetel`publishToDataCatalogTarget`, muncul di konsol AWS Glue pada tab *Kualitas data* dari tabel katalog yang diatribusikan.

Observasi  
Nilai yang ditandai oleh deteksi anomali di luar jangkauan yang diprediksi. Pengamatan tidak mengurangi skor kualitas data. Lihat [Deteksi anomali](emr-dq-key-capabilities.md#emr-dq-anomaly-detection).

`EvaluationContext`  
Pengidentifikasi string yang mengelompokkan menjalankan kumpulan data logis yang sama di seluruh mesin komputasi. Jalankan yang berbagi `EvaluationContext` feed model deteksi anomali yang sama dan muncul bersama di konsol Glue AWS . Lihat [Membandingkan berjalan di Amazon EMR dan AWS Glue](emr-dq-working-with-results.md#emr-dq-compare-runs).

Publikasi  
Langkah yang menuliskan hasil `EvaluateDataQuality` run ke layanan AWS Glue Data Quality sehingga dapat dibaca nanti melalui AWS Glue Data Quality API dan konsol AWS Glue. Penerbitan diaktifkan secara default dan dikendalikan oleh `enableDataQualityResultsPublishing` kunci masuk`publishing_options`. Setiap publikasi dikunci oleh`EvaluationContext`, pengidentifikasi yang digunakan deteksi anomali dan perbandingan lintas-mesin untuk menjalankan grup. Ketika aplikasi juga menetapkan`publishToDataCatalogTarget`, run dikaitkan dengan tabel katalog dan muncul di tab *Kualitas data* dari tabel itu di konsol AWS Glue.

DQDL  
Data Quality Definition Language, bahasa deklaratif yang digunakan untuk membuat aturan Kualitas Data. Lihat [Evaluasi aturan dan DQDL](emr-dq-key-capabilities.md#emr-dq-rule-evaluation).

## Tempat memvalidasi di pipeline Anda
<a name="emr-dq-validation-stages"></a>

Anda dapat memanggil `EvaluateDataQuality` di mana saja dalam skrip Spark. Tiga pola umum adalah:
+ **Pre-validation.** Evaluasi input mentah segera setelah membaca. Gunakan ini untuk gagal cepat pada masalah hulu (file yang hilang, penyimpangan skema, tabel kosong) sebelum menghabiskan komputasi pada sisa aplikasi.
+ **Validasi sebaris.** Mengevaluasi DataFrame perantara antara transformasi. Gunakan ini untuk memeriksa output dari langkah tertentu (misalnya, setelah bergabung atau agregasi).
+ **Post-validation.** Evaluasi final DataFrame sebelum menulis ke wastafel Anda. Gunakan ini untuk gerbang publikasi hilir pada cabang hasil: pada `Outcome` kolom dan batalkan penulisan jika ada aturan yang gagal.

 PySpark Cuplikan berikut membuat tulisan pada hasil evaluasi pasca-validasi.

```
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/")
```

## Batas
<a name="emr-dq-limits"></a>
+ Satu set aturan dapat berisi hingga **2.000** aturan.
+ **Sumber DQDL serial dari kumpulan aturan harus tidak lebih besar dari 65 KB.**
+ Kualitas Data mengumpulkan statistik saat Anda membuat aturan atau penganalisis. Tidak ada biaya yang terkait dengan penyimpanan statistik ini. Namun, ada batas **100.000 statistik per akun**, dan statistik ini akan dipertahankan selama maksimal **dua tahun**.
+ Kualitas Data didukung untuk aplikasi Apache Spark di Amazon EMR saja. Itu tidak berjalan di Hive, Trino, Flink, atau mesin non-Spark lainnya yang didukung oleh Amazon EMR.