GH GambleHub

تجزیه رجیستری و اتوماسیون

TL ؛ دکتر متخصص

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


1) چشم انداز منبع و فرمت

1. 1 منابع

PSP/acquirers/aggregators: معاملات، مجموعه ها، کمیسیون ها، اختلافات.
بانک ها: عصاره MT940، ISO 20022 CAMT. 052/053/054، پرداخت درد. 001/002.
AWS/کیف پول/پرداخت (OCT/RTP/SEPA): پرداخت ثبت، بازده.
Crypto-custom/exchanges: معاملات زنجیره ای، گزارش های تبدیل/کمیسیون.
مالیات/پورتال دولت: CSV/XLSX/PDF، گاهی اوقات از طریق یک مرورگر اسکریپت.

1. 2 فرمت ها

PDF (جدولی - تجزیه کننده ؛ اسکن - OCR)

CSV/TSV (جداکننده متغیر، محل، رمزگذاری).
XLSX (چند ورق، سلول های ادغام شده).
XML (ISO 20022 CAMT/PAIN، طرح های سفارشی XSD).
MT940/942 SWIFT (زمینه های موقعیت).
JSON-API/NDJSON (بارگذاری افزایشی، نمایشگرها).
زیپ/تار GZ (دسته چند فایل).


2) معماری خط لوله هضم

خطوط:

1. فرود: پذیرش فایل امن (SFTP/FTPS/WebDAV/API/webhooks) → بلافاصله در نظر بگیرید checksum، نگه داشتن مواد خام همواره.

2. خام: طرح توسط تاریخ/ارائه دهندگان/butches، ذخیره سازی با نسخه.

3. Normalize: تجزیه → unifying types/units → جداول نرمال شده.

4. معتبر: پس از اعتبار سنجی (قوانین کیفیت) → پرچم, DLQ.

5. همسان: نقشه برداری به رویدادهای داخلی/بانک.

6. Serving/BI: موارد نمایش برای آشتی/امور مالی/معاملات.

الزامات کلیدی:
  • ایده آل بودن مصرف: (ارائه دهنده، file_name، file_size، checksum، statement_date) → یک کلید منحصر به فرد.
  • Reruns/Retrays: بازنویسی یک فایل تکراری ایجاد نمی کند.
  • DLQ (صف نامه مرده): همه قوانین ناشناخته/نقض - به یک صف جدا شده.
  • Versioning: یک فایل جدید برای همان روز → یک نسخه جدید با یک لینک به قبلی.

3) امنیت تحویل و اسرار

کانال ها: SFTP با کلید های محدود ؛ FTPS - فقط با TLS سخت ؛ API - OAuth2/short نشانه های TTL.
رمزگذاری محتوا: PGP/GPG هنگام دانلود فایل ها ؛ S/مایم برای صندوق ورودی ایمیل (در صورت استفاده).
بررسی یکپارچگی: SHA-256/512 checksum، مقایسه با هش در مانیفست.
اسرار: ذخیره در Vault/KMS، چرخش، ممنوع در فایل های پیکربندی/سیاهههای مربوط.
دسترسی: RBAC + اصل «حداقل امتیازات»، حسابهای خدمات جداگانه.


4) نرمال سازی و طرح داده ها

4. 1 قوانین جهانی

زمان: همیشه UTC در ISO-8601 ؛ برای تاریخ حل و فصل، «تاریخ» بدون TZ.
مقادیر: 'DECIMAL (p, s)' در واحدهای جزئی + مقیاس فردی ؛ ثبت نام: دریافت/هزینه به شدت با توجه به فرهنگ لغت.
ارزها: ISO-4217، جدول نرخ ثابت با 'fx _ src'.
Locali: ممنوعیت تشخیص خودکار - تنظیم صریح جداکننده/نقطه اعشار/هزارم.
رمزگذاری: ورودی UTF-8 ؛ دیگران - تبدیل با ورود به سیستم.

4. 2 لایه «مسطح» نرمال (مثال)

