Wasabi S3 — État du stockage partagé
Public : Emmanuel, Charles-Albert, Wissal. But : répondre en quelques secondes aux trois questions que tout membre de l'équipe se pose la première fois qu'il veut lire une donnée.
Les trois questions
| Question | Réponse | Détails |
|---|---|---|
| Qu'est-ce qu'il y a dessus, maintenant ? | Snapshot | state.md |
| Comment ça y est arrivé, et quand ? | Journal | sync-history.md |
| Comment c'est rangé, où je clique pour lire ? | Carte | state.md § Arborescence |
Contexte
Wasabi a été choisi comme provider S3 partagé pour les données de
MaQI parce qu'il offre un coût d'egress nul (cf. ../cal/tech-solutions.md).
Un bucket maqi existe pour les tests de connexion, et un bucket
par dataset primaire existe pour les données brutes — chaque bucket
contient la copie fidèle des données livrées par le vendor, sans
transformation.
flowchart LR
subgraph vendor["Vendors"]
GDELT
Databento
RavenPack
CausalityLink
SPGlobal["S&P Global<br>(SFTP)"]
end
subgraph disk["Disque externe"]
seagate[Seagate]
end
subgraph local["Mac (Emmanuel)"]
backup["~/MaQI - data/"]
end
subgraph wasabi["Wasabi S3 eu-central-1"]
B0["maqi<br>(tests)"]
B1["maqi-gdelt"]
B2["maqi-causalitylink"]
B3["maqi-ravenpack"]
B4["maqi-databento"]
B5["maqi-spglobal<br>(stream partiel)"]
end
GDELT --> seagate
Databento --> seagate
RavenPack --> seagate
CausalityLink --> seagate
seagate -->|rsync| backup
backup -->|rclone sync| B1
backup -->|rclone sync| B2
backup -->|rclone sync| B3
backup -->|rclone sync| B4
SPGlobal -->|rclone copy<br>streaming direct| B5
style vendor fill:#eef,stroke:#448
style disk fill:#fed,stroke:#c60
style local fill:#ffd,stroke:#cc0
style wasabi fill:#ddf,stroke:#008
Endpoint
| Champ | Valeur |
|---|---|
| Provider | Wasabi |
| Région | eu-central-1 |
| Endpoint | s3.eu-central-1.wasabisys.com |
| ACL | private |
Remote rclone | wasabi (voir ~/.config/rclone/rclone.conf) |
Remote rclone (alias public) | maqi (voir ../../rclone.conf.example) |
Buckets
Source canonique des tailles :
state.md(généré parscripts/wasabi-state.sh).
| Bucket | Rôle | Taille | Objets |
|---|---|---|---|
maqi | Tests de connexion | 21 KiB | 2 |
maqi-gdelt | Événements GDELT 1979-2025 | 47.8 GiB | 4 658 |
maqi-causalitylink | Snapshot CausalityLink 2021-08-13 | 186.9 GiB | 21 860 |
maqi-ravenpack | RavenPack Edge NEWS 2011-2025 | 249.2 GiB | 14 |
maqi-databento | Order book NASDAQ 2018-2025 | 1.430 TiB | 3 042 |
maqi-spglobal | S&P Global Xpressfeed — PREVIEW, stream en cours (cible ~3.75 TiB) | 10.5 MiB | 6 (sur 15 530 attendus) |
Les totaux ci-dessus correspondent au snapshot 2026-04-14. Pour rafraîchir, lancer
scripts/wasabi-state.shet committer la diff.
Accès
Trois chemins d'accès supportés :
-
rclone— CLI, idempotent, reprend un transfert interrompu.rclone ls wasabi:maqi-gdelt rclone size wasabi:maqi-ravenpack rclone check wasabi:maqi-gdelt /local/gdelt - Python (
s3fs/polars) — pour notebooks et scripts. Voir../colab-setup.mdet../../notebooks/maqi-data-demo.ipynb. - Client S3 standard (
boto3,awscli --endpoint-url …) — pour tout ce qui parle le protocole S3.
Règles
- Pas de redistribution. Wasabi sert de zone partagée lecture seule
pour l'enseignement et la recherche au sein du master MaQI. Aucun
fichier n'est republié hors de ce bucket (cf.
../cal/tech-solutions.md). - Pas de mutation en place. Les données sont uploadées telles quelles depuis le disque source. Les transformations / features vivent ailleurs (cache local, produits dérivés versionnés).
- Un bucket par dataset primaire. Le découpage par bucket reflète le découpage par contrat et par vendor, pour pouvoir révoquer un accès atomiquement si nécessaire.
- Idempotence d'abord. Toutes les commandes de sync et d'état sont conçues pour pouvoir être relancées sans effet de bord.