Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:
Azure Data Factory
Azure Synapse Analytics
Sugerencia
Data Factory en Microsoft Fabric es la próxima generación de Azure Data Factory, con una arquitectura más sencilla, inteligencia artificial integrada y nuevas características. Si no está familiarizado con la integración de datos, comience con Fabric Data Factory. Las cargas de trabajo de ADF existentes pueden actualizarse a Fabric para acceder a nuevas funcionalidades en ciencia de datos, análisis en tiempo real e informes.
Este artículo explica cómo utilizar la Actividad de Copia en las canalizaciones de Azure Data Factory y Synapse Analytics para copiar datos desde y hacia una base de datos MongoDB. El documento se basa en el artículo de introducción a la actividad de copia que describe información general de la actividad de copia.
Nota:
Este conector también está disponible en Data Factory en Microsoft Fabric. Para obtener información sobre la configuración y las características específicas de Fabric, consulte la documentación del conector de MongoDB para Fabric.
Importante
El nuevo conector de MongoDB proporciona compatibilidad nativa mejorada con MongoDB. Si usas el conector heredado de MongoDB en tu solución, que solo se admite tal cual para mantener la compatibilidad con versiones anteriores, consulta Conector de MongoDB (heredado). Puedes usar este conector para copiar datos desde y hacia un Azure DocumentDB (con compatibilidad con MongoDB).
Funcionalidades admitidas
Este conector MongoDB soporta las siguientes capacidades:
| Funcionalidades admitidas | IR |
|---|---|
| Actividad de copia (origen/receptor) | 1 2 |
① Azure Integration Runtime ② Entorno de ejecución de integración autohospedado
Para una lista de almacenes de datos soportados como fuentes y sumideros, consulte la tabla de almacenes de datos soportados .
En concreto, este conector de MongoDB admite hasta la versión 4.2. Si el trabajo requiere versiones posteriores a la 4.2, considere la posibilidad de usar MongoDB Atlas con el conector de Atlas de MongoDB, que proporciona compatibilidad y características más completas.
Requisitos previos
Si el almacén de datos se encuentra dentro de una red local, una red virtual Azure o una nube privada virtual de Amazon, debe configurar un entorno de ejecución de integración autohospedado para conectarse a él.
Si el almacén de datos es un servicio de datos en la nube administrado, puede usar el Azure Integration Runtime. Si el acceso está restringido a direcciones IP aprobadas en las reglas del firewall, puede agregar las direcciones IP de Azure Integration Runtime a la lista de autorizados.
También puede usar la funcionalidad runtime de integración de red virtual administrada en Azure Data Factory para acceder a la red local sin instalar ni configurar un runtime de integración autohospedado.
Consulte Estrategias de acceso a datos para más información sobre los mecanismos de seguridad de red y las opciones que admite Data Factory.
Introducción
Para realizar la actividad de copia con una canalización, puede usar una de las siguientes herramientas o SDK:
- Herramienta Copiar datos
- Azure Portal
- SDK de .NET
- SDK de Python
- Azure PowerShell
- REST API
- plantilla Azure Resource Manager
Crea un servicio vinculado a MongoDB usando la interfaz de usuario
Siga estos pasos para crear un servicio vinculado a MongoDB en la interfaz de usuario del portal de Azure.
Navega a la pestaña Gestionar en tu espacio de trabajo de Azure Data Factory o Synapse y selecciona Servicios Vinculados. Luego selecciona Nuevo:
Busque MongoDB y seleccione el conector de MongoDB.
Configure los detalles del servicio, pruebe la conexión y cree el servicio vinculado.
Detalles de configuración del conector
Las secciones siguientes proporcionan detalles sobre las propiedades que se usan para definir entidades de Data Factory específicas del conector MongoDB.
Propiedades del servicio vinculado
La siguiente tabla enumera las propiedades soportadas para un servicio enlazado de MongoDB:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
| type | Establece la propiedad de tipo en: MongoDbV2 | Sí |
| connectionString | Especifique la cadena de conexión de MongoDB, como mongodb://[username:password@]host[:port][/[database][?options]]. Para más detalles, consulte el manual de MongoDB sobre cadena de conexión.También puede colocar una cadena de conexión en Azure Key Vault. Para más detalles, consulta Almacenar credenciales en Azure Key Vault. |
Sí |
| database | Nombre de la base de datos a la que desea acceder. | Sí |
| connectVia | Instancia de Integration Runtime que se usará para conectarse al almacén de datos. Para más información, consulte la sección Requisitos previos. Si no especificas esta propiedad, se usa la Azure Integration Runtime predeterminada. | No |
Ejemplo:
{
"name": "MongoDBLinkedService",
"properties": {
"type": "MongoDbV2",
"typeProperties": {
"connectionString": "mongodb://[username:password@]host[:port][/[database][?options]]",
"database": "myDatabase"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propiedades del conjunto de datos
Para una lista completa de secciones y propiedades que puedes usar para definir conjuntos de datos, consulta Conjuntos de datos y servicios vinculados. La siguiente tabla enumera las propiedades soportadas para un conjunto de datos de MongoDB:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
| type | Establece la propiedad de tipo del conjunto de datos en: MongoDbV2Collection | Sí |
| collectionName | Nombre de la colección en la base de datos de MongoDB. | Sí |
Ejemplo:
{
"name": "MongoDbDataset",
"properties": {
"type": "MongoDbV2Collection",
"typeProperties": {
"collectionName": "<Collection name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<MongoDB linked service name>",
"type": "LinkedServiceReference"
}
}
}
Las propiedades de la actividad de copia
Si desea ver una lista completa de las secciones y propiedades disponibles para definir actividades, consulte el artículo sobre canalizaciones. En esta sección se proporciona una lista de las propiedades que admite el origen y receptor de MongoDB.
MongoDB como origen
La sección fuente de la actividad de copia soporta las siguientes propiedades:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
| type | Establece la propiedad de tipo de la fuente de actividad de copia en: MongoDbV2Source | Sí |
| filter | Especifica el filtro de selección mediante operadores de consulta. Para que se devuelvan todos los documentos de una colección, omita este parámetro o pase un documento vacío ({}). | No |
| cursorMethods.project | Especifica los campos a devolver en los documentos para la proyección. Para devolver todos los campos en los documentos coincidentes, omita este parámetro. | No |
| cursorMethods.sort | Especifica el orden en que la consulta devuelve los documentos coincidentes. Consulte cursor.sort(). | No |
| cursorMethods.limit | Especifica el número máximo de documentos que devuelve el servidor. Consulte cursor.limit(). | No |
| cursorMethods.skip | Especifica el número de documentos que se omitirán y desde donde empieza MongoDB a devolver resultados. Consulte cursor.skip(). | No |
| batchSize | Especifica el número de documentos a devolver en cada lote de la respuesta de la instancia de MongoDB. En la mayoría de los casos, modificar el tamaño del lote no afecta al usuario ni a la aplicación. Azure Cosmos DB limita que cada lote no puede superar los 40 MB, que es la suma del tamaño del número de documentos por lote, así que disminuye este valor si el tamaño de tu documento es grande. | No (el valor predeterminado es 100) |
Sugerencia
El servicio admite el consumo de documentos BSON en modo strict. Asegúrate de que tu consulta de filtro esté en modo Estricto en lugar de modo Shell. Para más información, consulte el manual de MongoDB.
Ejemplo:
"activities":[
{
"name": "CopyFromMongoDB",
"type": "Copy",
"inputs": [
{
"referenceName": "<MongoDB input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MongoDbV2Source",
"filter": "{datetimeData: {$gte: ISODate(\"2018-12-11T00:00:00.000Z\"),$lt: ISODate(\"2018-12-12T00:00:00.000Z\")}, _id: ObjectId(\"5acd7c3d0000000000000000\") }",
"cursorMethods": {
"project": "{ _id : 1, name : 1, age: 1, datetimeData: 1 }",
"sort": "{ age : 1 }",
"skip": 3,
"limit": 3
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
MongoDB como receptor
La sección sink de la actividad de copia admite las siguientes propiedades:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
| type | Establece la propiedad de tipo del sumidero de actividad de copia en MongoDbV2Sink. | Sí |
| writeBehavior | Describe cómo escribir datos en MongoDB. Valores permitidos: insert y upsert. El comportamiento de upsert consiste en reemplazar el documento si ya existe un documento con el mismo _id; en caso contrario, inserta el documento.Nota: El servicio genera automáticamente un _id para un documento si no se especifica un _id en el documento original o mediante la asignación de columnas. Esto significa que debe asegurarse de que, para que upsert funcione según lo esperado, el documento tenga un identificador. |
No (el valor predeterminado es insert) |
| writeBatchSize | La propiedad writeBatchSize controla el número de documentos a escribir en cada lote. Para mejorar el rendimiento, prueba a aumentar el valor. Si el tamaño de tu documento es grande, intenta disminuir el valor. | No (el valor predeterminado es 10 000) |
| writeBatchTimeout | Tiempo que se concede a la operación de inserción por lotes para que finalice antes de que se agote el tiempo de espera. El valor permitido es TimeSpan. | No (El valor predeterminado es 00:30:00 [30 minutos]). |
Sugerencia
Para importar documentos JSON as-is, consulte la sección Importar o exportar documentos JSON . Para copiar desde datos en formato tabular, consulta Mapeo de esquemas.
Ejemplo
"activities":[
{
"name": "CopyToMongoDB",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Document DB output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "MongoDbV2Sink",
"writeBehavior": "upsert"
}
}
}
]
Importación y exportación de documentos JSON
Utiliza este conector MongoDB de forma sencilla:
- Copiar documentos entre dos colecciones de MongoDB tal cual.
- Importe documentos JSON desde varios orígenes a MongoDB, incluidos desde Azure Cosmos DB, Azure Blob Storage, Azure Data Lake Store y otros almacenes basados en archivos compatibles.
- Exportar documentos JSON de una colección de MongoDB a varios almacenes basados en archivos.
Para lograr esa copia independiente del esquema, omita la sección “structure” (estructura, también denominada schema) en el conjunto de datos y la asignación de esquemas en la actividad de copia.
Asignación de tipos para MongoDB
Cuando copias datos de MongoDB, el servicio utiliza los siguientes mapeos de los tipos de datos de MongoDB a los tipos de datos intermedios. Para más información sobre cómo la actividad de copia mapea el esquema fuente y el tipo de datos al sumidero, consulta Mapeos de esquema y tipos de datos.
| Tipo de datos de MongoDB | Tipo de datos de servicio provisional |
|---|---|
| Fecha | Int64 |
| ObjectId (identificador de objeto) | String |
| Decimal128 | String |
| Marca de tiempo | Los 32 bits más significativos :> Int64 Los 32 bits menos significativos:> Int64 |
| String | String |
| Double | String |
| Int32 | Int64 |
| Int64 | Int64 |
| Boolean | Boolean |
| Null | Null |
| JavaScript | String |
| Expresión regular | String |
| Tecla mínima | Int64 |
| Tecla máxima | Int64 |
| Binary | String |
Ciclo de vida y actualización del conector de MongoDB
En la tabla siguiente se muestran la fase de lanzamiento y los registros de cambios para diferentes versiones del conector de MongoDB:
| Versión | Fase de lanzamiento | Registro de cambios |
|---|---|---|
| MongoDB (heredado) | Quitado | No aplicable. |
| MongoDB | Versión de disponibilidad general disponible | • Admita solo las consultas equivalentes de MongoDB. • Double se lee como tipo de datos String. |
Actualización del servicio vinculado de MongoDB
Cree un nuevo servicio vinculado de MongoDB y configúrelo haciendo referencia a las Propiedades del servicio vinculado.
Contenido relacionado
Para obtener una lista de los almacenes de datos que admite la actividad de copia como orígenes y receptores, consulte Almacenes de datos compatibles.