$30 off During Our Annual Pro Sale. View Details »

[DATA TH - Bonus Class] Data Quality in Apache ...

Punsiri Boonyakiat
November 27, 2024
72

[DATA TH - Bonus Class] Data Quality in Apache Airflow

The live session focused on ensuring data quality using Apache Airflow, an essential topic for data engineers. It covered the definition of data quality and key metrics, along with tools and techniques for assessing data quality effectively. The session demonstrates the differences in data quality techniques such as unit testing, validation, reconciliation, and notification.

Punsiri Boonyakiat

November 27, 2024
Tweet

Transcript

  1. ตารางเรียน • What and Why Data Quality Assurance (DQA) •

    Techniques for DQA • DQA Landscape in Apache Airflow • Demo • Short Sli.do Q&A
  2. Data Platform Features • Data Domain • Data Quality •

    Data Discovery • Data Governance • Data Observability • DataOps • FinOps
  3. Why Data Quality ? • Avoids Business Risks: Poor data

    can lead to incorrect decisions, financial losses, and damaged business operations. Ensures Data Usability: Data must be accurate, consistent, and reliable to serve its intended purpose effectively. Builds Trust: High-quality data fosters trust among data consumers, leading to better collaboration and usage. Supports Compliance: Maintaining data quality helps meet regulatory requirements and standards. Enhances Efficiency: Clean, well-structured data improves operational efficiency and reduces time spent on data correction.
  4. • Size Compliance: Data must meet predefined size and volume

    standards for efficient processing and analysis. • Accuracy Assurance: Data accuracy must fall within acceptable error margins to maintain reliability for decision-making. • Timely Delivery: Data must be delivered and processed within specific timeframes to align with business objectives. • Scheduled Execution: Pipelines must operate according to established schedules to ensure seamless operations. • Data Privacy: Data must be free of sensitive or confidential information to comply with regulations and mitigate risks. Example of Requirements
  5. Completeness Record is Missing: บาง record ข้อมูลชุดนั้นไม่ถูกบันทึกเลย Value is Missing

    : ข้อมูลบางส่วนในฟิลด์นั้นๆ ไม่ถูกกรอก Data Truncation: ข้อมูลถูกเก็บไม่ครบตามที่ควรจะเป็น (เช่น ตัวอักษรเกินขนาดที่กําหนด)
  6. Consistency • Record level data consistency across source and target

    • Data consistency between domain • Data consistency across time • Data consistency in data representation/ system
  7. Data Quality Tools • SQL check operators: A group of

    operators in the Common SQL provider package that you can use to define data quality checks using Python dictionaries and SQL from within your DAGs. • Great Expectations: An open source data validation framework where checks are defined in JSON. Airflow offers a provider package including the GreatExpectationsOperator for easy integration. • Soda: An open source data validation framework that uses YAML to define checks which can be run in Airflow using the BashOperator. Soda also offers the ability to write any custom checks using SQL. • dbt test: A testing framework for dbt models. The easiest way to run dbt models including dbt test within Airflow is with the Cosmos package.
  8. How to do data validation in Airflow? Type 1: Standalone

    Data-Quality DAG 1. มีการสร้าง DAG แยกเพื่อการตรวจสอบคุณภาพข้อมูล ทํางานทุกวันหลังจาก pipeline หลัก 2. หากตรวจสอบล้มเหลว จะทําการแจ้งเตือนผ่าน และสามารถรันการตรวจสอบใหม่เฉพาะส่วนที่มีปัญหาได้ 3. DAG นี้สามารถเปิด-ปิดได้ง่าย โดยไม่กระทบ DAG เดิม หลัก Type 2: Integrated Checks During Table Creation 1. เพิ่มการตรวจสอบคุณภาพข้อมูลเข้าในขั้นตอนการสร้าง Data Pipeline 2. หากพบข้อผิดพลาดจะหยุดขั้นตอนการทํางานของ pipeline ทันที extract_data_from_source check_data load_data ❌
  9. Data Quality Check Type Table-Level: จะเป็นการทดสอบระดับโครงสร้างของ table เช่น Schema, Data

    Type และ Records count ของทั้ง table Column-Level : การตรวจสอบระดับคอลัมน์ เช่น ถ้าเป็น primary หรือ secondary key column ต้องไม่มีค่า NULL และมีความ unique, สําหรับ column ที่เป็น numerical หรือตัวเลข ต้องอยู่ใน range ที่กําหนด, สําหรับค่าที่เป็น string หรือข้อมความสามารถกําหนด pattern เพื่อทดสอบได้ Row-Level: การตรวจสอบทั่วไป เช่น การเปรียบเทียบค่าหลายคอลัมน์ในแต่ละแถว และการตรวจ สอบว่าไม่มีค่าที่ขัดแย้งกันปรากฏในแถวเดียวกัน Over several tables: ตรวจสอบความสอดคล้องของข้อมูลระหว่างหลายตาราง
  10. DEMO: Let’s go to the code Repo: https://github.com/punsiriboo/data-quality- with-apache-airflow 1.

    SLA for Data Freshness Monitoring 2. Data Validation with SQL Check Operator 3. Data Validation with Great Expectation 4. Notification to Slack 5. Simple Data Reconciliation 6. Apache Airflow Unit Test
  11. SLA - Service Level Agreement • Measure task time from

    DAG start, not task start. • Trigger alert if task exceeds SLA. • SLAs apply only to scheduled DAG runs. • 2 SLA levels: DAG and Task.
  12. Common SQL Provider 1. SQLCheckOperator: ตรวจสอบคุณภาพข้อมูลด้วย Sql 2. SQLTableCheckOperator: ตรวจสอบคุณภาพข้อมูลระดับ

    table 3. SQLColumnCheckOperator: ตรวจสอบคุณภาข้อมูลระกับ column 4. SQLValueCheckOperator: ตรวจสอบความถูกต้องของข้อมูลด้วยการ check value ตามที่คาดหวัง 5. SQLThresholdCheckOperator: ตรวจสอบความถูกต้องของข้อมูลด้วยการ check value ตามที่คาด หวังแบบกําหนดช่วงขอบเขต min max 6. SQLIntervalCheckOperator: ตรวจสอบข้อมูลเทียบกับช่วงเวลาย้อนหลัง