الكشف عن شذوذ المعاملات المالية ونسب البيانات مع Delta Lake
مقدمة
في الصناعة المالية ، يعد اكتشاف الحالات الشاذة في بيانات المعاملات أمرا بالغ الأهمية لمنع الاحتيال والامتثال وإدارة المخاطر. يمكن أن تشير مبالغ المعاملات غير العادية وأنواع المعاملات غير المنتظمة والأنماط غير النمطية إلى أنشطة احتيالية أو أخطاء تتطلب اهتماما فوريا. يمكن أن تؤدي الاستفادة من تقنيات البيانات الضخمة وأطر معالجة البيانات المتقدمة إلى تعزيز القدرة على اكتشاف مثل هذه الحالات الشاذة بشكل فعال.
يقدم هذا المثال المبسطه حالة الاستخدام التي توضح كيفية إجراء الكشف عن شذوذ المعاملات المالية باستخدام شرارة 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 لمعالجة بيانات المعاملة وتحليلها. تشمل الخطوات ما يلي:
- استيعاب البيانات قم بتحميل بيانات المعاملة في جدول Delta Lake.:
- التحليل الإحصائي حساب المعلمات الإحصائية لتحديد عتبات الشذوذ.:
- الكشف عن الشذوذ تحديد الحركات والحسابات التي تتجاوز الحدود المحددة.:
- تحليل الأنماط الكشف عن أنواع المعاملات غير المنتظمة والأنماط الزمنية.:
- التحليل السلوكي تحليل سلوكيات الإنفاق بناء على التجار.:
- تحسين البيانات استخدم ميزات Delta Lake لتحديثات البيانات وتطور المخطط والسفر عبر الزمن.:
- تقريري إنشاء تقارير موجزة لإحصاءات الأعمال.:
- نسب البيانات استفد من OpenLineage لالتقاط نسب البيانات في جميع أنحاء خط الأنابيب.:
التنفيذ الفني
الخطوة 1: إنشاء جدول دلتا المعاملات
نبدأ بإنشاء المعاملات كجدول دلتا ليك لتخزين بيانات المعاملات المالية.
كود SQL:
خلق جدول المعاملات (
الطابع الزمني للمعاملة الطابع الزمني التعليق "تاريخ ووقت حدوث المعاملة" ,
سلسلة معرف المعاملة التعليق "معرف فريد للمعاملة" ,
سلسلة معرف الحساب التعليق "المعرف الفريد للحساب المعني" ,
مبلغ عشري ( 18 , 2 ) التعليق "القيمة النقدية للمعاملة" ,
سلسلة التاجر التعليق "التاجر المشارك في المعاملة" ,
سلسلة نوع المعاملة التعليق "نوع المعاملة (على سبيل المثال، الشراء والسحب)" ,
سلسلة الموقع التعليق "الموقع الذي حدثت فيه المعاملة"
)
استخدام الدلتا
التعليق "جدول يتضمن المعاملات المالية" ;
إدراج عينة من البيانات:
- استيراد البيانات من الملف
- إدراج البيانات يدويا
يمكن العثور على رابط إلى ملف المثال هنا
من الضروري تحميل الملف إلى التخزين المرتبط بمثيل Ilum الخاص بك.
أدخل الكتابه جدول المعاملات
اختار
_c0 , _c1 , _c2 , _c3 , _c4 , _c5 , _c6
من CSV . ` s3a://ilum-data/financial_anomaly_data.csv `
أدخل إلى المعاملات القيم
( الطابع الزمني ( '2023-01-01 08:00:00' ) , 'TXN1127' , "ACC4" , 95071.92 , "MerchantH" , "شراء" , "طوكيو" ) ,
( الطابع الزمني ( '2023-01-01 08:01:00' ) , 'TXN1639' , "ACC10" , 15607.89 , "MerchantH" , "شراء" , "لندن" ) ,
( الطابع الزمني ( '2023-01-01 08:02:00' ) , "TXN872" , "ACC8" , 65092.34 , "MerchantE" , "الانسحاب" , "لندن" ) ,
( الطابع الزمني ( '2023-01-01 08:03:00' ) , 'TXN2001' , "ACC4" , 500.50 , "MerchantA" , "التحويل" , "نيويورك" ) ,
( الطابع الزمني ( '2023-01-01 08:04:00' ) , 'TXN2002' , "ACC10" , 1200.00 , "MerchantB" , "شراء" , "باريس" ) ,
( الطابع الزمني ( '2023-01-01 08:05:00' ) , 'TXN2003' , "ACC8" , 300.00 , "MerchantC" , "الانسحاب" , "طوكيو" ) ,
( الطابع الزمني ( '2023-01-01 09:15:00' ) , 'TXN2004' , "ACC5" , 25000.00 , "MerchantD" , "إيداع" , "برلين" ) ,
( الطابع الزمني ( '2023-01-01 10:30:00' ) , 'TXN2005' , "ACC6" , 75000.00 , "MerchantE" , "شراء" , "سيدني" ) ,
( الطابع الزمني ( '2023-01-01 11:45:00' ) , 'TXN2006' , "ACC7" , 500.00 , "MerchantF" , "الانسحاب" , "تورنتو" ) ,
( الطابع الزمني ( '2023-01-01 12:00:00' ) , 'TXN2007' , "ACC4" , 300000.00 , "MerchantG" , "التحويل" , "دبي" ) ,
( الطابع الزمني ( '2023-01-01 13:15:00' ) , 'TXN2008' , "ACC8" , 150.00 , "MerchantH" , "شراء" , "طوكيو" ) ,
( الطابع الزمني ( '2023-01-01 14:30:00' ) , 'TXN2009' , "ACC10" , 2000.00 , "MerchantI" , "إيداع" , "نيويورك" ) ,
( الطابع الزمني ( '2023-01-01 15:45:00' ) , 'TXN2010' , "ACC5" , 800.00 , "MerchantJ" , "الانسحاب" , "لندن" ) ,
( الطابع الزمني ( '2023-01-01 16:00:00' ) , 'TXN2011' , "ACC6" , 45000.00 , "MerchantK" , "شراء" , "باريس" ) ,
( الطابع الزمني ( '2023-01-01 17:15:00' ) , 'TXN2012' , "ACC7" , 600.00 , "ميرشانتل" , "التحويل" , "برلين" ) ,
( الطابع الزمني ( '2023-01-01 18:30:00' ) , 'TXN2013' , "ACC4" , 70000.00 , "MerchantM" , "شراء" , "طوكيو" ) ,
( الطابع الزمني ( '2023-01-01 19:45:00' ) , 'TXN2014' , "ACC8" , 500000.00 , "MerchantN" , "الانسحاب" , "سيدني" ) ,
( الطابع الزمني ( '2023-01-01 20:00:00' ) , 'TXN2015' , "ACC10" , 120000.00 , "ميرشانتو" , "شراء" , "دبي" ) ,
( الطابع الزمني ( '2023-01-01 21:15:00' ) , 'TXN2016' , "ACC5" , 350.00 , "MerchantP" , "إيداع" , "تورنتو" ) ,
( الطابع الزمني ( '2023-01-01 22:30:00' ) , 'TXN2017' , "ACC6" , 1000.00 , "MerchantQ" , "الانسحاب" , "نيويورك" ) ,
( الطابع الزمني ( '2023-01-01 23:45:00' ) , 'TXN2018' , "ACC7" , 90000.00 , "MerchantR" , "التحويل" , "باريس" ) ,
( الطابع الزمني ( '2023-01-02 00:00:00' ) , 'TXN2019' , "ACC4" , 250.00 , "التجار" , "شراء" , "لندن" ) ,
( الطابع الزمني ( '2023-01-02 01:15:00' ) , 'TXN2020' , "ACC8" , 400.00 , "MerchantT" , "الانسحاب" , "طوكيو" ) ,
( الطابع الزمني ( '2023-01-02 02:30:00' ) , 'TXN2021' , "ACC10" , 5000.00 , "ميرشانت يو" , "إيداع" , "برلين" ) ,
( الطابع الزمني ( '2023-01-02 03:45:00' ) , 'TXN2022' , "ACC5" , 600000.00 , "MerchantV" , "شراء" , "دبي" ) ,
( الطابع الزمني ( '2023-01-02 04:00:00' ) , 'TXN2023' , "ACC6" , 50.00 , "MerchantW" , "التحويل" , "سيدني" ) ,
( الطابع الزمني ( '2023-01-02 05:15:00' ) , 'TXN2024' , "ACC7" , 800.00 , "MerchantX" , "شراء" , "نيويورك" ) ,
( الطابع الزمني ( '2023-01-02 06:30:00' ) , 'TXN2025' , "ACC4" , 1000000.00 , "MerchantY" , "الانسحاب" , "طوكيو" ) ,
( الطابع الزمني ( '2023-01-02 07:45:00' ) , 'TXN2026' , "ACC8" , 100.00 , "MerchantZ" , "إيداع" , "لندن" ) ;
تفسير:
- استخدام DELTA يحدد أن الجدول عبارة عن جدول بحيرة دلتا.:
- التعليقات توفير بيانات التعريف للتوثيق والفهم بشكل أفضل.:
إخراج العينة:
عينة التصور:
الخطوة 2: الكشف عن الحالات الشاذة في مبالغ المعاملات
نهدف إلى تحديد المعاملات التي يتجاوز فيها المبلغ الحد الأعلى بناء على توزيع مبلغ عمود.
2.1 حساب المعلمات الإحصائية
كود SQL:
خلق منظر amount_stats مثل
اختار
متوسط ( مبلغ ) مثل avg_amount ,
STDDEV ( مبلغ ) مثل stddev_amount ,
النسبه المئويه ( مبلغ , 0.95 ) مثل percentile_95
من
المعاملات ;
تفسير:
- متوسط الأرباح (المبلغ) يحسب متوسط مبلغ الحركة.:
- STDDEV (المبلغ) يحسب الانحراف المعياري، وهو مفيد لفهم تشتت البيانات.:
- النسبة المئوية(المبلغ ، 0.95) يحسب النسبة المئوية 95، المستخدمة كحد أعلى للحركات العادية.:
إخراج العينة:
2.2 تحديد المعاملات التي تتجاوز الحد
كود SQL:
خلق منظر الشذوذ
مثل
اختار
معرف المعاملة ,
معرف الحساب ,
مبلغ ,
حال
متى مبلغ > ( اختار percentile_95 من amount_stats ) ثم "تجاوز الحد"
اخر "WithinLimit"
انتهاء مثل حالة الشذوذ
من
المعاملات ;
تفسير:
- حالة الشذوذ عمود جديد يشير إلى ما إذا كانت المعاملة قد تجاوزت الحد المسموح به.:
إخراج العينة:
| معرف المعاملة | معرف الحساب | مبلغ | حالة الشذوذ |
|---|---|---|---|
| TXN1127 | ACC4 | 95071.92 | تجاوز الحد |
| ... | ... | ... | ... |
عينة التصور:
الخطوة 3: حساب إحصائيات الحساب
احسب إجمالي الحركات ومتوسط والحد الأدنى والحد الأقصى لمبالغ الحركات لكل حساب.
كود SQL:
خلق جدول account_totals
استخدام الدلتا
مثل
اختار
معرف الحساب ,
عد ( معرف المعاملة ) مثل عدد المعاملات ,
مجموع ( مبلغ ) مثل المبلغ الإجمالي ,
متوسط ( مبلغ ) مثل المتوسط ,
دقيقه ( مبلغ ) مثل الحد الأدنى ,
ماكس ( مبلغ ) مثل ماكس ماونتم
من
المعاملات
مجموعة ب
معرف الحساب ;
تفسير:
- التجميع حسب معرف الحساب تجميع البيانات لكل حساب.:
- وظائف التجميع احسب المقاييس الإحصائية لكل حساب.:
إخراج العينة:
| معرف الحساب | عدد المعاملات | المبلغ الإجمالي | المتوسط | الحد الأدنى | ماكس ماونتم |
|---|---|---|---|---|---|
| ACC4 | 2 | 95572.42 | 47786.21 | 500.50 | 95071.92 |
| ... | ... | ... | ... | ... | ... |
الخطوة 4: تحديد الحسابات التي تتجاوز الحدود
تحديد الحسابات التي لديها معاملات تتجاوز الحد المحدد مسبقا.
4.1 تحديد الحسابات الزائدة
كود SQL:
خلق منظر exceeding_accounts مثل
اختار متميزه معرف الحساب
من الشذوذ
أين حالة الشذوذ = "تجاوز الحد" ;
4.2 عدد الحسابات الزائدة وغير الزائدة
كود SQL:
اختار
( اختار عد ( * ) من exceeding_accounts ) مثل تجاوز الحسابات ,
( اختار عد ( متميزه معرف الحساب ) من المعاملات ) - ( اختار عد ( * ) من exceeding_accounts ) مثل الحسابات غير الزائدة ;
إخراج العينة:
| تجاوز الحسابات | الحسابات غير الزائدة |
|---|---|
| 12 | 3 |
الخطوة 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 |
| ... | ... | ... | ... | ... | ... |
عينة التصور:
الخطوة 8: الاستفادة من ميزات Delta Lake
8.1 تمكين تغيير موجز البيانات
تمكين موجز بيانات التغيير في Delta Lake لتتبع التغييرات في المعاملات جدول.
كود SQL:
تغيير جدول المعاملات
جبر خصائص TBL ( الدلتا . enableChangeDataFeed = صحيح ) ;
8.2 إجراء التحديثات وتتبع التغييرات
تحديث مبالغ المعاملات بسبب التصحيحات وتتبع هذه التغييرات.
كود SQL:
-- تحديث معاملة
تحديث المعاملات
جبر مبلغ = 1300.00
أين معرف المعاملة = 'TXN1127' ;
- تحقق من الإصدار الأخير
وصف تاريخ المعاملات ;
-- تغييرات الاستعلام باستخدام موجز بيانات التغيير مع إصدار الجدول المناسب
اختار *
من table_changes ( "معاملات" , 3 )
أين معرف المعاملة = 'TXN1127' ;
8.3 تطور المخطط: إضافة عمود جديد
إضافة عمود جديد علامة الاحتيال للإبلاغ عن المعاملات الاحتيالية المشتبه بها.
كود SQL:
تغيير جدول المعاملات
جمع الاعمده ( علامة الاحتيال منطقيه التعليق "علامة تشير إلى الاحتيال المشتبه به" ) ;
8.4 تحديث المعاملات الاحتيالية
الإبلاغ عن الحركات التي تتجاوز الحد الأعلى.
كود SQL:
تحديث المعاملات
جبر علامة الاحتيال = صحيح
أين مبلغ > 95071.92 ;
8.5 السفر عبر الزمن واستعادة الطاولة
عرض تاريخ الجدول
كود SQL:
وصف تاريخ المعاملات ;
الاستعلام عن إصدار سابق
كود SQL:
اختار * من المعاملات الإصدار مثل من 3 ;
استعادة الجدول إلى إصدار سابق
كود SQL:
يستعيد جدول المعاملات ل الإصدار مثل من 3 ;
تفسير:
- السفر عبر الزمن الوصول إلى الإصدارات السابقة من البيانات للتدقيق أو الاسترداد.:
- استعادة الجدول أعد الجدول إلى حالة جيدة معروفة بعد تغييرات غير مقصودة.:
الخطوة 9: إنشاء تقارير موجزة نهائية
إنشاء تقارير تلخص الحسابات التي تتجاوز الحدود وحساب المتوسطات.
كود SQL:
خلق جدول account_exceeding_summary
استخدام الدلتا
مثل
اختار
a . معرف الحساب ,
a . عدد المعاملات ,
a . المبلغ الإجمالي ,
a . المتوسط ,
a . الحد الأدنى ,
a . ماكس ماونتم ,
حال
متى e . معرف الحساب هل لا صِفْر ثم "تجاوز الحد"
اخر "WithinLimit"
انتهاء مثل تجاوز الحالة
من
account_totals أ
يسار ينضم
exceeding_accounts ه على a . معرف الحساب = e . معرف الحساب ;
- حساب المتوسطات للحسابات الزائدة وغير الزائدة
اختار
تجاوز الحالة ,
عد ( معرف الحساب ) مثل حساب الحساب ,
متوسط ( المبلغ الإجمالي ) مثل المتوسط الإجمالي ,
متوسط ( المتوسط ) مثل متوسط مبلغ المعاملة
من
account_exceeding_summary
مجموعة ب
تجاوز الحالة ;
ميزات بحيرة دلتا المستخدمة
- جداول دلتا يتم إنشاء جميع الجداول باستخدام Delta Lake للاستفادة من معاملات ACID وفرض المخطط.:
- السفر عبر الزمن الوصول إلى الإصدارات السابقة من البيانات للتدقيق والاسترداد.:
- استعادة الجدول استعادة الجداول إلى حالة سابقة إذا لزم الأمر.:
- تغيير خلاصة البيانات تعقب التغييرات التي تطرأ على البيانات للمعالجة والتدقيق المتزايدين.:
- تطور المخطط إضافة أعمدة جديدة (
علامة الاحتيال) دون تعطيل البيانات الموجودة. - القيود والشيكات فرض تكامل البيانات من خلال تعريفات المخطط.:
- تقسيم على الرغم من عدم استخدامه بشكل صريح هنا، يدعم Delta Lake التقسيم لتحسين الأداء.:
تكامل نسب البيانات و OpenLineage
من خلال تنفيذ عمليات SQL هذه في بيئة متكاملة مع OpenLineage ، وتقوم كل عملية بإنشاء بيانات تعريف للنسب. تلتقط بيانات التعريف هذه:
- تدفق البيانات كيفية انتقال البيانات من جدول إلى آخر (على سبيل المثال، من :
المعاملاتلالشذوذ). - التحولات التحويلات المحددة المطبقة على البيانات (على سبيل المثال، إضافة:
حالة الشذوذ). - تغييرات المخطط تعديلات على مخطط الجدول (على سبيل المثال، إضافة:
علامة الاحتيالالعمود). - تعيين الإصدار التغييرات في إصدارات الجدول بسبب التحديثات والاستعادات.:
فوائد:
- شفافية فهم واضح لكيفية معالجة البيانات وتحويلها.:
- التدقيق القدرة على تتبع نسب البيانات لأغراض الامتثال والتدقيق.:
- تصحيح تحديد أسهل للمشكلات في مسارات معالجة البيانات.:
- الامثل يمكن أن تساعد الرؤى حول تدفق البيانات في تحسين الأداء.:
استنتاج
توضح حالة الاستخدام هذه كيفية إجراء الكشف عن الشذوذ المالي باستخدام Spark SQL و Delta Lake ، مع دمج الميزات الرئيسية مثل السفر عبر الزمن وتغيير موجز البيانات وتطور المخطط. من خلال التكامل مع OpenLineage ، يوفر الحل تتبعا شاملا لنسب البيانات ، مما يعزز الشفافية والامتثال.
الوجبات الجاهزة الرئيسية:
- الكشف الفعال عن الشذوذ استخدام الأساليب الإحصائية لتحديد المعاملات والحسابات التي تنحرف عن الأنماط العادية.:
- إدارة بيانات قوية الاستفادة من ميزات Delta Lake لضمان تكامل البيانات وتسهيل تغييرات المخطط وتمكين خيارات الاسترداد.:
- رؤية نسب البيانات التقاط معلومات النسب التفصيلية لدعم متطلبات التدقيق والامتثال.:
- رؤى الأعمال إنشاء التقارير والتحليلات التي توفر رؤى قيمة حول سلوكيات العملاء والمخاطر المحتملة.:
التذييل
مخطط مجموعة البيانات
مخطط جدول المعاملات:
| عمود | نوع البيانات | وصف |
|---|---|---|
| الطابع الزمني للمعاملة | الطابع الزمني | تاريخ ووقت حدوث المعاملة |
| معرف المعاملة | خيط | المعرف الفريد للمعاملة |
| معرف الحساب | خيط | المعرف الفريد للحساب المعني |
| مبلغ | عشري(18,2) | القيمة النقدية للصفقة |
| تاجر | خيط | التاجر المشارك في المعاملة |
| نوع المعاملة | خيط | نوع المعاملة (على سبيل المثال، الشراء والسحب) |
| مكان | خيط | الموقع الذي حدثت فيه المعاملة |
| علامة الاحتيال | منطقيه | علامة تشير إلى الاحتيال المشتبه به (تمت إضافته لاحقا) |
مراجع: