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 EMR Serverless Spark Anda tanpa meninggalkan aplikasi Spark. Halaman ini mencakup prasyarat dan panduan EMR Tanpa Server. Untuk konsep, API, pemantauan, dan pemecahan masalah, lihat Kualitas Data EMR Amazon di Panduan Manajemen EMR Amazon.
Prasyarat
Amazon EMR Data Quality diinstal secara default di Amazon EMR rilis emr-spark-8.1.0 dan yang lebih baru. Hanya beban kerja Apache Spark yang didukung.
Peran runtime pekerjaan IAM yang diasumsikan oleh aplikasi EMR Tanpa Server Anda (--execution-role-arnditeruskanstart-job-run) harus memberikan izin berikut untuk menjalankan Kualitas Data dan mempublikasikan hasil.
| Tindakan | Saat dibutuhkan |
|---|---|
glue:PublishDataQuality |
Untuk mempublikasikan setiap evaluasi ke AWS Glue Data Quality sehingga Anda dapat melihat riwayat, membandingkan proses, dan deteksi anomali umpan. Penerbitan aktif secara default (enableDataQualityResultsPublishingisTrue), jadi berikan izin ini kecuali Anda secara eksplisit memilih keluar dengan menyetel opsi ke. False |
glue:AccessDataQualityRuntimeConfiguration |
Untuk mengambil konfigurasi penerbitan dari layanan saat pustaka menginisialisasi penerbitan. Diperlukan setiap kali penerbitan diaktifkan; tanpanya, perpustakaan diam-diam menonaktifkan penerbitan untuk dijalankan. |
cloudwatch:PutMetricData |
Untuk memancarkan metrik pass dan gagal per-run ke CloudWatch Amazon untuk dasbor dan alarm. Diperlukan hanya ketika Anda mengatur enableDataQualityCloudWatchMetrics keTrue. |
glue:GetTable, glue:GetDatabase |
Untuk membaca metadata tabel katalog. Diperlukan saat input DataFrame dibaca dari tabel AWS Glue Data Catalog, atau saat aplikasi lolos publishToDataCatalogTarget sehingga layanan dapat mengatribusikan run ke tabel katalog tertentu. |
glue:GetDataQualityRuleset |
Untuk mengambil kumpulan aturan yang disimpan dari Katalog Data AWS Glue. Diperlukan hanya ketika skrip Spark Anda memuat kumpulan aturan dari katalog alih-alih mendefinisikan DQDL sebaris. Lihat Mengambil kumpulan aturan yang disimpan dari Katalog Data AWS Glue. |
Kebijakan inline berikut memberikan set izin minimum yang diperlukan untuk mempublikasikan hasil Kualitas Data dari aplikasi EMR Serverless Spark.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GlueDataQuality", "Effect": "Allow", "Action": [ "glue:PublishDataQuality", "glue:AccessDataQualityRuntimeConfiguration" ], "Resource": "*" } ] }
Jalankan evaluasi pertama Anda
-
Buat aplikasi EMR Tanpa Server. Gunakan rilis
emr-spark-8.1.0atau yang lebih baru. Buat aplikasi Spark dan lampirkan peran pekerjaan yang memiliki izin yang tercantum di dalamnya. PrasyaratMisalnya, untuk membuat aplikasi Spark, jalankan:
aws emr-serverless create-application \ --name My_Spark_DataQuality_Application \ --release-label emr-spark-8.1.0 \ --type SPARK -
Tentukan aturan dan evaluasi. PySpark Skrip berikut mendefinisikan kumpulan aturan dalam DQDL, mengevaluasinya terhadap a DataFrame, dan mencetak hasil per aturan.
from pyspark.sql import SparkSession from awsdataquality.transforms import EvaluateDataQuality spark = SparkSession.builder.appName("dq-example").getOrCreate() df = spark.read.parquet("s3://amzn-s3-demo-bucket/orders/") ruleset = """ Rules = [ RowCount > 1000, IsComplete "order_id", IsUnique "order_id", ColumnValues "status" in ["PLACED", "SHIPPED", "CANCELED"], Mean "order_total" between 10 and 500 ] """ results = EvaluateDataQuality.apply( frame=df, ruleset=ruleset, publishing_options={ "dataQualityEvaluationContext": "orders_daily", "enableDataQualityResultsPublishing": True, }, ) results.show(truncate=False)resultsDataFrame Berisi satu baris per aturan dengan kolom berikut:Rule,Outcome,FailureReason, danEvaluatedMetrics. Baris denganOutcomeaFailedtermasuk nilai yang diamati diFailureReason. -
Kirimkan pekerjaan yang dijalankan. Kirimkan skrip sebagai pekerjaan yang dijalankan terhadap aplikasi Anda.
aws emr-serverless start-job-run \ --application-id<application-id>\ --execution-role-arn<execution-role-arn>\ --name dq-example \ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://amzn-s3-demo-bucket/scripts/dq_example.py" } }' -
Ambil hasilnya. Setelah job run selesai, daftarkan run dan ambil detailnya dengan AWS Glue Data Quality API atau file. AWS CLI Jika aplikasi Anda juga disetel
publishToDataCatalogTargetdenganDatabaseNamedanTableName, proses akan muncul di tab Kualitas data dari tabel katalog tersebut di konsol AWS Glue.aws glue list-data-quality-results-v2 --max-results 5 aws glue get-data-quality-result-v2 --result-id<result-id>
Pelajari selengkapnya tentang Kualitas Data EMR Amazon
Untuk referensi selengkapnya, lihat topik berikut di Panduan Manajemen EMR Amazon: