View a markdown version of this page

Kualitas Data Amazon EMR - Amazon EMR

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

Kualitas Data Amazon EMR

Amazon EMR Data Quality, didukung oleh AWS Glue Data Quality, 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 open-source yang sama dengan Glue Data Quality. AWS Dimulai dengan runtime AWS untuk Apache Spark () emr-spark-8.1.0 di 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 Tanpa Server. Ini didukung untuk Apache Spark saja.

Bagaimana Kualitas Data bekerja

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). 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, atauError) 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 (GetDataQualityResultV2ListDataQualityResultsV2,,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 disetelpublishToDataCatalogTarget. 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

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 mengevaluasiPassed,Failed, atauError.

Set Aturan

Kumpulan aturan bernama yang dievaluasi bersama dalam satu panggilan keEvaluateDataQuality.

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.

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

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.

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 masukpublishing_options. Setiap publikasi dikunci olehEvaluationContext, pengidentifikasi yang digunakan deteksi anomali dan perbandingan lintas-mesin untuk menjalankan grup. Ketika aplikasi juga menetapkanpublishToDataCatalogTarget, 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.

Tempat memvalidasi di pipeline Anda

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

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