الوحدة 2 — تشريح مخزن المتغيّرات
قبل الحديث عن Feast أو Tecton أو Databricks Feature Store، من المفيد رؤية المكوّنات المُشترَكة بينها كلّها. مخزن المتغيّرات ليس منتجًا محدّدًا بل نمط بنية، وأدواته المختلفة تختار تجسيدات مختلفة للمكوّنات نفسها. نُعدّها هنا واحدًا واحدًا، مرتبطةً بمشروع تسجيل الاحتيال الذي يعبر الدورة.
السجلّ: الحقيقة الوصفيّة الوحيدة
في قلب أيّ مخزن يوجد السجلّ (registry). ملفّ أو قاعدة بيانات صغيرة تصف: ما هي الكيانات؟ ما هي المصادر؟ ما هي وصفات المتغيّرات؟ من يملكها؟ متى عُدِّلت آخر مرّة؟ ما نسختها الحاليّة؟
السجلّ هو ما يُنسَخ إلى Git ويُراجَع في الطلبات. غيابه يعني أنّ التعريفات موجودة في دفاتر متناثرة أو في رؤوس الأشخاص، وحينها تفشل عمليًّا كلّ الحوكمة المُترتّبة: الاكتشاف، والإصدار، وتحمّل المسؤوليّة.
في Feast يقع السجلّ في ملفّ registry.db (بروتوبوف) أو في PostgreSQL؛ في Tecton يقع في بنيته المركزيّة؛ في Databricks في Unity Catalog. المبدأ واحد.
الكيانات: عمّن نتكلّم؟
الكيان (entity) هو محور الأعمال الذي يوصف المتغيّر تجاهه. في مشروعنا، الكيانات الطبيعيّة ثلاثة:
customerبمعرّفcustomer_idmerchantبمعرّفmerchant_idcardبمعرّفcard_binلأوّل ستّة أرقام من البطاقة (لأسباب امتثاليّة، لا نُخزّن الرقم كاملًا)
هذه الكيانات هي مفاتيح البحث في وقت الاستدلال. يستقبل النموذج معاملة، ويُخرج منها المعرّفات الثلاثة، ثمّ يسأل المخزن: «أعطني آخر متغيّرات هذه الكيانات». دون كيانات مصرَّحة، ل ا وجود لواجهة استدعاء نظيفة.
وصفة المتغيّر: العقد
وصفة المتغيّر (feature view) هي الوحدة الأساسيّة للإعلان. تجمع:
- كيانًا واحدًا أو أكثر تُوصف عليه
- مصدرًا يُغذّي القيم
- قائمة متغيّرات بأنواعها (Int64, Float32, String…)
- مُدّة صلاحيّة (TTL) بعدها تصبح القيمة مُنتهية
- مالكًا ووسمًا للإدارة
مثال (تركيبيّ، سنكتبه فعليًّا في الوحدة 7):
customer_counters = FeatureView(
name="customer_counters",
entities=[customer],
ttl=timedelta(days=7),
schema=[
Field(name="count_1h", dtype=Int64),
Field(name="count_24h", dtype=Int64),
Field(name="count_7d", dtype=Int64),
Field(name="avg_amount_7d", dtype=Float32),
],
source=transactions_stream,
owner="fraud-team@example.com",
)
ما يهمّ في هذه الوصفة أنّها العقد: كلّ مستهلك يعرف بالضبط ما سيصله، ولا شيء آخر.