Retour au Blog
Data Engineering 15 novembre 2024 8 min de lecture

PostgreSQL comme feature store : patterns de conception pour les pipelines ML

Comment utiliser PostgreSQL efficacement comme feature store — vues matérialisées, partitionnement pour les séries temporelles.

Schéma du feature store

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);

Vues matérialisées pour les agrégations

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;

Stratégie de rafraîchissement

Planifiez via pg_cron toutes les 15 minutes pour des features en quasi-temps réel.

PostgreSQLFeature StoreML PipelineSQLData Engineering
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc