בנו כרטיס ניקוד לאיכות נתונים באמצעות AWS Glue DataBrew, Amazon Athena ו- Amazon QuickSight

צומת המקור: 886717

איכות הנתונים ממלאת תפקיד חשוב בעת בניית צינור חילוץ, טרנספורמציה וטעינה (ETL) לשליחת נתונים ליישומים אנליטיים במורד הזרם ולמודלים של למידת מכונה (ML). האנלוגיה "זבל פנימה, זבל החוצה" מתאימה לתאר מדוע חשוב לסנן נתונים גרועים לפני עיבוד נוסף. ניטור רציף של איכות הנתונים והשוואתם עם מדדי יעד מוגדרים מראש עוזרים לך לעמוד במסגרות הממשל שלך.

בנובמבר 2020, AWS הודיעה על הזמינות הכללית של AWS דבק DataBrew, כלי חדש להכנת נתונים חזותיים שעוזר לך לנקות ולנרמל נתונים מבלי לכתוב קוד. זה מקטין את הזמן שלוקח להכין נתונים לניתוח ו-ML בשיעור של עד 80% בהשוואה לגישות מסורתיות להכנת נתונים.

בפוסט זה, אנו עוברים על פתרון שבו אנו מיישמים כללים עסקיים שונים כדי לקבוע את איכות הנתונים הנכנסים ולהפריד בין רשומות טובות ורעות. יתר על כן, אנו מפרסמים כרטיס ניקוד איכות נתונים באמצעות אמזון קוויקסייט ולהפוך רשומות לזמינות לניתוח נוסף.

השתמש בסקירת המקרים

במקרה השימוש שלנו, אנו משתמשים במערך נתונים ציבורי הזמין להורדה בכתובת רישומי חולים סינתטיים עם COVID-19. הוא מכיל 100,000 רישומי חולים סינתטיים בפורמט CSV. הנתונים המתארחים בתוך SyntheticMass נוצרו על ידי SyntheaTM, סימולציית אוכלוסיית חולים בקוד פתוח שזמינה על ידי תאגיד MITER.

כאשר אנו פותחים את ה- 100k_synthea_covid19_csv.zip קובץ, אנו רואים את קבצי ה-CSV הבאים:

  • אלרגיות.csv
  • Careplans.csv
  • Conditions.csv
  • Devices.csv
  • Encounters.csv
  • Imaging_studies.csv
  • חיסונים.csv
  • Medications.csv
  • Observations.csv
  • ארגונים.csv
  • Patients.csv
  • Payer_transitions.csv
  • Payers.csv
  • Procedures.csv
  • Providers.csv
  • Supplies.csv

אנו מבצעים את בדיקות איכות הנתונים המסווגות לפי ממדי איכות הנתונים הבאים:

  • שְׁלֵמוּת
  • עֲקֵבִיוּת
  • שלמות

במקרה השימוש שלנו, קובצי CSV אלה נשמרים על ידי צוות קליטת הנתונים של הארגון שלך, אשר מעלה את קובץ ה-CSV המעודכן אל שירות אחסון פשוט של אמזון (Amazon S3) כל שבוע. הרשומות הטובות והרעות מופרדות באמצעות סדרה של שלבי הכנת נתונים, והצוות העסקי משתמש בנתוני הפלט כדי ליצור דוחות בינה עסקית (BI).

סקירה כללית של אדריכלות

הארכיטקטורה הבאה משתמשת ב-DataBrew להכנת נתונים ובניית מדדי KPI מרכזיים, אמזונה אתנה לניתוח נתונים עם SQL סטנדרטי, ו-QuickSight לבניית כרטיס ניקוד איכות הנתונים.

זרימת העבודה כוללת את השלבים הבאים:

  1. צוות ההטמעה מקבל קובצי CSV בדלי קלט S3 מדי שבוע.
  2. עבודת DataBrew המתוכננת לפעול מדי שבוע מפעילה את עבודת המתכון.
  3. DataBrew מעבד את קבצי הקלט ומייצר קבצי פלט המכילים שדות נוספים בהתאם להיגיון של עבודת המתכון.
  4. לאחר כתיבת נתוני הפלט, אנו יוצרים טבלה חיצונית מעליה על ידי יצירה והרצה של an סורק דבק AWS.
  5. הרשומות הטובות והרעות מופרדות על ידי יצירת תצוגות על גבי הטבלה החיצונית.
  6. מנתחי נתונים יכולים להשתמש באתנה כדי לנתח רשומות טובות ורעות.
  7. ניתן גם להפריד את הרשומות ישירות באמצעות שדות מחושבים של QuickSight.
  8. אנו משתמשים ב-QuickSight כדי ליצור את כרטיס ניקוד איכות הנתונים בצורה של לוח מחוונים, שמביא נתונים דרך Athena.