json
{
"provider": "Acquirer_A",
"source_kind": "PSP_TX    PSP_SETTLEMENT    BANK    WALLET    CRYPTO",
"kind": "AUTH    CAPTURE    REFUND    PAYOUT    FEE    SETTLEMENT    CHARGEBACK",
"payment_id": "pay_123",        // ваше
"provider_txid": "psp_abc_789",    // внешнее
"merchant_ref": "mr_456",
"sequence": 0,             // partial/refund line index
"amount_minor": 100000,        // 1000.00
"currency": "EUR",
"fee_minor": 120,           // 1.20
"fx_rate": 1.0000,
"fx_src": "PSP    ECB    BANK",
"event_ts": "2025-11-03T12:00:00Z",
"value_date": "2025-11-05",
"account": "PSP_MERCHANT_CARD_A",
"bin": "425000",
"last4": "1234",
"status": "APPROVED    CAPTURED    SUCCESS    FAILED    SETTLED",
"file_id": "ing_20251103_001",
"row_hash": "sha256(raw_row)"
}

5) تجزیه بر اساس فرمت: ترفندها و چنگک جمع کردن

5. 1 CSV/TSV

صریحاً «مشخص کننده»، «quotechar»، «escapechar»، «رمزگذاری» را مشخص کنید.

تشخیص خطوط خالی/جابجایی هدر ؛ پشتیبانی از نام مستعار هدر (به عنوان مثال. 'مقدارشرکت AMTTxnAmount ").
تبدیل علامت (منهای/براکت)، نرمال سازی هزارم ('، '/. "/فضاها).

5. 2 XLSX

خواندن توسط لیست سفید ورق ؛ مهار خودکار ادغام - سلول های ادغام شده Flattens.
تبدیل فرمولها به مقادیر ؛ اکسل → تاریخ UTC با TZ صریح.

5. 3 XML (ISO 20022 CAMT/PAIN)

اعتبار سنجی توسط XSD ؛ XPath نگاشت هویت ('<Ntry>', '<TxDtls>', '<Amt>', '<CdtDbtInd>').
عادی سازی اعتبار/بدهی → نشانه ؛ پشتیبانی از چندین '<Chrgs>'، '<RmtInf>'.

5. 4 MT940

تجزیه برچسبها ': 61:', ': 86:'; حمایت از توسعه ملی ؛ زمینه های موقعیت → برش قوانین.
ادغام چندین ': 61:' به یک دسته.

5. 5 JSON/NDJSON/API

از زمان _ idcreated_atpage_token' ؛ rate-limit آگاهی retrai (429 → عقب نشینی + jitter).
معناشناسی جزئی (رشتههای چندگانه به یک 'provider _ txid').

5. 6 PDF/OCR

اول، تلاش در تجزیه جدول (آشکارساز جدول)، تنها پس از آن OCR (Tesseract) با شخصیت های لیست سفید.
پس از اعتبار: مقادیر، مجموع کنترل، آشتی از تعداد خطوط.

5. 7 آرشیو/دسته

باز کردن با حفظ ساختار ؛ هر پرونده - یک 'file _ id' جداگانه ؛ آشکار، کنترل تمام قطعات.


6) اعتبار سنجی و قوانین کیفیت داده

چک های اجباری:
  • Schema - تمام فیلدهای مورد نیاز وجود دارد.
  • انواع: مقادیر - عددی، تاریخ - تجزیه.
  • Checksums/Totals - مجموع ردیف = مجموع در فایل (در صورت وجود).
  • محدوده: تاریخ در یک پنجره معقول ؛ sum> 0 (یا با توجه به فرهنگ لغت منفی مجاز).
  • منحصر به فرد: (ارائه دهنده، provider_txid، دنباله) "در نرمال سازی تکرار نمی شود.
  • تحمل اختلافات «مقدار/fx/زمان» مجاز است.

نتیجه: 'VALID', 'VALID _ WITH _ WARNING', 'INVALID → DLQ (reason_code)'.


7) هویت و تقسیم بندی

کلید خوردن: (ارائه دهنده، file_name، اندازه فایل، checksum، statement_date) → یک «file _ id» تک.
idem سطح سطر: 'row _ hash = sha256 (normalized_row_compact)'; بارگذاری مجدد سوابق جدیدی ایجاد نمی کند.
Webhooks/API: «idempotency _ key» ارائه دهنده + برچسب های خود را («exec _ id»)، فروشگاه TTL.
تکراری از ارائه دهنده: dedup توسط 'provider _ txid' + 'دنباله'، در صورت اختلاف - در DLQ_DUPLICATE.


