تخطي إلى المحتوى الرئيسي

الكشف عن شذوذ المعاملات المالية ونسب البيانات مع Delta Lake


مقدمة

في الصناعة المالية ، يعد اكتشاف الحالات الشاذة في بيانات المعاملات أمرا بالغ الأهمية لمنع الاحتيال والامتثال وإدارة المخاطر. يمكن أن تشير مبالغ المعاملات غير العادية وأنواع المعاملات غير المنتظمة والأنماط غير النمطية إلى أنشطة احتيالية أو أخطاء تتطلب اهتماما فوريا. يمكن أن تؤدي الاستفادة من تقنيات البيانات الضخمة وأطر معالجة البيانات المتقدمة إلى تعزيز القدرة على اكتشاف مثل هذه الحالات الشاذة بشكل فعال.

لوحة معلومات معاملات ilum sql المركبة

يقدم هذا المثال المبسطه حالة الاستخدام التي توضح كيفية إجراء الكشف عن شذوذ المعاملات المالية باستخدام شرارة SQL و بحيرة دلتا. يتكامل الحل أيضا مع OpenLineage إطار عمل لالتقاط معلومات تفصيلية عن نسب البيانات في جميع أنحاء خط أنابيب معالجة البيانات.

معلومات

يمكن تحقيق نفس الشيء باستخدام مثلجة أو هودي. اخترنا الدلتا لأنه تنسيق جدول افتراضي في Ilum.

تتم لوحة معلومات ذكاء الأعمال باستخدام أباتشي سوبر ست، وهي إحدى الوحدات المتوفرة في Ilum. يمكنك العثور على لوحة المعلومات لحالة الاستخدام هذه هنا


وصف مجموعة البيانات

تتكون مجموعة البيانات المستخدمة في حالة الاستخدام هذه من سجلات حركات مالية محاكاة بالأعمدة التالية:

  • الطابع الزمني للمعاملةالطابع الزمني لوقت حدوث المعاملة.:
  • معرف المعاملةمعرف فريد لكل معاملة.:
  • معرف الحسابمعرف فريد للحساب المصرفي المعني.:
  • مبلغالقيمة النقدية للمعاملة.:
  • تاجرالتاجر أو الكيان المتورط في المعاملة.:
  • نوع المعاملةنوع المعاملة (على سبيل المثال ، الشراء ، السحب ، التحويل).:
  • مكانالموقع الجغرافي الذي تمت فيه المعاملة.:

عينة من البيانات:

الطابع الزمني للمعاملةمعرف المعاملةمعرف الحسابمبلغتاجرنوع المعاملةمكان
2023-01-01 08:00:00TXN1127ACC495071.92ميرشانتشابتاعطوكيو
2023-01-01 08:01:00TXN1639ACC1015607.89ميرشانتشابتاعلندن
2023-01-01 08:02:00TXN872ACC865092.34التاجر Eانسحابلندن
2023-01-01 08:03:00TXN2001ACC4500.50التاجر أنقلنيويورك
2023-01-01 08:04:00TXN2002ACC101200.00التاجر بابتاعباريس
2023-01-01 08:05:00TXN2003ACC8300.00التاجر سيانسحابطوكيو

اهداف

الأهداف الأساسية لحالة الاستخدام هذه هي:

  • الكشف عن الشذوذتحديد الحركات التي تعتبر حالات شاذة استنادا إلى المبلغ الذي يتجاوز الحد الأعلى المستمد من توزيع البيانات.:
  • تحديد المعاملات غير النظاميةالكشف عن أنواع المعاملات غير المنتظمة لحسابات معينة.:
  • التعرف على الأنماطالتعرف على الأنماط غير العادية استنادا إلى الطوابع الزمنية للمعاملات والمواقع.:
  • التحليل السلوكيتتبع سلوكيات الإنفاق استنادا إلى التجار.:
  • الملخصات الإحصائيةحساب إجمالي الحركات ومتوسط والحد الأدنى والحد الأقصى لمبالغ الحركات لكل حساب.:
  • تكامل بحيرة دلتااستخدم ميزات Delta Lake مثل السفر عبر الزمن وتغيير موجز البيانات وتطور المخطط لتحسين معالجة البيانات.:
  • تتبع نسب البياناتالتقاط نسب البيانات وتصورها باستخدام إطار عمل OpenLineage.:

نظرة عامة على الحل

يتضمن الحل إنشاء سلسلة من جداول Delta Lake لمعالجة بيانات المعاملة وتحليلها. تشمل الخطوات ما يلي:

  1. استيعاب البياناتقم بتحميل بيانات المعاملة في جدول Delta Lake.:
  2. التحليل الإحصائيحساب المعلمات الإحصائية لتحديد عتبات الشذوذ.:
  3. الكشف عن الشذوذتحديد الحركات والحسابات التي تتجاوز الحدود المحددة.:
  4. تحليل الأنماطالكشف عن أنواع المعاملات غير المنتظمة والأنماط الزمنية.:
  5. التحليل السلوكيتحليل سلوكيات الإنفاق بناء على التجار.:
  6. تحسين البياناتاستخدم ميزات Delta Lake لتحديثات البيانات وتطور المخطط والسفر عبر الزمن.:
  7. تقريريإنشاء تقارير موجزة لإحصاءات الأعمال.:
  8. نسب البياناتاستفد من OpenLineage لالتقاط نسب البيانات في جميع أنحاء خط الأنابيب.:

التنفيذ الفني

الخطوة 1: إنشاء جدول دلتا المعاملات

نبدأ بإنشاء المعاملات كجدول دلتا ليك لتخزين بيانات المعاملات المالية.

كود SQL:

خلق جدول المعاملات (
الطابع الزمني للمعاملة الطابع الزمني التعليق "تاريخ ووقت حدوث المعاملة",
سلسلة معرف المعاملة التعليق "معرف فريد للمعاملة",
سلسلة معرف الحساب التعليق "المعرف الفريد للحساب المعني",
مبلغ عشري(18, 2) التعليق "القيمة النقدية للمعاملة",
سلسلة التاجر التعليق "التاجر المشارك في المعاملة",
سلسلة نوع المعاملة التعليق "نوع المعاملة (على سبيل المثال، الشراء والسحب)",
سلسلة الموقع التعليق "الموقع الذي حدثت فيه المعاملة"
)
استخدام الدلتا
التعليق "جدول يتضمن المعاملات المالية";

إدراج عينة من البيانات:

معلومات

يمكن العثور على رابط إلى ملف المثال هنا

من الضروري تحميل الملف إلى التخزين المرتبط بمثيل Ilum الخاص بك.

أدخل الكتابه جدول المعاملات
اختار
_c0,_c1,_c2,_c3,_c4,_c5,_c6
من CSV.`s3a://ilum-data/financial_anomaly_data.csv`

تفسير:

  • استخدام DELTAيحدد أن الجدول عبارة عن جدول بحيرة دلتا.:
  • التعليقاتتوفير بيانات التعريف للتوثيق والفهم بشكل أفضل.:

إخراج العينة:

لوحة معلومات معاملات ilum sql المركبة

عينة التصور:

لوحة معلومات معاملات ilum sql المركبة

الخطوة 2: الكشف عن الحالات الشاذة في مبالغ المعاملات

نهدف إلى تحديد المعاملات التي يتجاوز فيها المبلغ الحد الأعلى بناء على توزيع مبلغ عمود.

2.1 حساب المعلمات الإحصائية

كود SQL:

خلق منظر amount_stats مثل
اختار
متوسط(مبلغ) مثل avg_amount,
STDDEV(مبلغ) مثل stddev_amount,
النسبه المئويه(مبلغ, 0.95) مثل percentile_95
من
المعاملات;

تفسير:

  • متوسط الأرباح (المبلغ)يحسب متوسط مبلغ الحركة.:
  • STDDEV (المبلغ)يحسب الانحراف المعياري، وهو مفيد لفهم تشتت البيانات.:
  • النسبة المئوية(المبلغ ، 0.95)يحسب النسبة المئوية 95، المستخدمة كحد أعلى للحركات العادية.:

إخراج العينة:

نتائج ILUM SQL

2.2 تحديد المعاملات التي تتجاوز الحد

كود SQL:

خلق منظر الشذوذ
مثل
اختار
معرف المعاملة,
معرف الحساب,
مبلغ,
حال
متى مبلغ > (اختار percentile_95 من amount_stats) ثم "تجاوز الحد"
اخر "WithinLimit"
انتهاء مثل حالة الشذوذ
من
المعاملات;

تفسير:

  • حالة الشذوذعمود جديد يشير إلى ما إذا كانت المعاملة قد تجاوزت الحد المسموح به.:

إخراج العينة:

معرف المعاملةمعرف الحسابمبلغحالة الشذوذ
TXN1127ACC495071.92تجاوز الحد
............
نتائج ILUM SQL

عينة التصور:

نتائج ILUM SQL

الخطوة 3: حساب إحصائيات الحساب

احسب إجمالي الحركات ومتوسط والحد الأدنى والحد الأقصى لمبالغ الحركات لكل حساب.

كود SQL:

خلق جدول account_totals
استخدام الدلتا
مثل
اختار
معرف الحساب,
عد(معرف المعاملة) مثل عدد المعاملات,
مجموع(مبلغ) مثل المبلغ الإجمالي,
متوسط(مبلغ) مثل المتوسط,
دقيقه(مبلغ) مثل الحد الأدنى,
ماكس(مبلغ) مثل ماكس ماونتم
من
المعاملات
مجموعة ب
معرف الحساب;

تفسير:

  • التجميع حسب معرف الحسابتجميع البيانات لكل حساب.:
  • وظائف التجميعاحسب المقاييس الإحصائية لكل حساب.:

إخراج العينة:

معرف الحسابعدد المعاملاتالمبلغ الإجماليالمتوسطالحد الأدنىماكس ماونتم
ACC4295572.4247786.21500.5095071.92
..................
نتائج ILUM SQL

الخطوة 4: تحديد الحسابات التي تتجاوز الحدود

تحديد الحسابات التي لديها معاملات تتجاوز الحد المحدد مسبقا.

4.1 تحديد الحسابات الزائدة

كود SQL:

خلق منظر exceeding_accounts مثل
اختار متميزه معرف الحساب
من الشذوذ
أين حالة الشذوذ = "تجاوز الحد";

4.2 عدد الحسابات الزائدة وغير الزائدة

كود SQL:

اختار
(اختار عد(*) من exceeding_accounts) مثل تجاوز الحسابات,
(اختار عد(متميزه معرف الحساب) من المعاملات) - (اختار عد(*) من exceeding_accounts) مثل الحسابات غير الزائدة;

إخراج العينة:

تجاوز الحساباتالحسابات غير الزائدة
123
نتائج ILUM SQL

الخطوة 5: التعرف على الأنماط الزمنية غير العادية

اكتشف المعاملات التي تحدث خارج ساعات العمل العادية (على سبيل المثال، من الساعة 9 صباحا إلى 5 مساء).

كود SQL:

خلق منظر after_hours_transactions
مثل
اختار
*,
ساعة(الطابع الزمني للمعاملة) مثل ساعة المعاملات
من
المعاملات
أين
ساعة(الطابع الزمني للمعاملة) لا بين 9 و 17;

تفسير:

  • HOUR (الطابع الزمني للمعاملات)يستخرج الساعة من الطابع الزمني.:
  • لا يتراوح بين 9 و 17 عاماتصفية المعاملات خارج ساعات العمل.:

الخطوة 7: تحليل سلوكيات الإنفاق من قبل التاجر

تجميع بيانات الإنفاق لفهم سلوكيات العملاء استنادا إلى تفاعلات التاجر.

كود SQL:

خلق جدول merchant_spending
استخدام الدلتا
مثل
اختار
تاجر,
عد(*) مثل عدد المعاملات,
مجموع(مبلغ) مثل المجموع الذي تم إنفاقه,
متوسط(مبلغ) مثل متوسط مبلغ المعاملة,
دقيقه(مبلغ) مثل الحد الأدنى,
ماكس(مبلغ) مثل ماكس ماونتم
من
المعاملات
مجموعة ب
تاجر;