תנאים מוקדמים

לפני תחילת הדרכה זו, ודא שיש לך את ההרשאות הנדרשות ליצירת המשאבים הנדרשים כחלק מהפתרון.

בנוסף, צור את דלי הקלט והפלט של S3 כדי ללכוד את הנתונים, והעלה את נתוני הקלט לתוך דלי הקלט.

צור מערכי נתונים של DataBrew

כדי ליצור מערך נתונים של DataBrew עבור נתוני המטופל, בצע את השלבים הבאים:

  1. במסוף DataBrew בחר מערכי נתונים.
  2. בחרו חבר מערך נתונים חדש.
  3. בעד שם ערכת נתונים, הזן שם (לפוסט זה, Patients).
  4. בעד הזן את המקור שלך מ-S3, הזן את נתיב S3 של קלט ה-CSV של המטופלים.
  5. בחרו צור מערך נתונים.

חזור על שלבים אלה כדי ליצור מערכי נתונים עבור קובצי CSV אחרים, כגון מפגשים, תנאים וכן הלאה.

צור פרוייקט DataBrew

כדי ליצור פרויקט DataBrew עבור נתונים שיווקיים, בצע את השלבים הבאים:

  1. במסוף DataBrew בחר פרויקטים.
  2. בחרו צור פרוייקט.
  3. בעד שם הפרוייקט, הזן שם (לפוסט זה, patients-data-quality).
  4. בעד בחר מערך נתונים, בחר מערכי הנתונים שלי.
  5. בחר patients מערך נתונים.
  6. תַחַת הרשאות, עבור שם התפקיד, בחר AWS זהות וניהול גישה תפקיד (IAM) המאפשר ל-DataBrew לקרוא ממיקום הקלט של Amazon S3 שלך.

אתה יכול לבחור תפקיד אם כבר יצרת אחד, או ליצור תפקיד חדש. למידע נוסף, ראה הוספת תפקיד IAM עם הרשאות משאבי נתונים.

  1. המתן עד לטעינת מערך הנתונים (בערך 1-2 דקות).
  2. כדי לבצע בדיקת עקביות, בחר תאריך לידה.
  3. על צור בתפריט, בחר עמודת דגל.
  4. תַחַת צור עמודה, עבור ערכים לסמן, בחר ערך מותאם אישית.
  5. בעד טור מקור, בחר תאריך לידה.
  6. בעד ערכים לסמן, הזן את הביטוי הרגולרי (?:(?:18|19|20)[0-9]{2}).
  7. בעד סגל ערכי כ, בחר כן או לא.
  8. בעד טור יעד, להיכנס BIRTHDATE_מסוגל.

העמודה החדשה BIRTHDATE_FLAGGED כעת מוצג Yes לשנה תקפה בת ארבע ספרות בתוך BIRTHDATE.

  1. כדי ליצור בדיקת שלמות, חזור על השלבים הקודמים ליצירת א DRIVERS_FLAGGED על ידי בחירה ב- DRIVERS עמודה לסימון ערכים חסרים.
  2. כדי ליצור בדיקת תקינות, בחר את להצטרף טרנספורמציה.
  3. בחר את encounters מערך נתונים ובחר הַבָּא.
  4. בעד בחר סוג הצטרפות, בחר שמאל להצטרף.
  5. בעד הצטרפו מפתחות, בחר Id ל לוח א ו חולה ל לוח ב.
  6. תַחַת רשימת עמודות, בטל את הבחירה בכל העמודות מטבלה B למעט Patient.
  7. בחרו סיום.
  8. בחר את Patient עמודה וצור עמודת דגל נוספת PATIENTS_FLAG כדי לסמן ערכים חסרים מה- Patient עמודה.

