التحليل الجنائي الرقمي / متوسط: تحليل محلي خاص بالمواد / الدرس 7
توحيد السجلات دون فقد محاسبة الصفوف
حفظ السجلات الخام ونتائج التحليل وهوية المصدر ودلالات الحدث عند بناء جدول مقارنة.
في هذه الصفحة
أهداف الدرس
- فصل فك الصيغة عن تحقق الحقول وتعيين المعنى.
- حساب الصفوف المقبولة والمرفوضة وغير المحسومة صراحة.
فهم المصدر قبل تعيين حقوله
قد يحوي تسجيل دخول وفعل تطبيق واستلام جامع حقلي وقت ومستخدم مع اختلاف الملاحظة. ابن قاموس مصدر يحدد المعنى والأنواع وأساس المنطقة والمعرفات وسياق الاحتفاظ والفجوات. لا توحد حقول فاعلين مختلفة إلى شخص واحد دون دليل. ينتج السجل عن عملية بأخطائها ورؤيتها، وليس سجلا معصوما لكل ما حدث. البيانات صغيرة منشأة للدرس ولا تثبت شمول تسجيل حقيقي أو اكتمال حادث.
فصل فشل الصيغة عن رفض الحقل
قد يصح JSON لسطر ويفقد معرف حدث أو يضع نوعا خاطئا. يفصل البرنامج عطب الصيغة والحقل الغائب ويحفظ أرقام الأسطر ولا يحذف صفا بصمت. إنه محلل ضيق لثلاثة أسطر معلنة لا نظام إدخال سجلات عام. تحتاج المدخلات الحقيقية حدود حجم وتداخل وترميزا ومفاتيح مكررة وقواعد مصدر مراجعة. احفظ الأصل أو مرجعه المقيد مع الصف الموحد كي يراجع المحلل كيفية إنتاج التفسير.
import json
lines = ['{"event":"e1","kind":"write"}', '{"kind":"write"}', '{broken']
results = []
for number, raw in enumerate(lines, 1):
try:
value = json.loads(raw)
except json.JSONDecodeError:
results.append((number, "INVALID_JSON"))
continue
results.append((number, "ACCEPTED" if isinstance(value, dict) and isinstance(value.get("event"), str) else "MISSING_EVENT"))
assert results == [(1,"ACCEPTED"),(2,"MISSING_EVENT"),(3,"INVALID_JSON")]
print("three input rows accounted for")
three input rows accounted for
يحلل البرنامج الكامل سلاسل ثابتة ويحفظ النتائج الثلاث. لا يقرأ ملف سجل أو خدمة ولا يجمع مصدرا. يعالج السلسلة المعطوبة المقصودة داخليا ولا ينفذ محتواها.
التوحيد بتعيينات صريحة وأصول محفوظة
يستخدم الجدول الموحد أسماء ثابتة ويحفظ معنى المصدر. يعين البرنامج سجلا معلوما إلى event_id و action و source ويبقي الأصل دون تغيير، ولا يستنتج إنسانا أو يحول وقتا. قد يمثل user حسابا أو هوية خدمة أو قيمة مدعاة؛ فاحفظ الفرق. سجل إصدار المحلل والتعيين في الاشتقاق. أبق النوع المجهول بفئة غير محسومة بدلا من إجباره على أقرب فعل مألوف.
raw = {"event":"e7", "operation":"record-write", "actor":"service-lab"}
normalized = {"event_id":raw["event"], "action":raw["operation"], "source":"lab-application"}
assert normalized == {"event_id":"e7", "action":"record-write", "source":"lab-application"}
assert raw["actor"] == "service-lab"
assert "person" not in normalized
print("explicit source mapping preserved")
explicit source mapping preserved
ينشئ البرنامج الكامل قاموسا مشتقا من سجل مختلق واحد. يوضح التعيين المختار فقط، ولا يدعي دلالة حقول تطبيق فعلي أو أصالة السجل أو نسبة الفاعل.
مطابقة أعداد المدخلات والمخرجات
قبل تفسير الأعداد طابق الإجمالي مع المقبول والمرفوض والمكرر والمجهول وفق السياسة. قد تصح إزالة تكرار تسليم واحد، لكن لا تدمج حدثين مختلفين متطابقي النص عرضيا. استخدم المصدر والمعرف بنطاق فرادتهما. أبق مرجعا مقيدا معتمدا للمرفوض، ووضح أثره المحتمل. قد يغير إخفاء نسبة من المدخل كضجيج محلل التسلسل أو تكرار الفعل ظاهريا.
فحص الجدول قبل ادعاءات الحادث
قارن صفوفا مختارة بالأصل الدقيق وتوقعات مستقلة. أدرج السليم والمعطوب وناقص الحقل ومجهول النوع والتسليم المكرر عند الحاجة، ووثق غير المدعوم. يعني النجاح إكمال الفحوص المحددة ولا يثبت توفر كل السجلات أو عدم وقوع حدث. احفظ التحويل وحساب الصفوف والخصوصية في التقرير، ليعاد الربط دون تقديم تمرين مختلق كتحقيق فعلي.
الأخطاء الشائعة وإصلاحها
تختفي الصفوف المعطوبة بصمت
- لماذا يحدث؟
- يعتبر الفشل غير مهم.
- كيف تصلحه؟
- احفظ الفئات وطابق كل صف.
- كيف تتجنب تكراره؟
- اختبر المحاسبة مع الاستخراج.
تصير حقول المستخدم شخصا واحدا
- لماذا يحدث؟
- يختلق التوحيد علاقة هوية.
- كيف تصلحه؟
- احفظ المعنى واطلب دليل هوية مستقلا.
- كيف تتجنب تكراره؟
- استخدم قاموس حقول موثقا.
يزال تكرار النص المتطابق دائما
- لماذا يحدث؟
- يخلط الحدث بتكرار التسليم.
- كيف تصلحه؟
- طبق نطاق المعرف واحفظ الحدث المختلف.
- كيف تتجنب تكراره؟
- راجع الأعداد قبل وبعد الإزالة.
اختبر فهمك
1. أنتج مئة صف تسعين صفا موحدا. ماذا يفسر؟
اعرض الحل المشروح
صنف العشرة الباقية إلى فشل صيغة أو نوع غير مدعوم أو تسليم مكرر وفق السياسة. احفظ المراجع وقيم أثر الحذف. لا تقل إن مجموع الأحداث تسعون لأن التحليل أبقى تسعين.
2. لماذا يحفظ اسم المصدر في الصف الموحد؟
اعرض الحل المشروح
قد يخص معنى الحقول وفرادة المعرف المصدر. يفصل الاسم معرفات متساوية من أنظمة مختلفة ويتيح تتبع التعيين وافتراض الوقت. يدعم مصدر المشتق ولا يثبت أصالة المصدر الأصلي.
أهم ما تعلمته
- يحفظ التوحيد دلالات المصدر ومراجع الأصل.
- يحتاج كل صف نتيجة محسوبة.
- لا يثبت الجدول المحلل اكتمال المصدر.