العودة إلى المدونة
Data Engineering 15 نونبر 2024 8 min للقراءة

PostgreSQL كمخزن للميزات: أنماط تصميم لخطوط أنابيب تعلم الآلة

كيفية استخدام PostgreSQL كمخزن للميزات — مشاهدات مجسدة للتجميعات، والتقسيم للسلاسل الزمنية.

مخطط مخزن الميزات

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 دقيقة للحصول على ميزات شبه فورية.

PostgreSQLFeature StoreML PipelineSQLData Engineering
O

Ossama Elhakki

مهندس ذكاء اصطناعي وأنظمة ML — المغرب