במקרה השימוש שלנו, יצרנו שלוש עמודות חדשות כדי להדגים בדיקות איכות נתונים עבור ממדי איכות נתונים בהיקף (עקביות, שלמות ושלמות), אך ניתן לשלב טרנספורמציות נוספות על אותן עמודות או נוספות לפי הצורך.

  1. לאחר שתסיים ליישם את כל השינויים שלך, בחר לפרסם על המתכון.
  2. הזינו תיאור של גרסת המתכון ובחרו לפרסם.

צור משימת DataBrew

כעת, כשהמתכון שלנו מוכן, אנו יכולים ליצור עבורו עבודה, אשר מופעלת דרך שלנו AWS למבדה פונקציות.

  1. במסוף DataBrew בחר מקומות תעסוקה.
  2. בחרו צור עבודה.
  3. בעד שם העבודה¸ הזן שם (למשל, patient-data-quality).

המתכון שלך כבר מקושר למשרה.

  1. תַחַת הגדרות פלט עבודהל סוג קובץ, בחר את פורמט האחסון הסופי שלך (עבור פוסט זה, אנו בוחרים CSV).
  2. בעד מיקום S3, הזן את נתיב דלי הפלט הסופי של S3.
  3. בעד דְחִיסָה, בחר את סוג הדחיסה שברצונך להחיל (עבור פוסט זה, אנו בוחרים ללא חתימה).
  4. בעד אחסון פלט קבצים, בחר החלף קבצי פלט עבור כל הפעלת עבודה.

אנו בוחרים באפשרות זו מכיוון שהמקרה שלנו הוא פרסום כרטיס ניקוד איכות נתונים עבור כל קבוצה חדשה של קבצי נתונים.

  1. תַחַת הרשאות, עבור שם התפקיד¸ בחר את תפקיד IAM שלך.
  2. בחרו צור והפעל עבודה.

צור טבלת אתנה

אם אתה מכיר את Apache Hive, אולי תמצא יצירת טבלאות על Athena להיות מוכר. אתה יכול ליצור טבלאות על ידי כתיבת הצהרת DDL בעורך השאילתות, או על ידי שימוש באשף או נהג JDBC. כדי להשתמש בעורך השאילתות, הזן את הצהרת ה-DDL הבאה כדי ליצור טבלה:

CREATE EXTERNAL TABLE `blog_output`( `id` string, `birthdate` string, `birthdate_flagged` string, `deathdate` string, `ssn` string, `drivers` string, `drivers_flagged` string, `passport` string, `prefix` string, `first` string, `last` string, `suffix` string, `maiden` string, `marital` string, `race` string, `ethnicity` string, `gender` string, `birthplace` string, `address` string, `city` string, `state` string, `county` string, `zip` bigint, `lat` double, `lon` double, `healthcare_expenses` double, `healthcare_coverage` double, `patient` string, `patient_flagged` string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://<your-bucket>/blog_output/';

בואו נאמת את פלט הטבלה באתנה על ידי הפעלת שאילתת SELECT פשוטה. צילום המסך הבא מציג את הפלט.

צור תצוגות כדי לסנן רשומות טובות ורעות (אופציונלי)

כדי ליצור תצוגת רשומות טובות, הזן את הקוד הבא:

CREATE OR REPLACE VIEW good_records AS
SELECT * FROM "databrew_blog"."blog_output"
where birthdate_flagged = 'Yes' AND
drivers_flagged = 'No' AND
patient_flagged = 'No'

כדי ליצור תצוגת רשומות גרועות, הזן את הקוד הבא:

CREATE OR REPLACE VIEW bad_records AS
SELECT * FROM "databrew_blog"."blog_output"
where birthdate_flagged = 'No' OR
drivers_flagged = 'Yes' OR patient_flagged = 'Yes'

כעת יש לך את היכולת לשאול את הרשומות הטובות והרעות באתנה באמצעות תצוגות אלה.

צור כרטיס ניקוד באמצעות QuickSight

כעת נשלים את השלב האחרון שלנו בארכיטקטורה, שהוא יצירת כרטיס ניקוד לאיכות נתונים באמצעות QuickSight על ידי חיבור לטבלת Athena.

  1. במסוף QuickSight, בחר אתנה כמקור הנתונים שלך.
  2. בעד שם מקור הנתונים, הכנס שם.
  3. בחרו צור מקור נתונים.
  4. בחר את הקטלוג ומסד הנתונים שלך.
  5. בחר את הטבלה שיש לך באתנה.
  6. בחרו בחר.

כעת יצרת מערך נתונים.

כדי לבנות את כרטיס הניקוד, אתה מוסיף שדות מחושבים על ידי עריכת מערך הנתונים blog_output.

  1. אתר את מערך הנתונים שלך.
  2. בחרו ערוך מערך נתונים.
  3. בחרו הוסף שדה מחושב.
  4. הוסף את השדה DQ_Flag עם ערך ifelse({birthdate_flagged} = 'No' OR {drivers_flagged} = 'Yes' OR {patient_flagged} = 'Yes' , 'Invalid', 'Valid').

באופן דומה, הוסף שדות מחושבים אחרים.

  1. הוסף את השדה % Birthdate Invalid Year עם ערך countIf({birthdate_flagged}, {birthdate_flagged} = 'No')/count({birthdate_flagged}).
  2. הוסף את השדה % Drivers Missing עם ערך countIf({drivers_flagged}, {drivers_flagged} = 'Yes')/count({drivers_flagged}).
  3. הוסף את השדה % Patients missing encounters עם ערך countIf({patient_flagged}, {patient_flagged} = 'Yes')/count({patient_flagged}).
  4. הוסף את השדה % Bad records עם הערך countIf({DQ_Flag}, {DQ_Flag} = 'Invalid')/count({DQ_Flag}).

עכשיו אנחנו יוצרים את הניתוח blog_output_analysis.

  1. שנה את הפורמט של השדות המחושבים כדי להציג את אָחוּז פורמט.
  2. התחל להוסיף חזותיים על ידי בחירה הוסף ויזואלי על + הוסף תפריט.

כעת תוכל ליצור דוח מהיר כדי להמחיש את כרטיס ניקוד איכות הנתונים שלך, כפי שמוצג בצילום המסך הבא.

אם QuickSight משתמש תבלין אחסון, עליך לרענן את מערך הנתונים ב-QuickSight לאחר שתקבל הודעה על השלמת רענון הנתונים. אם דוח QuickSight מפעיל שאילתת Athena עבור כל בקשה, ייתכן שתראה שגיאה "לא נמצאה טבלה" כאשר רענון הנתונים מתבצע. אנו ממליצים להשתמש באחסון SPICE כדי לקבל ביצועים טובים יותר.

ניקיון

כדי למנוע חיובים עתידיים, מחק את המשאבים שנוצרו במהלך הדרכה זו.

סיכום

פוסט זה מסביר כיצד ליצור כרטיס ניקוד לאיכות נתונים באמצעות DataBrew, שאילתות Athena ו-QuickSight.

זה נותן לך נקודת התחלה מצוינת לשימוש בפתרון זה עם מערכי הנתונים שלך ויישום כללים עסקיים כדי לבנות מסגרת איכות נתונים מלאה לניטור בעיות בתוך מערכי הנתונים שלך. אנו ממליצים לך להשתמש בשינויים מובנים שונים כדי לקבל את התמורה המקסימלית עבור הפרויקט שלך.


על הכותבים

ניטין אגרוואל הוא ארכיטקט פתרונות בכיר ב-AWS, שם מסייע ללקוחות מקומיים דיגיטליים בבניית פתרונות ניתוח נתונים ומתן הדרכה טכנית על שירותי AWS שונים. הוא מביא יותר מ-16 שנות ניסיון בתפקידי הנדסת תוכנה וארכיטקטורה עבור ארגונים בקנה מידה גדול.

גאורב שרמה הוא אדריכל פתרונות ב-AWS. הוא עובד עם לקוחות עסקיים דיגיטליים ומספקים הדרכה ארכיטקטונית על שירותי AWS.

ויווק קומאר הוא אדריכל פתרונות ב-AWS. הוא עובד עם לקוחות עסקיים דיגיטליים ומספקים הדרכה ארכיטקטונית על שירותי AWS.

מקור: https://aws.amazon.com/blogs/big-data/build-a-data-quality-score-card-using-aws-glue-databrew-amazon-athena-and-amazon-quicksight/

בול זמן:

עוד מ AWS