Logo GH

کنترل کیفیت داده ها

1) اهداف و اصول

چرا: گزارش های قابل اعتماد (GGR/مالیات)، مدل های ضد تقلب و RG، آپلود انطباق، محصولات و شخصی سازی.

اصول:
  • Schema-first & Contracts: تمام منابع برای انتشار داده های قرارداد مورد نیاز است.
  • DQ-as-code: قوانین در مخزن، نسخه ها، تست ها و بررسی ها.
  • مشاهده به صورت پیش فرض: metrics/logging/lineage.
  • حریم خصوصی توسط طراحی: PII حداقل، ماسک و RLS/CLS.
  • هزینه آگاه: اولویت بندی قوانین مهم، نمونه های هوشمند.

2) طبقه بندی اندازه گیری های کیفیت

کامل بودن - درصد فیلدها/ردیف های مورد نیاز.
اعتبار-مسابقات انواع/محدوده/کتاب های مرجع.
منحصر به فرد: هیچ کلید/رویدادهای تکراری وجود ندارد.

سازگاری: یکپارچگی ارجاعی، تغییرناپذیر کسب و کار

دقت نزدیک «درست» منبع (خلاصه آشتی).
جدول زمانی/طراوت - تاخیر مواد.
یکپارچگی خط: حفظ مبدأ/نسخه های تحولات.

KPI های کیفیت و بحرانی (بحرانی/عمده/جزئی) برای هر دامنه تعریف شده است.

3) قراردادها و طرح ها (منبع حقیقت)

قراردادهای داده: JSON Schema/Avro/OpenAPI/AsyncAPI، میزبانی شده توسط رجیستری.
پایداری: تغییرات سازگار با عقب - اضافه کردن nullable ؛ شکستن - نسخه جدید + ورود دو.
قابلیت ردیابی: در رویدادها - «event _ id»، «trace _ id»، «schema _ version»، «source».

4) DQ-as-code: ساختار مصنوعی

قوانین را در Git همراه با خطوط لوله ذخیره کنید:

/dq/
rules/
silver. payments. yaml gold. ggr_daily. yaml checks/
sql/
python/
policies/
severities. yaml notifications/
routes. yaml

قوانین: اعلام YAML/SQL ؛

شدت: نقشه برداری → کانال های هشدار/سطح تشدید ؛

CI: خطوط مدار، تست سازگاری، خشک اجرا/شبیه ساز.

5) قوانین مثال (YAML)

yaml table: silver. payments owner: data-payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive severity: critical type: range column: amount min: 0. 01
- name: currency_in_whitelist severity: major type: in_set column: currency set: [EUR, USD, GBP, TRY, BRL]
- name: unique_tx severity: critical type: unique columns: [transaction_id]
- name: fk_user_exists severity: critical type: foreign_key column: user_pseudo_id ref_table: dim. users ref_column: user_pseudo_id
- name: ts_monotonicity severity: minor type: temporal expression: "ts between date_sub(now(), interval 90 day) and now()"

6) تست های SQL (نمونه ها)

منحصر به فرد از کلید

sql
SELECT transaction_id, COUNT() AS c
FROM silver. payments
GROUP BY transaction_id
HAVING COUNT() > 1;

تکمیل فیلد مورد نیاز

sql
SELECT COUNT() AS nulls
FROM silver. payments
WHERE amount IS NULL OR currency IS NULL OR ts IS NULL;

منابع/سازگاری

sql
SELECT p. currency
FROM silver. payments p
LEFT JOIN ref. currencies r ON p. currency = r. code
WHERE r. code IS NULL;

7) جریان DQ (زمان واقعی)

Ingest-validation: schema validation, size-limits, types and enum's را وارد کنید.
چک در جریان: dedup '(event_id، منبع)'، تاخیر مجاز، اعتبار ارز/مقدار.
مرزها: خطاهای بحرانی → DLQ + هشدار ؛ برچسب → بحرانی نیست، اما جست و خیز (با پرچم «dq _ flag»).
معیارها: کامل بودن/تاخیر/نرخ dup توسط حزب.

8) مدیریت خطاها و استثنائات

DLQ/قرنطینه: سوابق بیمار نگهداری می شود، برای اصلاح در دسترس است.
سوابق استثنا: کارت محرومیت (مالک، تاریخ، دلیل، منطقه).
بازگشت خودکار: از آخرین عکس فوری صحیح از مورد صفحه نمایش استفاده کنید.
بسته شدن SLA: بحرانی - ≤ 24-48 ساعت ؛ عمده - ≤ 5 روز کارکنان.

9) هماهنگی با حفظ حریم خصوصی و انطباق

کمینه سازی PII: PII «خام» را در لایه های تحلیلی بررسی نکنید. از اسم مستعار استفاده کن

بررسی های RLS/CLS بر اساس ماسک انجام می شود.
منطقه ای سازی: قوانین «صلاحیت» را در نظر می گیرند (EEA/UK/BR).
نگهداری قانونی: بدون بازنویسی آرشیو به عنوان بخشی از نگهداری.

10) قابلیت مشاهده، SLI/SLO و هشدارها

SLI/SLO های توصیه شده:
  • تازگی p95 (نقره ای): ≤ 15 دقیقه
  • کامل بودن (انواع بحرانی): ≥ 99. 5%.
  • اعتبار (طرح): ≥ 99. 9%.
  • نرخ تکراری: ≤ 0. 1%.
  • حادثه DQ MTTR: ≤ 24-48 ч.

هشدارها: پیجر برای بحرانی، ضد aliasing، پنجره های تعمیر و نگهداری.

11) داشبورد (حداقل مجموعه)

تازگی/کامل بودن نقشه گرما بر اساس دامنه و بازار.
جدول بالا N با نرخ حادثه و با هزینه اصلاحات.
قیف DQ: مصرف → نقره → طلا (از دست دادن/اصلاح).
نقشه خطی برای گزارش های بحرانی (تنظیم کننده/GGR/RG/AML).
نقشه طرح ها و مشتری های «میراث» (نسخه های SDK/schema).

12) فرآیندها و RACI

R (مسئول): مهندسی داده (قوانین در جداول)، صاحبان دامنه (معناشناسی).
A (پاسخگو): رئیس داده/CDO.
C (مشورت): انطباق/قانونی/DPO، معماری، SRE.
من (مطلع): BI/Продукт/Маркетинг/Финансы/Операции.

Rule lifecycle: offer → review → «اجرای تاریک» → inclusion → monitoring → retrospective

13) آشتی و دقت

Checksums/transactions: vault with OLTP/providers (PSP/KYC).
مقایسه دو حلقه: خط لوله مستقل برای اعتبارسنجی انتخابی.
Tolerances آستانه درصد توسط معیارها (به عنوان مثال،. واریانس GGR ≤ 0. 2%).
اقدامات روزانه: گزارش های حسابرسی حسابرسی.

14) هزینه و اولویت بندی

اجرای قوانین بحرانی اغلب (جریان/ساعتی)، جزئی - روزانه.
از fetches و چک های تحقق یافته برای جداول سنگین استفاده کنید.
پیگیری هزینه/پرس و جو و هزینه/GB، اعمال خوشه بندی/نمایه سازی.
تخصیص بودجه برای DQ در زمینه تیم ها (بازپرداخت).

15) قالب برای فروشگاه طلا (به عنوان مثال GGR روزانه)

yaml table: gold. ggr_daily owner: fin-analytics slo:
ready_by_local_time: "06:00"
rules:
- name: ggr_not_negative severity: critical type: range column: ggr min: 0. 0
- name: market_known severity: major type: in_set column: market set_ref: ref. markets
- name: fx_source_present severity: major type: not_null column: fx_source
- name: completeness_by_market severity: critical type: completeness partition_keys: [event_date, market]
expected_rows_expression: "ref. expected_activity(event_date, market)"

16) حوادث کیفیت: مدیریت و ارتباطات

Ticketing: ایجاد خودکار وظایف با انتخاب و معیارهای پیوست شده.
قالب کام: اطلاع صاحبان محصول/تنظیم کننده زمانی که تحت تاثیر قرار.
پس از مرگ: علت ریشه (رانش طرح، بالادست اشکال، بار)، اقدامات CAPA، کنترل «بازگشت رگرسیون».

17) نقشه راه پیاده سازی

MVP (2-4 هفته):

1. کاتالوگ جداول بحرانی (پرداخت، گیم پلی، GGR، انطباق).

2. قوانین YAML برای 10-15 کلید چک + اعتبار CI.

3. داشبورد تازگی/کامل و هشدار برای بحرانی.

4. DLQ/قرنطینه + رفع runbook.

مرحله 2 (4-8 هفته):
  • گسترش قانون (FK/دقت)، شبیه ساز خشک اجرا، شامل A/B.
  • ادغام خطوط، ترتیبات استثنا و SLA ها.
  • جریان DQ در مصرف برای منابع «پر سر و صدا».
مرحله 3 (8-12 هفته):
  • تولید خودکار مستندات توسط قوانین، معیارهای هزینه.
  • «خطوط کنترل» (آشتی مستقل)، هفتگی گذشته نگر.
  • SDK های پلت فرم Rule-as-Code، رجیستری چک های دامنه استاندارد.

18) چک لیست پیش فروش

  • قراردادها و طرح ها در رجیستری، آزمون سازگاری عبور می کند.
  • قوانین YAML منجمد، شدت/تشدید اختصاص داده شده است.
  • داشبورد و هشدار فعال هستند ؛ SLO ها تعریف شده و توافق شده اند.
  • DLQ/قرنطینه در دسترس است، کتابهای اجرا مستند شده است.
  • استثنا/روش های آشتی با قانونی/انطباق توافق.
  • اندازه گیری هزینه بازرسی و محدودیت در درخواست های سنگین.

19) اشتباهات مکرر و چگونگی اجتناب از آنها

داده های خام بدون قرارداد: آزمون های اول طرح و مصرف کننده را وارد کنید.
«دستی» چک: ترجمه به DQ-به عنوان کد و CI.
بدون اولویت بندی: کانال های بحرانی/عمده/جزئی و هشدار جداگانه.
DLQ وجود ندارد: چیزی برای کار با خطاها وجود ندارد - قرنطینه را اضافه کنید.
نادیده گرفتن هزینه: نمایش داده شد مشخصات، استفاده از materialization.
بدون پس از مرگ: اشتباهات تکرار می شوند - وارد CAPA و کنترل رگرسیون.

20) خط پایین

سیستم کنترل کیفیت داده ها مجموعه ای از چک های پراکنده نیست، بلکه یک برنامه مدیریت شده است: قراردادها و طرح ها، DQ-as-code، قابلیت مشاهده و SLO، حادثه و نظم و انضباط آشتی. با پیروی از این مقاله، داده های قابل تجدید، قابل اثبات و مقرون به صرفه برای گزارش های نظارتی، راه حل های محصول و آشکارسازهای ریسک در زمان واقعی دریافت خواهید کرد.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.