8) ارکستراسیون و برنامه ها

Оркестратор: جریان هوا/Dagster (DAG: 'fetch → رمزگشایی → تجزیه → normalize → validate → publish → match').
SLA/SLO: 'زمان در دسترس بودن (TtA)' از وقوع فایل به 'normalized = READY'.

Retrai: عقب نشینی نمایشی + jitter ؛ محدودیت تلاش ؛ وضعیت های واضح

همزمانی و جداسازی: OCR سنگین/تجزیه XLSX - در یک استخر/کارگر جداگانه با محدودیت CPU/RAM.
DLQ-replay: پردازش دوره ای هنگام به روز رسانی قوانین/نقشه ها.


9) قابلیت مشاهده و هشدار

معیارها:
  • هضم موفقیت٪، تجزیه موفقیت٪ توسط منبع.
  • TtA p50/p95، توان (خطوط/دقیقه).
  • نرخ DLQ и پیری DLQ p50/p95.
  • حوادث رانش طرح.
  • نرخ تکراری по 'provider _ txid'.
هشدارها (مثال):
  • 'TtA p95> SLA' → P1.
  • 'نرخ DLQ> 2٪' در هر ساعت برای → ارائه دهنده P1.
  • 'Schema Drift detected' → P0 (توقف تطبیق خودکار توسط منبع).
  • «اسپایک تکراری» → P2 (ارائه دهنده چک/webhooks).

Dashbord: a funnel 'files → → → → کارت DLQ به دلایل TtA-quantles.


10) تصحیح خودکار و نقشه برداری

نام مستعار عنوان: فرهنگ لغت با نسخه (به عنوان مثال، «مقدار» → «amt»، «مقدار» → «amt»).

نقشه های کد: وضعیت ارائه دهنده → دایرکتوری شما ('APPROVEDضبط شدهحل و فصل ").
سیاست ثبت نام: «CR/DR»، «C/D»، براکت - به یک مدل «نشانه» تک.
تعمیر مقدار: حذف جداسازهای هزارم، عادی سازی منهای.
تعمیر منطقه زمانی: زمان محلی ارائه دهنده → UTC، از جمله DST.
💡 هر تصحیح خودکار - وارد شده و در 'repair _ flags' مشخص شده است.

11) لینک به «آشتی از پرداخت PSP و گزارش»

آماده لایه نرمال - ورودی برای تطبیق (provider_txid/merchant_ref/fuzzy), محاسبه تفاوت طبقه بندی, خودکار سیاهههای مربوط و settlement↔bank -stitching. فیلدهای کلیدی: «provider _ txid», «sequence», «kind», «amount _ minor», «value _ date», «account».


12) مدل ذخیره سازی و جداول

جدول فایل های فرود آمد:
sql
CREATE TABLE landed_files (
file_id TEXT PRIMARY KEY,
provider TEXT,
source_kind TEXT,
file_name TEXT,
file_size BIGINT,
checksum TEXT,
statement_date DATE,
received_at TIMESTAMP WITH TIME ZONE,
version INT,
status TEXT, -- RECEIVED    PARSED    FAILED error TEXT
);
ردیفهای نرمالشده:
sql
CREATE TABLE psp_norm (
row_id BIGSERIAL PRIMARY KEY,
file_id TEXT REFERENCES landed_files(file_id),
provider TEXT,
source_kind TEXT,
kind TEXT,
payment_id TEXT,
provider_txid TEXT,
merchant_ref TEXT,
sequence INT,
amount_minor BIGINT,
currency CHAR(3),
fee_minor BIGINT,
fx_rate NUMERIC(18,8),
fx_src TEXT,
event_ts TIMESTAMPTZ,
value_date DATE,
account TEXT,
status TEXT,
row_hash TEXT UNIQUE,
repair_flags TEXT[]
);
CREATE INDEX idx_psp_norm_txid ON psp_norm(provider, provider_txid, sequence);

13) شبه کد تجزیه کننده

CSV/XLSX:
python def parse_table(file, spec):
df = load_csv_or_xlsx(file, delimiter=spec.delim, encoding=spec.enc, sheet=spec.sheet)
df = rename_headers(df, spec.header_aliases)
df = clean_amounts(df, thousand=spec.thousand, decimal=spec.decimal, sign_policy=spec.sign)
rows = []
for r in df.itertuples():
rows.append(normalize_row(r, spec))
return rows
XML CAMT:
python def parse_camt(xml):
root = parse_xml(xml, xsd="camt053.xsd")
for ntry in root.findall('.//Ntry'):
sign = 1 if ntry.findtext('CdtDbtInd') == 'CRDT' else -1 amt = Decimal(ntry.findtext('Amt')) sign
... map to normalized fields
OCR PDF (برگشت):
python def parse_pdf_ocr(pdf):
text = tesseract(pdf, lang="eng", psm=6, whitelist="0123456789.,-;:/A-Za-z")
table = detect_table(text)
return normalize_table(table)

14) GDPR/PII و ویرایش ورود به سیستم

Masking/hashing: PAN/email/phone → 'sha256 + salt', logs - بدون مقادیر اولیه.
سیاست نگهداری: «نگهداری» بر اساس نوع منبع (AML/حسابداری).
دسترسی PII - فقط با نقش ؛ حسابرسی از خواندن/صادرات.


15) KPI ها و اهداف (برای تجزیه/مصرف)

درصد موفقیت ≥ 99 5 درصد در روز برای هر منبع

تجزیه موفقیت٪ ≥ 99٪، DLQ ≤ 1٪.
TtA p95 (fayl → normalized) ≤ 15 دقیقه (CSV/XML)، ≤ 60 دقیقه (PDF/OCR).
حوادث رانش طرح: 0/ماه بدون هشدار/رفع.
نرخ تکراری по «provider _ txid» ≤ 0. 05%.


16) کتاب های حادثه

رانش طرح: توقف خودکار تطبیق، روشن کردن «نرم» تجزیه کننده با ML-تشخیص سخنرانان، آماده پچ نام مستعار، اجرای DLQ-پخش.
افزایش DLQ: اشکال زدایی آخرین فایل ها، چک کردن رمزگذاری/محلی/علامت، به طور موقت کاهش شدت تحمل (با پرچم).
تاخیر SFTP: تعویض به API polling/webhooks، افزایش retraces، ارتباط با ارائه دهنده.
Spikes تکراری: تأیید اضافی 'row _ hash' را فعال کنید، بلوک تکرار تا زمانی که روشن شود.


17) بسته بندی مورد آزمایش (UAT/Prod-Ready)

1. Idempotency: همان بار → 1 'file _ id'، 0 خط جدید را تکرار کنید.
2. Locales: فایلهایی با ', '/'. '/spaces = مبالغ صحیح.
3. جزئی/بازپرداخت: چند 'دنباله' به یک 'ارائه دهنده _ txid'.
4. XML XSD: نامعتبر است CAMT → 'نامعتبر' + DLQ.
5. تغییرات MT940: گسترش ملی → تجزیه و تحلیل صحیح.
6. PDF → OCR: اسکن با سر و صدا → استخراج و عبور از قوانین اساسی.
7. Schema drift: یک header → alias patch جدید و پردازش مجدد فایلهای تاریخی.
8. توانایی: تست بار N فایل/ساعت → انطباق با TtA SLA.
9. نسخه PII: سیاهههای مربوط بدون PAN/ایمیل، فقط هش.


18) چک لیست پیاده سازی

  • منبع رجیستری: پروتکل، برنامه، SLA، فرمت، تماس.
  • کانال های امن (SFTP/PGP/API)، Vault برای اسرار.
  • خوردن idempotent + چک سام + نسخه.
  • تجزیه کنندگان با فرمت، فرهنگ لغت نام مستعار، سیاست های ثبت نام/محلی.
  • لایه نرمال و شاخص های کلیدی.
  • قوانین اعتبار سنجی، تحمل، DLQ و پخش.
  • ارکستر (DAG)، Retrai/Backoff، استخر منابع.
  • قابلیت مشاهده: معیارها، داشبورد، هشدارها.
  • GDPR/PII ماسک، ممیزی دسترسی.
  • موارد آزمون و مته منظم طرح رانش.

خلاصه رزومه

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

Contact

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

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

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

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

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

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