معرفی و تعریف
تضمین کیفیت داده (Data Quality Assurance) توانایی تعریف، اجرا و نگهداری کنترلهایی است که مشخص میکنند داده برای کاربرد موردنظر تا چه اندازه قابلاعتماد است. این کنترلها میتوانند ویژگیهایی مانند کامل بودن، یکتایی، اعتبار مقادیر، سازگاری میان منابع، تازگی و رعایت قواعد کسبوکار را بررسی کنند.
نوع آزمون و معیار قبولی باید براساس اهمیت داده و شیوه استفاده از آن تعیین شود. برای مثال، در جدول سفارشها ممکن است یکتایی شناسه سفارش و وجود شناسه مشتری الزامی باشد ولی برای یک جدول گزارش روزانه، تازگی داده و کامل بودن بازه زمانی اهمیت بیشتری داشته باشد.
ابزارهایی مانند dbt امکان تعریف آزمونهایی برای نبود مقدار تهی، یکتایی، مقادیر مجاز، روابط میان مدلها و قواعد سفارشی را فراهم میکنند. این آزمونها بررسی میکنند آیا داده با انتظارات تعریفشده سازگار است یا خیر.
مشاهده پذیری داده چیست؟
مشاهدهپذیری داده (Data Observability) دامنه گستردهتری دارد و به تیم کمک میکند وضعیت داده و خط لولههای تولیدکننده آن را در طول زمان مشاهده و بررسی کند. برای این کار میتوان از اطلاعاتی مانند وضعیت اجرای پردازشها، تازگی داده، حجم، نتایج آزمونها، تغییرات غیرمنتظره در داده و متادیتای مرتبط استفاده کرد.
تبارشناسی داده چیست؟
تبارشناسی داده (Data Lineage) نیز ارتباط میان منابع، پردازشها و دادههای خروجی را نشان میدهد. Lineage میتواند مشخص کند یک جدول یا پردازش به چه دادههایی وابسته است و خرابی یا تغییر آن چه مصرفکنندگان دیگری را تحت تأثیر قرار میدهد. بااینحال، Lineage بهتنهایی علت اصلی خطا را مشخص نمیکند و معمولاً باید همراه با اطلاعات اجرا، لاگها، نتایج آزمونها و سایر شواهد بررسی شود.
قرارداد داده چیست؟
قرارداد داده (Data Contract) نیز با آزمون کیفیت یکسان نیست. قرارداد مشخص میکند یک داده یا مدل چه ساختار و ویژگیهایی را برای مصرفکنندگان تضمین میکند ولی Data Test بررسی میکند آیا یک انتظار مشخص درباره داده برقرار است یا خیر.
مهندسان داده از این مهارت برای طراحی خط لولههای قابلاعتماد، تشخیص سریعتر خرابی و جلوگیری از انتشار داده نامعتبر استفاده میکنند. تحلیلگران، تیمهای داده و سایر مصرفکنندگان نیز ممکن است در تعریف انتظارات کیفیت یا بررسی اثر اختلالها مشارکت داشته باشند.
هدف این حوزه حذف کامل خطا نیست. هدف این است که مشکلات مهم داده زودتر شناسایی شوند، دامنه اثر آنها مشخص شود و تیم بتواند با شواهد کافی علت و راه اصلاح را پیدا کند.
این مهارت را با نامهای دیگری نیز میشناسند:
- تضمین کیفیت و رصدپذیری داده
- Data Quality Assurance and Data Observability
اهمیت و کاربردها
چرا این مهارت مهم است؟
موفقیت فنی یک خط لوله بهتنهایی به معنای سالم بودن داده نیست. ممکن است همه پردازشها بدون خطای اجرایی پایان پیدا کنند، اما یکی از ستونهای کلیدی تهی شده باشد، بخشی از داده وارد نشده باشد یا یک تغییر در منبع معنای داده خروجی را تغییر داده باشد.
به همین دلیل، کیفیت داده باید بخشی از فرایند طراحی و اجرای خط لوله باشد، نه صرفاً بررسیای که پس از انتشار داده انجام میشود.
آزمونهای کیفیت میتوانند انتظارات مشخص و از پیش تعریفشده را کنترل کنند. در مقابل، پایش داده و خط لوله به تیم کمک میکند تغییراتی را ببیند که ممکن است در آزمونهای ثابت پیشبینی نشده باشند.
Lineage نیز هنگام بروز اختلال کمک میکند مشخص شود چه منابع، پردازشها و خروجیهایی به یکدیگر وابستهاند و خرابی یک بخش ممکن است کدام گزارشها یا مصرفکنندگان را تحت تأثیر قرار دهد.
نقش ابزارهای عمومی پایش چیست؟
ابزارهای عمومی پایش نیز نقش مکمل دارند. برای مثال، Airflow میتواند اطلاعات مربوط به اجرای Task و DAG و سنجههای عملیاتی را در اختیار تیم قرار دهد و سنجههای آن را میتوان به سامانههای مانیتورینگ ارسال کرد. Prometheus، Grafana و Alertmanager نیز میتوانند برای جمعآوری، نمایش و ارسال هشدار درباره چنین سنجههایی استفاده شوند. این ابزارها بهتنهایی همه قابلیتهای Data Observability مانند آزمون کیفیت یا Lineage را فراهم نمیکنند.
مهارت تضمین کیفیت و مشاهده پذیری داده در زمانهای زیر اهمیت بیشتری پیدا میکند:
داده توسط چند گزارش، مدل یا تیم مصرف شود.
تغییرات یک منبع بتواند چند پردازش پاییندستی را تحت تأثیر قرار دهد.
داده مالی، عملیاتی یا مدیریتی حساس باشد.
تأخیر یا ناقصبودن داده بتواند باعث تصمیم اشتباه شود.
پیدا کردن منشأ خرابی میان چند خط لوله و منبع دشوار باشد.
کاربردها
-
آزمون طرحواره و قرارداد داده
بررسی میشود که نام، نوع، اجباریبودن و محدوده مقادیر ستونها با قرارداد داده سازگار باشد. قرارداد داده مشخص میکند تولیدکننده چه ساختار و معنایی را برای داده تعهد میکند تا تغییر ناخواسته منبع، تبدیلهای پاییندستی را خراب نکند.
-
اعتبارسنجی تبدیلهای انبار داده
پس از تبدیل داده خام به جدول تحلیلی، یکتایی کلیدها، نبود مقدار تهی در ستونهای ضروری، روابط میان جداول و قواعد کسبوکار آزمون میشوند. این قواعد را میتوان با SQL در پایگاه دادهای مانند PostgreSQL یا با dbt اجرا کرد.
-
پایش تازگی و کامل بودن داده
زمان آخرین بارگذاری، حجم رکوردهای هر اجرا و پوشش بازه زمانی داده پایش میشود تا تأخیر یا قطعشدن ورود داده سریع تشخیص داده شود.
-
تشخیص ناهنجاری در توزیع داده
تغییر غیرمنتظره در تعداد سفارشها، میانگین مبلغ، نسبت مقادیر تهی یا توزیع دستهها بررسی میشود تا خطاهایی که با قواعد ثابت دیده نمیشوند آشکار شوند.
-
ثبت تبارشناسی و تحلیل اثر تغییر
وابستگی منبع، جدول میانی، مدل تبدیل و داشبورد ثبت میشود تا هنگام خرابی یک جدول، مصرفکنندگان متاثر و نقطه محتمل خطا مشخص شوند.
-
هشداردهی و رسیدگی به رخداد کیفیت
برای شکست آزمونها و عبور سنجهها از آستانه، هشدار قابلاقدام تعریف میشود. ابزارهایی مانند Alertmanager میتوانند هشدارهای Prometheus را گروهبندی و به کانال مناسب ارسال کنند تا تیم علت، اثر، راهحل و اقدام پیشگیرانه را ثبت کند.
ابزارهای مرتبط
پیشنیازها
شروع این مهارت با دانستن پیشنیازهای زیر هموارتر میشود.
مسیر یادگیری تضمین کیفیت و مشاهدهپذیری داده
-
۱۸ ساعت
ابعاد کیفیت داده را به معیارهای قابلسنجش تبدیل کنید
مفاهیم صحت، کاملبودن، یکتایی، سازگاری، اعتبار، تازگی و بهموقعبودن داده را یاد بگیرید. برای یک جدول نمونه، مشخص کنید کدام ستونها حیاتیاند، چه مقادیری نامعتبرند و شکست هر قاعده چه اثری بر مصرفکننده داده دارد.
دوره پیشنهادی
-
۲۰ ساعت
قواعد کیفیت را با SQL بنویسید و نتیجه آنها را تفسیر کنید
پرسوجوهای SQL برای یافتن مقدار تهی، رکورد تکراری، نقض کلید خارجی، مقدار خارج از بازه و ناسازگاری میان جداول بنویسید. خروجی هر آزمون باید شامل تعداد خطا، نمونه رکوردهای مسئلهدار و معیار قبولی یا شکست باشد.
دوره پیشنهادی
-
۲۲ ساعت
آزمونهای تبدیل و قرارداد داده را در خط لوله قرار دهید
یاد بگیرید که آزمونها را در مرحله مناسب خط لوله اجرا کنید: پیش از بارگذاری، پس از تبدیل و پیش از انتشار جدول تحلیلی. با dbt، آزمونهای یکتایی، نبود مقدار تهی، رابطه میان جداول و آزمونهای سفارشی را برای مدلهای داده تعریف و اجرا کنید.
-
۲۲ ساعت
سنجههای مشاهدهپذیری و تبارشناسی داده را طراحی کنید
برای هر دارایی داده مهم، سنجههای حجم، تازگی، نرخ خطا، تعداد رکوردهای ردشده و مدت اجرای پردازش را تعیین کنید. سپس مسیر داده را از منبع تا جدول یا گزارش نهایی مستند کنید و وابستگیهای حساس را مشخص سازید.
-
۱۸ ساعت
پایش و هشدارهای قابلاقدام بسازید
اجرای خط لوله و نتایج آزمونها را به سنجههای قابلنمایش تبدیل کنید. با Apache Airflow وضعیت اجرای DAGها، زمان اجرا و شکست وظیفهها را بررسی کنید. با Prometheus و Grafana یک داشبورد برای وضعیت اجرا، تازگی داده و نرخ شکست آزمونها بسازید و با Alertmanager هشدارهای مهم را به کانال مسئول ارسال کنید. آستانه هشدار را طوری تنظیم کنید که هر نوسان کوچک باعث هشدار بیفایده نشود.
-
۲۰ ساعت
رخداد کیفیت داده را از تشخیص تا رفع مدیریت کنید
یک خرابی عمدی ایجاد کنید. برای مثال، ستون تاریخ را حذف کنید یا داده یک روز را وارد نکنید. هشدار را بررسی کنید، با استفاده از لاگها و تبارشناسی علت را بیابید، داده را اصلاح یا بازپردازش کنید و برای جلوگیری از تکرار، آزمون یا کنترل جدیدی اضافه کنید.
زمان تقریبی یادگیری
برآورد مجموع زمان آموزش، مطالعه و تمرین تا رسیدن به سطح کاربردی؛ بسته به پیشزمینه شما میتواند کمتر یا بیشتر باشد.
پروژههای تمرینی
در ادامه، مهمترین موارد این بخش به تفکیک معرفی شدهاند.
-
مجموعه آزمون کیفیت برای داده سفارشها
توضیح پروژه: یک جدول سفارش، مشتری و پرداخت بسازید. با SQL یا dbt دستکم ۱۰ آزمون برای یکتایی شناسه، مقدار تهی، اعتبار مبلغ، رابطه جداول و سازگاری وضعیت سفارش تعریف کنید. چند خطای عمدی وارد و خروجی آزمونها را مستند کنید.
-
داشبورد تازگی و حجم خط لوله روزانه
توضیح پروژه: برای یک بارگذاری روزانه، زمان آخرین اجرای موفق، تعداد رکورد ورودی و خروجی، مدت اجرا و تعداد آزمونهای شکستخورده را ثبت کنید. این سنجهها را در Grafana نمایش دهید و برای نبود داده جدید یا افت شدید حجم هشدار تعریف کنید.
-
تحلیل رخداد و تبارشناسی داده
توضیح پروژه: یک خط لوله سهمرحلهای از داده خام تا جدول گزارش طراحی کنید. یک تغییر ناسازگار در منبع ایجاد کنید، داراییهای متاثر را شناسایی کنید و یک گزارش کوتاه شامل علت، اثر، راه اصلاح و کنترل پیشگیرانه بنویسید.
پرسشهای رایج درباره تضمین کیفیت و مشاهدهپذیری داده
در این بخش، به تعدادی از پرسشهای رایج درباره این مهارت پاسخ داده شده است.
تفاوت تضمین کیفیت داده و مشاهدهپذیری داده چیست؟
تضمین کیفیت داده بر تعریف و اجرای قواعدی مانند نبود مقدار تهی یا یکتایی شناسه تمرکز دارد. مشاهدهپذیری داده، وضعیت کلی سامانه داده را با سنجههایی مانند تازگی، حجم، توزیع، تبارشناسی و هشداردهی بررسی میکند. این دو مکمل هم هستند.
آیا برای شروع این مهارت باید برنامهنویسی پایتون بلد باشم؟
برای شروع، SQL و درک خط لوله داده مهمترند. پایتون در خودکارسازی بررسیها، پردازش نمونههای خطا و توسعه کنترلهای سفارشی مفید است، اما میتوانید بخش بزرگی از تمرینهای اولیه را با SQL و dbt انجام دهید.
چه آزمونهایی باید برای هر جدول داده تعریف شوند؟
یک فهرست ثابت برای همه جدولها وجود ندارد. معمولاً باید از ستونهای کلیدی و مصرف جدول شروع کنید: یکتایی کلید، نبود مقدار تهی در فیلدهای ضروری، اعتبار نوع و بازه مقدار، روابط میان جداول، تازگی داده و کاملبودن بازه زمانی.
آیا هر افت حجم داده نشانه خطاست؟
خیر. افت حجم ممکن است به تعطیلی، فصل فروش، تغییر رفتار کاربر یا تغییر برنامهریزیشده محصول مربوط باشد. هشدار خوب علاوه بر آستانه، زمینه کسبوکار و الگوی تاریخی را در نظر میگیرد و امکان بررسی سریع را فراهم میکند.
چگونه این مهارت را در رزومه نشان دهم؟
بهجای نوشتن صرف «Data Quality»، یک پروژه قابلبررسی ارائه کنید: قواعد آزمون، نمونه داده خطادار، گزارش نتایج، داشبورد سنجهها، نمونه هشدار و توضیحی از اینکه یک رخداد را چگونه ریشهیابی و رفع کردهاید.
آیا dbt بهتنهایی برای مشاهدهپذیری داده کافی است؟
dbt برای آزمون و مستندسازی تبدیلها بسیار کاربردی است، اما مشاهدهپذیری کامل معمولاً به پایش اجرای ارکستریتور، سنجههای تازگی و حجم، ثبت لاگ، داشبورد و هشداردهی نیز نیاز دارد. انتخاب ابزار به معماری و حساسیت دادههای تیم بستگی دارد.