مخطط مخزن الميزات
CREATE TABLE features (
entity_id BIGINT,
feature_name VARCHAR(100),
feature_value FLOAT,
computed_at TIMESTAMPTZ,
PRIMARY KEY (entity_id, feature_name, computed_at)
) PARTITION BY RANGE (computed_at);
المشاهدات المجسّدة للتجميعات
CREATE MATERIALIZED VIEW user_stats AS
SELECT
user_id,
COUNT(*) as txn_count,
AVG(amount) as avg_amount,
STDDEV(amount) as std_amount,
MAX(txn_at) as last_txn_at
FROM transactions
GROUP BY user_id;
CREATE UNIQUE INDEX ON user_stats(user_id);
REFRESH MATERIALIZED VIEW CONCURRENTLY user_stats;
استراتيجية التحديث
جدوِل عبر pg_cron كل 15 دقيقة للحصول على ميزات شبه فورية.