¿Qué es Atlas Data Federation?
Describirá la arquitectura de Data Federation, los tipos de fuentes de datos compatibles y el motor de consultas que las unifica.
¿Qué es Atlas Data Federation? es una lección gratuita de MongoDB Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de MongoDB Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de MongoDB Academy incluye 4 lecciones en total.
El problema: los datos están en todas partes
Las aplicaciones modernas generan datos en varios sistemas: datos operativos activos en MongoDB Atlas, archivos históricos en Amazon S3 y exportaciones analíticas en lagos de datos. Consultar estos silos de forma conjunta suele requerir pipelines de datos, trabajos de ETL y motores de consulta independientes. Atlas Data Federation resuelve este problema al permitirle consultar todas estas fuentes mediante una única conexión de MongoDB y el conocido pipeline de agregación.
¿Qué es Atlas Data Federation?
Atlas Data Federation es un motor de consultas totalmente administrado integrado en MongoDB Atlas. Crea una instancia de base de datos federada: una implementación virtual de MongoDB que asigna datos de varias fuentes (clústeres de Atlas, buckets de S3, Atlas Data Lake y endpoints HTTP) a colecciones virtuales. Se conecta mediante una cadena de conexión estándar de MongoDB y utiliza el mismo pipeline de agregación que ya conoce.
// Connect to a federated database instance
// The URI looks like a regular Atlas connection string
// mongodb://...@data.mongodb-api.com/federated
const client = new MongoClient(
'mongodb+srv://federated-instance.mongodb.net/myFederatedDB'
)Fuentes de datos compatibles
Atlas Data Federation puede consultar: clústeres de Atlas: colecciones activas de MongoDB. Amazon S3: archivos JSON, BSON, CSV, TSV, Avro, ORC y Parquet almacenados en buckets de S3. Atlas Data Lake: conjuntos de datos procesados y enriquecidos. Endpoints HTTP/HTTPS: API REST externas que devuelven JSON. Todas las fuentes se asignan a espacios de nombres virtuales dentro de la instancia federada.
Arquitectura de la base de datos federada
Una base de datos federada tiene tres capas: Configuración de almacenamiento: define qué fuentes se asignan a qué bases de datos y colecciones virtuales. Motor de consultas: el procesador distribuido de SQL/MQL que lee de varias fuentes, aplica las etapas del pipeline y combina los resultados. Capa de conexión: un endpoint compatible con mongos al que se conecta mediante cualquier controlador de MongoDB o mongosh.
// Storage configuration (simplified JSON structure)
{
'databases': [{
'name': 'analytics',
'collections': [{
'name': 'orders_archive',
'dataSources': [{
'storeName': 's3Store',
'path': '/data/orders/2024/'
}]
}]
}]
}Creación de una instancia de base de datos federada
Puede crear una instancia de base de datos federada mediante la interfaz de Atlas, Atlas Admin API o Atlas CLI. Durante la configuración: 1) Asigne un nombre a la instancia. 2) Añada stores (buckets de S3 con credenciales de IAM, clústeres de Atlas, etc.). 3) Defina las bases de datos y colecciones virtuales que apuntan a esos stores. 4) Copie la cadena de conexión y conéctese mediante su controlador de MongoDB.
// Using Atlas CLI to create a data federation instance
// atlas dataFederation create myFederation --region US_EAST_1
// Then add a store via Atlas UI or API
// POST /api/atlas/v1.0/groups/{groupId}/dataFederation/{name}/dataStores
// { 'name': 's3Store', 'provider': 'S3', 'region': 'us-east-1', 'bucket': 'my-data' }Espacios de nombres virtuales: colecciones sin esquemas
Las colecciones virtuales de una base de datos federada no almacenan datos: son vistas lógicas sobre los archivos o colecciones de la fuente subyacente. Puede consultar una colección virtual llamada analytics.orders que en realidad lee archivos Parquet de S3 ubicados en s3://my-bucket/orders/2024/. Para los controladores y las herramientas de MongoDB, la colección virtual tiene el mismo aspecto y comportamiento que una colección normal de MongoDB.
// Query a virtual collection backed by S3 files
const ordersArchive = db.collection('orders_archive')
const result = await ordersArchive.aggregate([
{ $match: { year: 2024, region: 'EU' } },
{ $group: { _id: '$category', total: { $sum: '$revenue' } } },
{ $sort: { total: -1 } }
]).toArray()Combinaciones entre fuentes con $lookup
Una de las funciones más potentes es combinar una colección activa de Atlas con datos históricos de S3 en un único pipeline. Por ejemplo, puede buscar los detalles de clientes activos en un clúster de Atlas activo y combinarlos con su historial de compras de tres años almacenado en archivos Parquet de S3, todo en una sola agregación y sin necesidad de un trabajo de ETL.
// Join live Atlas collection with S3 archive
db.customers.aggregate([
{ $match: { tier: 'platinum' } }, // live Atlas
{ $lookup: {
from: 'orders_archive', // virtual S3-backed collection
localField: '_id',
foreignField: 'customerId',
as: 'purchaseHistory'
}},
{ $project: { name: 1, tier: 1,
totalOrders: { $size: '$purchaseHistory' } } }
])Compatibilidad con formatos de archivo en S3
Data Federation lee archivos de S3 en muchos formatos: JSON (un documento por línea o un array), BSON (formato binario nativo de MongoDB), CSV/TSV (con una fila de encabezado), Avro, ORC y Parquet (formatos columnares muy utilizados en los lagos de datos). En los formatos columnares, Data Federation puede trasladar la proyección y los predicados de filtro al lector de archivos para acelerar aún más los recorridos.
// In storage config, specify file format per path
{
'dataSources': [{
'storeName': 's3Store',
'path': '/analytics/events/{year string}/{month string}/',
'defaultFormat': '.parquet'
}]
}Modelo de costes: precios basados en consultas
Atlas Data Federation cobra en función de los datos procesados (bytes explorados), no del tiempo de actividad. Esto lo hace rentable para consultas analíticas poco frecuentes sobre grandes archivos históricos de S3: no paga nada cuando no se ejecutan consultas. Sin embargo, explorar conjuntos de datos de S3 completos y sin particionar puede resultar costoso. Particionar los datos de S3 y utilizar proyecciones para reducir los bytes explorados es fundamental para controlar los costes.
Seguridad: autenticación y red
Las instancias de bases de datos federadas utilizan los mismos usuarios y roles de base de datos de Atlas que los clústeres normales de Atlas. Puede aplicar el peering de red de Atlas, endpoints privados (AWS PrivateLink) y listas de acceso IP para restringir quién puede conectarse. La conexión con S3 utiliza roles de IAM en lugar de almacenar directamente las claves de AWS, de acuerdo con las prácticas recomendadas de seguridad de AWS.
Cuándo utilizar Atlas Data Federation
Data Federation es una buena opción cuando: 1) Necesita ejecutar consultas ad hoc en archivos históricos de S3 sin cargar los datos en un clúster activo. 2) Desea combinar datos transaccionales activos con datos históricos en una sola consulta. 3) Necesita una interfaz de análisis unificada para varios clústeres de Atlas. 4) Desea evitar crear y mantener un pipeline de ETL independiente para cada caso de uso analítico.
Comprobación rápida
Compruebe sus conocimientos sobre los conceptos de MongoDB y bases de datos NoSQL de esta lección.
Resumen de la lección
En esta lección ha aprendido que: Atlas Data Federation crea un espacio de nombres virtual de MongoDB sobre S3, clústeres de Atlas y otras fuentes; puede utilizar el pipeline de agregación estándar para consultar y combinar datos de todas las fuentes en una sola operación; y los costes se basan en los bytes explorados, por lo que la partición y la proyección son esenciales para controlar los costes. A continuación, asignaremos fuentes de S3 y Atlas a espacios de nombres virtuales.
Aprende JavaScript con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «¿Qué es Atlas Data Federation?» es gratis?
Sí — el texto completo de «¿Qué es Atlas Data Federation?» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de MongoDB Academy, actualiza a CoddyKit PRO. El curso de MongoDB Academy incluye 4 lecciones en total.
¿Qué aprenderé en «¿Qué es Atlas Data Federation?»?
Describirá la arquitectura de Data Federation, los tipos de fuentes de datos compatibles y el motor de consultas que las unifica. Practicas MongoDB Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar MongoDB Academy?
No se requiere experiencia previa. MongoDB Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «¿Qué es Atlas Data Federation?»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de MongoDB Academy?
Sí. Cada lección de MongoDB Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- ¿Qué es Atlas Data Federation?
- Asignación de fuentes de S3 y Atlas a un espacio de nombres virtual
- Ejecución de pipelines de agregación entre fuentes
- Partición de datos de S3 para mejorar el rendimiento de las consultas