إخراج العينة:

تاجرعدد المعاملاتالمجموع الذي تم إنفاقهمتوسط مبلغ المعاملةالحد الأدنىماكس ماونتم
ميرشانتش2110679.8155339.9115607.8995071.92
..................
نتائج ILUM SQL

عينة التصور:

نتائج ILUM SQL

الخطوة 8: الاستفادة من ميزات Delta Lake

8.1 تمكين تغيير موجز البيانات

تمكين موجز بيانات التغيير في Delta Lake لتتبع التغييرات في المعاملات جدول.

كود SQL:

تغيير جدول المعاملات
جبر خصائص TBL (الدلتا.enableChangeDataFeed = صحيح);

8.2 إجراء التحديثات وتتبع التغييرات

تحديث مبالغ المعاملات بسبب التصحيحات وتتبع هذه التغييرات.

كود SQL:

-- تحديث معاملة
تحديث المعاملات
جبر مبلغ = 1300.00
أين معرف المعاملة = 'TXN1127';
- تحقق من الإصدار الأخير
وصف تاريخ المعاملات;
نتائج ILUM SQL

-- تغييرات الاستعلام باستخدام موجز بيانات التغيير مع إصدار الجدول المناسب
اختار *
من table_changes("معاملات", 3)
أين معرف المعاملة = 'TXN1127';
نتائج ILUM SQL

8.3 تطور المخطط: إضافة عمود جديد

إضافة عمود جديد علامة الاحتيال للإبلاغ عن المعاملات الاحتيالية المشتبه بها.

كود SQL:

تغيير جدول المعاملات
جمع الاعمده (علامة الاحتيال منطقيه التعليق "علامة تشير إلى الاحتيال المشتبه به");

8.4 تحديث المعاملات الاحتيالية

الإبلاغ عن الحركات التي تتجاوز الحد الأعلى.

كود SQL:

تحديث المعاملات
جبر علامة الاحتيال = صحيح
أين مبلغ > 95071.92;
نتائج ILUM SQL

8.5 السفر عبر الزمن واستعادة الطاولة

عرض تاريخ الجدول

كود SQL:

وصف تاريخ المعاملات;
نتائج ILUM SQL
الاستعلام عن إصدار سابق

كود SQL:

اختار * من المعاملات الإصدار مثل من 3;
استعادة الجدول إلى إصدار سابق

كود SQL:

يستعيد جدول المعاملات ل الإصدار مثل من 3;

تفسير:

  • السفر عبر الزمنالوصول إلى الإصدارات السابقة من البيانات للتدقيق أو الاسترداد.:
  • استعادة الجدولأعد الجدول إلى حالة جيدة معروفة بعد تغييرات غير مقصودة.:

الخطوة 9: إنشاء تقارير موجزة نهائية

إنشاء تقارير تلخص الحسابات التي تتجاوز الحدود وحساب المتوسطات.

كود SQL:

خلق جدول account_exceeding_summary
استخدام الدلتا
مثل
اختار
a.معرف الحساب,
a.عدد المعاملات,
a.المبلغ الإجمالي,
a.المتوسط,
a.الحد الأدنى,
a.ماكس ماونتم,
حال
متى e.معرف الحساب هل لا صِفْر ثم "تجاوز الحد"
اخر "WithinLimit"
انتهاء مثل تجاوز الحالة
من
account_totals أ
يسار ينضم
exceeding_accounts ه على a.معرف الحساب = e.معرف الحساب;
نتائج ILUM SQL
- حساب المتوسطات للحسابات الزائدة وغير الزائدة
اختار
تجاوز الحالة,
عد(معرف الحساب) مثل حساب الحساب,
متوسط(المبلغ الإجمالي) مثل المتوسط الإجمالي,
متوسط(المتوسط) مثل متوسط مبلغ المعاملة
من
account_exceeding_summary
مجموعة ب
تجاوز الحالة;
نتائج ILUM SQL

ميزات بحيرة دلتا المستخدمة

  • جداول دلتايتم إنشاء جميع الجداول باستخدام Delta Lake للاستفادة من معاملات ACID وفرض المخطط.:
  • السفر عبر الزمنالوصول إلى الإصدارات السابقة من البيانات للتدقيق والاسترداد.:
  • استعادة الجدولاستعادة الجداول إلى حالة سابقة إذا لزم الأمر.:
  • تغيير خلاصة البياناتتعقب التغييرات التي تطرأ على البيانات للمعالجة والتدقيق المتزايدين.:
  • تطور المخططإضافة أعمدة جديدة (علامة الاحتيال) دون تعطيل البيانات الموجودة.
  • القيود والشيكاتفرض تكامل البيانات من خلال تعريفات المخطط.:
  • تقسيمعلى الرغم من عدم استخدامه بشكل صريح هنا، يدعم Delta Lake التقسيم لتحسين الأداء.:

تكامل نسب البيانات و OpenLineage

من خلال تنفيذ عمليات SQL هذه في بيئة متكاملة مع OpenLineage، وتقوم كل عملية بإنشاء بيانات تعريف للنسب. تلتقط بيانات التعريف هذه:

  • تدفق البياناتكيفية انتقال البيانات من جدول إلى آخر (على سبيل المثال، من : المعاملات ل الشذوذ).
  • التحولاتالتحويلات المحددة المطبقة على البيانات (على سبيل المثال، إضافة: حالة الشذوذ).
  • تغييرات المخططتعديلات على مخطط الجدول (على سبيل المثال، إضافة: علامة الاحتيال العمود).
  • تعيين الإصدارالتغييرات في إصدارات الجدول بسبب التحديثات والاستعادات.:

فوائد:

  • شفافيةفهم واضح لكيفية معالجة البيانات وتحويلها.:
  • التدقيقالقدرة على تتبع نسب البيانات لأغراض الامتثال والتدقيق.:
  • تصحيحتحديد أسهل للمشكلات في مسارات معالجة البيانات.:
  • الامثليمكن أن تساعد الرؤى حول تدفق البيانات في تحسين الأداء.:
نسب بيانات ILUM

استنتاج

توضح حالة الاستخدام هذه كيفية إجراء الكشف عن الشذوذ المالي باستخدام Spark SQL و Delta Lake ، مع دمج الميزات الرئيسية مثل السفر عبر الزمن وتغيير موجز البيانات وتطور المخطط. من خلال التكامل مع OpenLineage ، يوفر الحل تتبعا شاملا لنسب البيانات ، مما يعزز الشفافية والامتثال.

الوجبات الجاهزة الرئيسية:

  • الكشف الفعال عن الشذوذاستخدام الأساليب الإحصائية لتحديد المعاملات والحسابات التي تنحرف عن الأنماط العادية.:
  • إدارة بيانات قويةالاستفادة من ميزات Delta Lake لضمان تكامل البيانات وتسهيل تغييرات المخطط وتمكين خيارات الاسترداد.:
  • رؤية نسب البياناتالتقاط معلومات النسب التفصيلية لدعم متطلبات التدقيق والامتثال.:
  • رؤى الأعمالإنشاء التقارير والتحليلات التي توفر رؤى قيمة حول سلوكيات العملاء والمخاطر المحتملة.:

التذييل

مخطط مجموعة البيانات

مخطط جدول المعاملات:

عمودنوع البياناتوصف
الطابع الزمني للمعاملةالطابع الزمنيتاريخ ووقت حدوث المعاملة
معرف المعاملةخيطالمعرف الفريد للمعاملة
معرف الحسابخيطالمعرف الفريد للحساب المعني
مبلغعشري(18,2)القيمة النقدية للصفقة
تاجرخيطالتاجر المشارك في المعاملة
نوع المعاملةخيطنوع المعاملة (على سبيل المثال، الشراء والسحب)
مكانخيطالموقع الذي حدثت فيه المعاملة
علامة الاحتيالمنطقيهعلامة تشير إلى الاحتيال المشتبه به (تمت إضافته لاحقا)

مراجع: