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

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


مقدمة

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

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

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

معلومات

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

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


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

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

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

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

الطابع الزمني للمعاملة معرف المعاملة معرف الحساب مبلغ تاجر نوع المعاملة مكان
2023-01-01 08:00:00 TXN1127 ACC4 95071.92 ميرشانتش ابتاع طوكيو
2023-01-01 08:01:00 TXN1639 ACC10 15607.89 ميرشانتش ابتاع لندن
2023-01-01 08:02:00 TXN872 ACC8 65092.34 التاجر E انسحاب لندن
2023-01-01 08:03:00 TXN2001 ACC4 500.50 التاجر أ نقل نيويورك
2023-01-01 08:04:00 TXN2002 ACC10 1200.00 التاجر ب ابتاع باريس
2023-01-01 08:05:00 TXN2003 ACC8 300.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"
انتهاء مثل حالة الشذوذ
من
المعاملات ;

تفسير:

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

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

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

عينة التصور:

نتائج ILUM SQL

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

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

كود SQL:

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

تفسير:

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

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

معرف الحساب عدد المعاملات المبلغ الإجمالي المتوسط الحد الأدنى ماكس ماونتم
ACC4 2 95572.42 47786.21 500.50 95071.92
... ... ... ... ... ...
نتائج ILUM SQL

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

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

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

كود SQL:

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

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

كود SQL:

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

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

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

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

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

كود SQL:

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

تفسير:

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

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

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

كود SQL:

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

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

تاجر عدد المعاملات المجموع الذي تم إنفاقه متوسط مبلغ المعاملة الحد الأدنى ماكس ماونتم
ميرشانتش 2 110679.81 55339.91 15607.89 95071.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) القيمة النقدية للصفقة
تاجر خيط التاجر المشارك في المعاملة
نوع المعاملة خيط نوع المعاملة (على سبيل المثال، الشراء والسحب)
مكان خيط الموقع الذي حدثت فيه المعاملة
علامة الاحتيال منطقيه علامة تشير إلى الاحتيال المشتبه به (تمت إضافته لاحقا)

مراجع: