Configuration - Gestion des données

Cette page présente les composants de gestion des données de la solution Datachain, ainsi que leur paramétrage : les bases de données PostgreSQL (image principale et base d’authentification) et le service de cache et de files d’attente Valkey.

Les images sont paramétrables via les fichiers *.env de docker ou des variables d’environnement.

Module Postgresql Datachain - Image dc/dc_pg:18-trixie

Image PostgreSQL personnalisée basée sur postgres:18, avec initialisation des bases métier, health check, et scripts de gestion du cycle de vie.

Description de l’image

Description

Image PostgreSQL personnalisée (basée sur postgres:18), qui crée au premier démarrage les bases de données de la suite Datachain. Les bases créées sont choisies avec la variable d’environnement DATABASE_MODE : all par défaut (toutes les bases), ou une ou plusieurs valeurs séparées par des virgules, par exemple core,expose.

Valeur de DATABASE_MODE Base créée Contenu

core

adobis

Datachain Core : la configuration des pipelines de traitement (développés via l’interface de Datachain), ainsi que les paramétrages, les tâches exécutées et en cours d’exécution

expose

expose

Les données exposées à destination des consommateurs

marketplace

dc_marketplace

Datachain Marketplace

dc_console

dc_console

Console d’administration Datachain

keycloak

keycloak

Les données du SSO keycloak

dc_maestro

dc_maestro

Dc-Maestro

airflow

airflow

Airflow, utilisé par Dc-Maestro

dc_code

dc_code

DC Code

L’extension PostgreSQL unaccent est activée sur les bases adobis, expose, dc_marketplace et dc_console.

Plusieurs instances de l’image peuvent être déployées, chacune dédiée à certaines bases grâce à DATABASE_MODE (par exemple une instance pour la base expose et une autre pour la base keycloak).

Taille

~485Mo

Briques techniques

Base de donnée Postgresql native

Utilisateur

Le conteneur démarre en root pour préparer le répertoire de données (il en donne la propriété à postgres), puis PostgreSQL s’exécute avec postgres (uid 999, gid 999). Cette règle s’applique aussi à l’image dc/pg_keycloak.

Volumes

Chemin Utilité Obligatoire

/var/lib/postgresql

Stockage des données (répertoire de données PGDATA : /var/lib/postgresql/18/docker). Monter le volume sur /var/lib/postgresql permet d’utiliser pg_upgrade --link entre versions majeures de PostgreSQL

oui

Logs

Logs du module sur la sortie standard docker

Urls

Port Url Utilité

5432

/

Accès aux données depuis les autres services.

Variables d’environnement

Variable Valeur par défaut Description

DATABASE_MODE

all

Bases à créer : all, ou une ou plusieurs valeurs parmi core, marketplace, dc_console, keycloak, expose, dc_maestro, airflow, dc_code, séparées par des virgules

POSTGRES_PASSWORD

Mot de passe superutilisateur PostgreSQL (obligatoire si POSTGRES_PASSWORD_FILE non défini)

POSTGRES_PASSWORD_FILE

Chemin vers un fichier contenant le mot de passe, alternative à POSTGRES_PASSWORD (Docker secrets)

POSTGRES_USER

postgres

Utilisateur superutilisateur

POSTGRES_DB

postgres

Base par défaut

PGDATA

/var/lib/postgresql/18/docker

Répertoire des données, versionné depuis PG18 (/var/lib/postgresql/<version>/docker). Monter le volume sur /var/lib/postgresql pour permettre pg_upgrade --link entre versions majeures

PG_RESET_WAL_ON_START

false

Reset WAL au démarrage si arrêt brutal détecté. Mettre à true pour activer, ou gérer via un initContainer K8s

PG_GRACEFUL_STOP

true

Arrêt propre via pg_ctl sur SIGTERM. Mettre à false si géré par un preStop hook K8s

Connexions

Variable Valeur par défaut Paramètre PG Description

PG_MAX_CONNECTIONS

200

max_connections

Nombre maximum de connexions simultanées

Mémoire

Variable Valeur par défaut Paramètre PG Description

PG_SHARED_BUFFERS

128MB

shared_buffers

Mémoire allouée au cache partagé de PostgreSQL. Recommandé : ~25% de la RAM disponible

PG_WORK_MEM

4MB

work_mem

Mémoire par opération de tri ou de hachage. Attention : consommée par connexion × opération

PG_MAINTENANCE_WORK_MEM

64MB

maintenance_work_mem

Mémoire pour les opérations de maintenance (VACUUM, CREATE INDEX, etc.)

PG_EFFECTIVE_CACHE_SIZE

4GB

effective_cache_size

Estimation de la mémoire disponible pour le cache OS + PG. Hint pour le planner, recommandé : ~75% de la RAM

WAL

Variable Valeur par défaut Paramètre PG Description

PG_MAX_WAL_SIZE

1GB

max_wal_size

Taille maximale des fichiers WAL avant déclenchement d’un checkpoint

PG_WAL_LEVEL

replica

wal_level

Niveau de détail des WAL : minimal, replica, logical

Logging

Variable Valeur par défaut Paramètre PG Description

PG_LOG_MIN_DURATION

-1

log_min_duration_statement

Durée minimale (ms) au-delà de laquelle une requête est loguée. -1 désactive, 0 logue tout

Parallélisme

Variable Valeur par défaut Paramètre PG Description

PG_MAX_PARALLEL_WORKERS

8

max_parallel_workers

Nombre maximum de workers parallèles. À réduire en environnement contraint en CPU

Maintenance (VACUUM FULL planifié)

Variable Valeur par défaut Paramètre PG Description

PG_VACUUM_FULL_SCHEDULE

vide

pg_cron

Planification cron (ex. 0 3 * * 0) d’un VACUUM FULL sur chaque base existante. Vide : désactivé, et les jobs vacuum_full_* déjà planifiés sont supprimés au démarrage. VACUUM FULL verrouille chaque table pendant sa réécriture et exige de l’espace disque libre

PG_VACUUM_FULL_STAGGER_MIN

10

—

Minutes d’écart entre les VACUUM FULL de deux bases (ordre alphabétique : la 2e démarre à +N, la 3e à +2N…). 0 : toutes les bases à la même heure. Exige une planification avec minute et heure numériques, sinon l’écart est ignoré

Module postgres d’authentification - Image dc/pg_keycloak

Peut-être remplacée par l’image dc/pg_all.

Pas de configuration spécifique Adobis. Voir https://hub.docker.com/_/postgres

La description de cette image est identique à celle des autres images PostgreSQL : voir Description de l’image.

Cache et files d’attente - Valkey (anciennement Redis)

Description de l’image

Description

Image standard Valkey (anciennement Redis) : Assure les échanges de messages asynchrone entre les différents modules

Taille

~44Mo

Briques techniques

Application Valkey native

Utilisateur

Le conteneur démarre en root pour préparer le répertoire de données (il en donne la propriété à valkey), puis Valkey s’exécute avec valkey (uid 999, gid 1000).

Volumes

Uniquement les potentiels volumes standards de Valkey

Logs

Logs du module sur la sortie standard docker

Urls

Port Url Utilité

6379

/

Accès aux files pour les autres services.

Configuration

Pas de configuration spécifique Adobis. Voir la documentation de configuration de Valkey.

Depuis la version 9.1.0, le service Redis est remplacé par Valkey (image valkey/valkey:9.0-alpine). Voir les notes techniques de la version 9.1.0 pour la procédure de migration.

Dernière mise à jour le 2 novembre 2026 à 15:16