Mapper des sources S3 et Atlas vers un espace de noms virtuel
Les apprenants configureront une instance de base de données fédérée qui mappe des préfixes S3 et des collections Atlas vers des bases de données et des collections virtuelles.
Mapper des sources S3 et Atlas vers un espace de noms virtuel est une leçon MongoDB Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage MongoDB Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours MongoDB Academy comprend 4 leçons au total.
Configuration du stockage : le concept central
Dans Atlas Data Federation, la configuration du stockage est un document JSON qui définit deux éléments : les magasins (l’emplacement des données brutes — compartiments S3 et clusters Atlas) et les bases de données/collections (l’espace de noms virtuel interrogé par les applications). L’association entre ces éléments indique au moteur de requêtes quel magasin lire lorsque vous interrogez une collection virtuelle.
Définir un magasin : compartiment S3
La définition d’un magasin S3 nomme le magasin, indique la région AWS et le nom du compartiment, puis l’associe à des identifiants IAM (par l’intermédiaire d’un rôle d’accès du fournisseur cloud Atlas). Vous pouvez également définir un delimiter et un prefix afin de limiter la portée du magasin à un préfixe S3 particulier. Une même instance fédérée peut comporter plusieurs magasins pointant vers différents compartiments ou régions.
// S3 store definition in storage config
{
'stores': [{
'name': 's3ArchiveStore',
'provider': 'S3',
'region': 'us-east-1',
'bucket': 'mycompany-analytics-archive',
'delimiter': '/',
'additionalStorageClasses': ['STANDARD_IA', 'GLACIER']
}]
}Définir un magasin : cluster Atlas
Un magasin de cluster Atlas connecte une instance fédérée à un jeu de réplicas Atlas actif. Vous le référencez à l’aide du nom du cluster au sein du même projet Atlas. Vous pouvez ainsi écrire des chaînes de traitement qui lisent les collections opérationnelles actives du cluster en parallèle de données S3 archivées, ce qui permet d’effectuer des requêtes hybrides sans aucune duplication de données.
// Atlas cluster store definition
{
'stores': [{
'name': 'liveClusterStore',
'provider': 'atlas',
'clusterName': 'MyProdCluster',
'projectId': 'proj123abc'
}]
}Associer des collections à des chemins S3
Une collection virtuelle est associée à un magasin et à un modèle de chemin. Le chemin est un modèle global qui indique à Data Federation quels objets S3 appartiennent à cette collection. Le modèle peut inclure des segments de chemin littéraux ou des caractères génériques. Le moteur de requêtes analyse tous les objets correspondants lorsque la collection est interrogée.
// Map virtual collection to S3 path pattern
{
'databases': [{
'name': 'analytics',
'collections': [{
'name': 'events_2024',
'dataSources': [{
'storeName': 's3ArchiveStore',
'path': '/data/events/2024/*'
}]
}]
}]
}Attributs de partition dans les chemins
Les attributs de partition encodent les métadonnées directement dans le chemin S3 à l’aide de la syntaxe avec accolades : {year int}/{month int}/{day int}/. Lorsqu’une requête filtre sur year, month ou day, Data Federation élimine — ignore — tous les objets S3 dont le chemin ne correspond pas aux valeurs du filtre. Ce mécanisme est comparable au partitionnement Hive et réduit considérablement le nombre d’octets analysés.
// Path with partition attributes (Data Federation parses the directory structure)
{
'dataSources': [{
'storeName': 's3ArchiveStore',
'path': '/events/{year int}/{month int}/{day int}/*.json'
}]
}
// Query that uses partition pruning:
db.events.find({ year: 2025, month: 3 })
// Data Federation only reads /events/2025/3/ prefixAssocier plusieurs sources à une seule collection
Une même collection virtuelle peut être associée à plusieurs sources de données — par exemple, une archive S3 et une collection Atlas active. Les requêtes fusionnent les résultats de toutes les sources de manière transparente. Cette approche est utile pour une collection d’« historique complet » dont les données récentes se trouvent dans Atlas et les données plus anciennes dans S3, tandis que les applications interrogent les deux par l’intermédiaire d’un seul espace de noms.
{
'collections': [{
'name': 'orders',
'dataSources': [
{
'storeName': 'liveClusterStore',
'database': 'mydb',
'collection': 'orders' // live Atlas data
},
{
'storeName': 's3ArchiveStore',
'path': '/orders/archive/*.parquet' // S3 archive
}
]
}]
}Collections à caractères génériques : schéma à la lecture
Vous pouvez définir une collection générique (*) qui associe tous les fichiers d’un préfixe S3 à des collections virtuelles nommées dynamiquement. Lorsque vous interrogez un nom de collection correspondant au motif générique, Data Federation déduit le chemin à partir du nom de la collection. Cette approche est utile pour les lacs de données partitionnés contenant des milliers de « tables » fondées sur des préfixes, qu’il est impossible d’énumérer entièrement dans la configuration.
// Wildcard: each year-month subdirectory becomes a virtual collection
{
'collections': [{
'name': '*',
'dataSources': [{
'storeName': 's3ArchiveStore',
'path': '/data/{collectionName string}/'
}]
}]
}
// Now query any 'table' by name:
db['orders-2024-01'].find({})
db['events-2025-03'].aggregate([...])Mise à jour de la configuration du stockage
Vous pouvez mettre à jour la configuration du stockage à tout moment via l’interface utilisateur Atlas, l’API d’administration Atlas ou mongosh. Les modifications prennent effet immédiatement : vous n’avez pas besoin de redémarrer l’instance fédérée. Vous pouvez ainsi ajouter de nouveaux chemins S3, associer des collections à d’autres magasins ou ajouter de nouvelles sources de clusters Atlas sans aucune interruption de service.
// Update storage config via Admin API
// PATCH /api/atlas/v1.0/groups/{groupId}/dataFederation/{name}
// Body: updated storage config JSON
// Or via mongosh using the Atlas admin command
db.adminCommand({
setQueryableEncryptionBackend: 1,
dataFederationConfig: { /* new config */ }
})Test de votre mappage
Après avoir défini la configuration du stockage, testez-la en vous connectant à l’instance fédérée avec mongosh et en listant les bases de données et les collections. Utilisez show dbs, show collections et un simple find() pour vérifier que le mappage est correct. Vérifiez que les bons fichiers sont lus en examinant les premiers documents renvoyés.
// Connect to federated instance and test
// mongosh 'mongodb+srv://federated.mongodb.net/'
show dbs // lists virtual databases
use analytics
show collections // lists virtual collections
db.events_2024.findOne()
// Verify the document shape matches your S3 filesRôle IAM ou authentification par clé d’accès pour S3
Atlas Data Federation accède à S3 via AWS IAM. L’approche recommandée consiste à utiliser un rôle IAM délégué au compte AWS d’Atlas (accès au fournisseur cloud Atlas), plutôt qu’à stocker des paires de clés d’accès et de clés secrètes. Le rôle reçoit un accès en lecture au compartiment S3 via une stratégie IAM, puis Atlas assume ce rôle lors de l’exécution des requêtes. Cette méthode est plus sécurisée que des clés d’accès à longue durée de validité.
// Minimal S3 IAM policy for Data Federation read access
// {
// 'Version': '2012-10-17',
// 'Statement': [{
// 'Effect': 'Allow',
// 'Action': ['s3:GetObject', 's3:ListBucket'],
// 'Resource': [
// 'arn:aws:s3:::mycompany-analytics-archive',
// 'arn:aws:s3:::mycompany-analytics-archive/*'
// ]
// }]
// }Alias d’espaces de noms et vues multiples
Vous pouvez créer plusieurs collections virtuelles qui pointent vers le même préfixe S3 sous-jacent, avec des motifs de chemin différents, ce qui revient à créer plusieurs vues des mêmes données. Par exemple, une collection peut exposer toutes les données, une autre uniquement la partition de l’année en cours, et une troisième uniquement les fichiers Parquet en excluant les fichiers JSON. Vous pouvez ainsi contrôler ce que voit chaque niveau de votre application.
Vérification rapide
Vérifiez votre compréhension des concepts MongoDB et des bases de données NoSQL présentés dans cette leçon.
Récapitulatif de la leçon
Dans cette leçon, vous avez appris que les magasins définissent l’emplacement des données brutes (compartiments S3 ou clusters Atlas), tandis que les bases de données et collections virtuelles définissent l’espace de noms interrogé par les applications, que les attributs de partition dans les chemins S3 permettent l’élagage et réduisent considérablement le nombre d’octets analysés, et qu’une seule collection virtuelle peut fusionner simultanément des données provenant de plusieurs magasins. Nous allons maintenant écrire des pipelines d’agrégation intersources.
Apprends JavaScript avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Mapper des sources S3 et Atlas vers un espace de noms virtuel » est-elle gratuite ?
Oui — le texte complet de « Mapper des sources S3 et Atlas vers un espace de noms virtuel » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours MongoDB Academy, passe à CoddyKit PRO. Le cours MongoDB Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Mapper des sources S3 et Atlas vers un espace de noms virtuel » ?
Les apprenants configureront une instance de base de données fédérée qui mappe des préfixes S3 et des collections Atlas vers des bases de données et des collections virtuelles. Tu pratiques MongoDB Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer MongoDB Academy ?
Aucune expérience préalable n'est requise. MongoDB Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Mapper des sources S3 et Atlas vers un espace de noms virtuel » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon MongoDB Academy ?
Oui. Chaque leçon MongoDB Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Qu’est-ce qu’Atlas Data Federation ?
- Mapper des sources S3 et Atlas vers un espace de noms virtuel
- Exécuter des chaînes de traitement d’agrégation entre sources
- Partitionner les données S3 pour améliorer les performances des requêtes