پردازش دسته ای
1) هدف و ارزش
نوار نقاله های دسته ای موارد نمایش روزانه/ساعتی قابل اعتماد را برای:- گزارش های قانونی و مالی (GGR/NGR، مالیات، ثبت RG/AML).
- BI و تجزیه و تحلیل محصول (گروه، LTV، قیف تبدیل).
- تأیید صحت (OLTP↔DWH، ارائه دهندگان/PSP)، تاریخی سازی (SCD).
- آماده سازی ویژگی ها و مجموعه های آموزشی برای ML.
خواص کلیدی: پیش بینی، کامل، تکرارپذیری، هزینه کم در هر واحد داده.
2) معماری (مرجع)
1. مصرف (ضبط خام): HTTP/gRPC، CDC از OLTP، آپلود ارائه دهنده → برنز.
2. خانه دریاچه: برنز (خام، فقط ضمیمه) → نقره (تمیز/مطابق) → طلا (خدمت).
3. ارکستراسیون: جریان هوا/Dagster/Prefect (DAG 'و، وابستگی ها، بازپرداخت ها، SLA).
4. پردازش: موتورهای جرقه/Trino/DBT/SQL ؛ پارتیشن بندی و فرمت های ACID (Delta/Iceberg/Hudi).
5. DQ و قراردادها: ثبت طرح، قوانین DQ (YAML/SQL)، تست های مصرف کننده.
6. خدمت: BI/لایه معنایی، صادرات قابل گزارش (CSV/PDF/JSON + هش)، API/GraphQL.
7. قابلیت مشاهده: معیارهای خط لوله، تبار، سیاهههای مربوط، هزینه (هزینه/GB، هزینه/پرس و جو).
3) فرکانس ها و SLA ها
روزانه (قفل D + 1 تا 06:00) : گزارش GGR, آپلود نظارتی, آشتی.
ساعتی/شبه زمان: پانل های عملیاتی برای عملیات/امور مالی.
هفتگی/ماهانه: نهایی سازی، مدل ها و پردازش های مجدد.
- ویترین طلا روزانه تا 06:00 زمان محلی آماده است.
- طراوت نقره p95 ≤ 15 دقیقه برای میکروبات/ ≤ 2 ساعت برای روز.
- کامل ≥ 99 5٪، اعتبار (طرح) ≥ 99. 9%.
4) بارگیری افزایشی و CDC
روش ها:- CDC (Change Data Capture): تکثیر Debezium/log → برنز → افزایش در نقره.
- علامت گذاری به موقع: 'به روز شده _ at> max_loaded_ts'.
- مقایسه هش: 'md5 (ردیف)' برای تشخیص تغییر.
- Upsert/Merge: به روز رسانی نقره/طلا Idempotent.
sql
MERGE INTO silver. payments AS s
USING staging. payments_delta AS d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;
5) SCD (تاریخچه اندازه گیری)
SCD I: بازنویسی (املا، اصلاحات جزئی).
SCD II: تاریخچه کامل ('valid _ from/valid _ to/is _ current').
SCD III: «قبل/بعد» برای مقایسه کوتاه.
sql
MERGE INTO dim. users_scd t
USING stage. users u
ON t. user_pseudo_id = u. user_pseudo_id AND t. is_current = TRUE
WHEN MATCHED AND (t. country <> u. country OR t. rg_status <> u. rg_status)
THEN UPDATE SET t. is_current = FALSE, t. valid_to = CURRENT_TIMESTAMP
WHEN NOT MATCHED
THEN INSERT (user_pseudo_id, country, rg_status, valid_from, valid_to, is_current)
VALUES (u. user_pseudo_id, u. country, u. rg_status, CURRENT_TIMESTAMP, NULL, TRUE);
6) پر کردن и پردازش مجدد
Backfill: پر کردن اولیه/Backfill تاریخی.
پردازش مجدد: محاسبه مجدد پنجره فروشگاه پس از ویرایش منطق/اصلاح داده ها.
- Idempotency (MERGE/upsert)، تغییر ناپذیری برنز، نسخه منطقی.
- سفر در زمان برای تکرار اجرا می شود فراداده عکس های فوری.
- Guardrails: محدود کردن محدوده، سهمیه و مشاغل رقابتی.
- مستندات: runbook با مراحل و معیارهای تکمیل.
7) مدل سازی لایه
برنز:- Append-only, 'event _ date', 'صلاحیت', 'tenant' پارتیشن.
- ما محموله اصلی (برای پزشکی قانونی) را ذخیره می کنیم، «مصرف شده _ at» را ثابت می کنیم.
- عادی سازی و استاندارد سازی: FK/دایرکتوری ها، dedup، FX/منطقه زمانی.
- جداول واقعی/ابعاد (3NF/BCNF)، SCD برای ابعاد کلیدی.
- فروشگاه های غیرقانونی برای BI/نظارتی/مالی، آمادگی SLA.
- تحقق مصالح ؛ مصنوعات صادرات غیر قابل تغییر (hash + WORM).
8) کیفیت داده (DQ-as-code)
یک مثال از قوانین YAML برای نقره:yaml table: silver. payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: unique_tx type: unique columns: [transaction_id]
severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical
سیاست های واکنش: بحرانی → کار شکست + DLQ ؛ major/minor → برچسب + گزارش.
9) لایه معنایی و گزارش
تعاریف یکپارچه از معیارها (GGR/NGR، ARPPU، Retention) در semantic-layer/metrics-store.
معیارهای نسخهبندی ؛ ادغام با بسته های BI/صادرات
گزارش ها: CSV/JSON/PDF + sha256، در صورت لزوم ورود به سیستم و حقوقی را بارگیری کنید.
10) حریم خصوصی، اقامت، امنیت
به حداقل رساندن PII: pseudonymization از کاربران ؛ نقشه برداری - در یک حلقه محافظت شده جداگانه.
اقامت داده ها: دایرکتوری ها/کلید های جداگانه برای EEA/UK/BR ؛ ممنوعیت پیوستن های بین منطقه ای بدون دلایل قانونی.
رمزگذاری: TLS در حمل و نقل ؛ KMS/CMK در حالت استراحت ؛ کنترل صادرات
DSAR/RTBF: پیش بینی های قابل محاسبه، ویرایش های انتخابی ؛ ممیزی دسترسی
Legal Hold: آرشیوهای WORM برای مصنوعات قانونی.
11) عملکرد و هزینه
تقسیم بر اساس تاریخ/بازار/مستاجر ؛ Z-سفارش/خوشه توسط predates مکرر.
فرمت ها: پارکت + جداول اسید ؛ فشرده سازی/آمار، OPTIMIZE/VACUUM.
ماده سازی: تجمع پایدار در طلا ؛ اجتناب از مشاغل «یکپارچه».
سهمیه/بودجه: بازپرداخت توسط تیم ؛ محدودیت های backfill/درخواست های سنگین.
برنامه ریزی: پنجره های کم بار (شب/آخر هفته)، اولویت های صف.
12) قابلیت مشاهده و مدیریت
معیارهای خط لوله: مدت زمان، میزان موفقیت، تلاش مجدد، ردیف پردازش شده، هزینه/پرس و جو.
معیارهای DQ: کامل بودن، اعتبار، منحصر به فرد بودن، خطاهای FK، رانش.
نقشه گرما تازه: توسط دامنه و بازار ؛ داشبورد SLA.
اصل و نسب: ریشه برنز به گزارش ؛ تحلیل اثرات قبل از تغییرات
هشدارها: بودجه SLO، کاهش DQ، تاخیر، رشد هزینه.
13) نمونه های SQL/مدل
عادی سازی ارز (نقره):sql
CREATE OR REPLACE TABLE silver. payments AS
SELECT p. transaction_id,
p. user_pseudo_id,
p. currency,
p. amount_orig,
r. rate AS fx_rate_used,
p. amount_orig r. rate AS amount_base,
p. market,
CAST(p. event_time AS TIMESTAMP) AS event_time
FROM bronze. payment_events p
JOIN dim. fx_rates r
ON r. date = DATE(p. event_time)
AND r. ccy_from = p. currency AND r. ccy_to = 'EUR';
نمایشگاه روزانه GGR (طلا):
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
b. market,
g. provider_id,
SUM(b. stake_base) AS stakes_eur,
SUM(p. amount_base) AS payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) AS ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. games g ON g. game_id = b. game_id
GROUP BY 1,2,3;
کنترل کامل بودن (DQ SQL):
sql
SELECT market, event_date, COUNT() AS n
FROM silver. fact_bets
GROUP BY market, DATE(event_time) AS event_date
HAVING n = 0;
14) فرآیندها و RACI
R (مسئول): مهندسی داده (DAG '، مدل های نقره ای/طلایی)، پلت فرم داده (infra، ثبت مدار، DQ).
A (پاسخگو): رئیس داده/افسر ارشد داده.
C (مشورت): انطباق/حقوقی/DPO (PII/احتباس)، امور مالی (FX/GGR)، خطر (RG/AML)، SRE (SLO/стоимость).
I (مطلع): BI/محصول/بازاریابی/عملیات.
15) نقشه راه پیاده سازی
MVP (4-6 هفته):1. Lakehouse برنز/نقره ای (فرمت ACID)، CDC/افزایش برای 2-3 دامنه.
2. DQ-like-code: قوانین 10-15 برای پرداخت/گیم پلی + اعتبار سنجی CI.
3. اولین نمایشگاه طلا (GGR روزانه) با SLA تا 06:00 ؛ صادرات + هش گزارش شده است.
4. تازگی/کامل بودن/داشبورد هزینه، هشدارهای اساسی.
مرحله 2 (6-12 هفته):- SCD II для کاربران/بازی ها/ارائه دهندگان ؛ گسترش دامنه
- لایه معنایی معیارها ؛ چک با OLTP/ارائه دهندگان (دقت).
- روش های پر کردن/پردازش مجدد، تجزیه و تحلیل خطوط و تاثیر، منطقه بندی (EEA/UK).
- شبیه سازی خودکار تغییرات (خشک اجرا)، بودجه/سهمیه، بازپرداخت.
- مستندات خودکار (صفحات محصول داده ها)، تمرینات DR و زمان سفر بازیابی.
- بهینه سازی هزینه (خوشه بندی، تحقق، TTL، خلاء).
16) چک لیست پیش فروش
- قراردادها و طرح ها در رجیستری، تست سازگاری سبز هستند.
- دریافت های افزایشی/CDC کار می کند، MERGE idempotent است.
- قوانین DQ فعال هستند ؛ شکست بحرانی → + DLQ ؛ گزارشی از تخلفات
- داشبورد SLA/طراوت/کامل ؛ هشدارها ایجاد شده است.
- سیاست های PII/DSAR/RTBF/Legal Hold تایید شده توسط Legal/DPO.
- Runbook 'و backfill/reprocessing/DR تست شده است.
- هزینه تحت کنترل (هزینه/پرس و جو، هزینه/GB، سهمیه).
17) ضد الگوهای و چگونه برای جلوگیری از
ضربه های شبانه یکپارچه: به مراحل مستقل تقسیم می شود، به موازات احزاب.
بدون نیاز به بارگذاری مجدد: افزایش استفاده/CDC/ادغام.
ترکیب PII در تجزیه و تحلیل: نگاشتها را جدا نگه دارید، CLS/RLS را اعمال کنید.
بدون DQ/اصل و نسب: وارد DQ-به عنوان کد و ردیابی منشاء.
«دستی» backfills: خودکار و سند، محدوده محدود است.
هزینه های غیر قابل کنترل: خوشه بندی، تحقق، سیاست های نگهداری.
18) واژه نامه (کوتاه)
CDC - گرفتن تغییرات از OLTP.
SCD - به آرامی تغییر اندازه گیری (I/II/III).
دریاچه - دریاچه داده + جداول اسید.
MERGE/Upsert - عملیات به روز رسانی idemotent.
سفر در زمان - خواندن نسخه های تاریخی جداول.
WORM - ذخیره سازی غیر قابل تغییر مصنوعات.
19) خط پایین
پردازش دسته ای یک رشته از خطوط قابل پیش بینی، تجدید پذیر و افتخاری است. با پیروی از اصول schema-first، increments/CDC، SCD historization، DQ-as-code، observability و اقتصاد آگاهانه، شما ویترین ها و گزارش های طلای پایدار را دریافت خواهید کرد که توسط جرقه ها تأیید شده و آماده ممیزی در هر زمان هستند.