Altova MapForce 2023 Enterprise Edition

Las instrucciones siguientes le ayudarán a añadir una BD NoSQL como componente de asignación y a asignarle un esquema.

 

Agregar una bases de datos NoSQL

Antes de agregar una BD a la asignación, asegúrese de que selecciona un lenguaje de transformación que admita asignaciones de BD. En el caso de las bases de datos NoSQL, MapForce solo admite Built-In como lenguaje de transformación. Las instrucciones siguientes explican cómo añadir colecciones de una base de datos MongoDB a una asignación. La BD de muestra que vamos a usar se llama doc.

 

Para añadir una colección de la BD doc a la asignación siga estos pasos:

 

1.En el primer paso seleccionamos una base de datos de origen (MongoDB en este caso). Vaya al menú Insertar y haga clic en Base de datos. También puede hacer clic en el botón de la barra de herramientas mf_ic_insert_db (Insertar BD)

2.Seleccione MongoDB en el asistente para la conexión y haga clic en Siguiente.

3.El cuadro de diálogo Seleccionar una base de datos le pide que indique los parámetros siguientes: Host, puerto, base de datos, nombre de usuario y contraseña. Introduzca los parámetros requeridos y haga clic en Conectar. Para saber más sobre cómo conectarse a un origen de datos consulte Conectarse a MongoDB y Conectarse a CouchDB.

4.Se abre el cuadro de diálogo Insertar objetos de BD y le pide que seleccione las colecciones que quiere usar en la asignación (imagen siguiente). Compruebe las cajas de texto relevantes y haga clic en Aceptar.

MF_SourcesTargets_NoSQL_Config1

5.Ahora el componente de BD NoSQL contiene una colección llamada customers (imagen siguiente).

MF_SourcesTargets_NoSQL_Config2

El paso siguiente es elegir un esquema JSON que defina la estructura de la colección.

 

Nota:al conectarse a un clúster de MongoDB puede que necesite ponerse en contacto con su departamento informático para que el cortafuegos permita el acceso de las direcciones IP de su clúster y puerto.

 

Asignar un esquema JSON

Ahora que hemos seleccionado los documentos relevantes de la colección doc debemos asignar un esquema JSON al componente NoSQL. Tenga en cuenta que asignar esquemas es un requisito previo en MapForce para poder ejecutar una asignación. Para asignar un esquema JSON al componente NoSQL siga las instrucciones siguientes.

 

1.Haga clic en el botón btn_SchemaButton (Asignar esquema JSON) que se encuentra a la derecha del nombre de la colección (customers). Se abre el cuadro de diálogo Asignar un esquema JSON a la colección (imagen siguiente).

mf_sourcestargets_nosql_config3_zoom70

2.Para asignar el esquema JSON tiene tres opciones: (I) elegir un esquema asignado en la BD, (ii) navegar hasta el esquema JSON en su equipo local o (iii) dejar que MapForce genere un archivo de esquema nuevo.

 

i.Si elige la primera opción también podrá exportar el esquema JSON de la BD (haga clic en Guardar como).

ii.Si ya tiene un esquema JSON para el archivo de origen, haga clic en Examinar y búsquelo. Si elige cargar el archivo de esquema se habilita el botón Edición. Si hace clic en él, el esquema se abre en Altova XMLSpy si lo tiene instalado en su equipo.

iii.Si no tiene ningún esquema, MapForce puede generar uno. Para ello debe hacer clic en Generar esquema JSON.

 

También debe indicar si quiere que el procesamiento de los documentos se detenga o continúe si hay documentos que no coinciden con el esquema (consulte la última sección del cuadro de diálogo anterior). Estas dos opciones se aplican al ejecutar la aplicación.

 

3.Si hace clic en Generar esquema JSON se abre el cuadro de diálogo correspondiente. No rellene los campos FILTRAR y ORDENAR si no quiere indicar ningún criterio de filtrado o de ordenación. Después haga clic en Aceptar. Recuerde que también puede indicar el número de documentos que se deben analizar. La opción OMITIR indica al analizador que debe omitir los primeros N documentos de la colección. La opción LIMIT indica al analizador que debe analizar solamente los primeros N documentos de la colección. El esquema del componente de BD se basa en la estructura de los documentos indicados según la combinación de estos criterios. Para más información siga leyendo.

 

4.Si hace clic en Aceptar deberá asignar un nombre al archivo de esquema e indicar en qué carpeta desea guardarlo. Una vez haya terminado, vuelva a hacer clic en Aceptar.

 

Ahora el componente de BD tiene una estructura jerárquica y está listo para la asignación.

 

FILTRAR y ORDENAR

Si no selecciona ninguna opción en las cajas de texto FILTRAR y ORDENAR (en el cuadro de diálogo Generar esquema JSON), MapForce leerá todos los documentos de la colección para generar el esquema. Sin embargo, las colecciones pueden contener miles de documentos, lo que puede conllevar un tiempo de procesamiento considerable. En este caso, la mejor estrategia sería seleccionar un subconjunto de documentos que cubran todas las variantes de estructura que quiere procesar en esa asignación. En este contexto, el término variantes de estructura especifica qué propiedades hay en los documentos y qué tipos tienen esas propiedades.

 

Es poco probable que haya documentos con estructuras completamente distintas distintas en una misma colección, pero puede que haya algunos campos que solo existan en ciertos documentos. Se pueden dar estos casos:

 

Si el filtro solo selecciona documentos que no contengan un campo que otros documentos sí contienen, el esquema no contendrá ese campo. Si más tarde se encuentra ese campo en un documento en tiempo de ejecución aparecerá un error de validación o no habrá ningún nodo al que asignárselo en el componente de destino.

Si todos los documentos de muestra contienen una propiedad específica, esta estará marcada como necesaria en el esquema y si falta en algún documento (por ejemplo porque se añade más tarde a la colección), este no se podrá validar con el esquema.

 

En la práctica un esquema que se genera de una muestra limitada de documentos está incompleto y necesita ser modificado manualmente, por ejemplo para añadir propiedades o cambiar alguna propiedad a opcional, o para añadir más tipos de datos a algunas propiedades.

 

Ejemplo de código FILTER

En el punto Agregar una bases de datos NoSQL creamos un componente de BD NoSQL que contiene un documento llamado customers. Ahora queremos que MapForce tenga en cuenta el criterio de filtrado al generar un esquema nuevo. En la colección customers hay documentos de tos tipos (ver más abajo).

 

doc.customers1

 

"CustomerID": "ALFKI",

"CompanyName": "Alfreds Futterkiste",

"ContactName": "Maria Anders",

"ContactTitle": "Sales Representative",

"Address": "Obere Str. 57",

"City": "Berlin",

"Region": "NULL",

"PostalCode": "12209",

"Country": "Germany",

"Phone": "030-0074321",

"Fax": "030-0076545"

 

doc.customers2

 

"0": "BOTTM",

"1": "Bottom-Dollar Markets",

"2": "Elizabeth Lincoln",

"3": "Accounting Manager",

"4": "23 Tsawassen Blvd.",

"5": "Tsawassen",

"6": "BC",

"7": "T2F 8M4",

"8": "Canada",

"9": "(604) 555-4729",

"10": "(604) 555-3745"

 

Ahora queremos que el documento del esquema se base en la estructura con los campos de nombre (doc.customers1). La imagen siguiente ilustra el criterio de filtrado, que consiste en: Seleccionar solo los documentos en los que exista el campo CustomerID (ver imagen siguiente). El analizador examina todos los documentos de la colección y elige solamente los que coinciden con el criterio elegido. Para saber más sobre la sintaxis que debe usar para consultar documentos en una colección consulte la documentación de MongoDB.

MF_SourcesTargets_NoSQL_Config4

Después de filtrar los datos también puede ordenarlos, por ejemplo según el campo City. Después puede indicar cuántos documentos de la muestra ordenada se omiten (SKIP) y/o se tienen en cuenta (LIMIT) para generar el esquema.

 

Nota:  

 

Al filtrar u ordenar los datos se producen errores de validación porque un subgrupo de esos documentos, como el de doc.customers2, no coinciden con el esquema. Para evitar esos errores seleccione Omitir documentos inválidos y continuar en el cuadro de diálogo Asignar un esquema JSON a la colección (imagen anterior).

 

© 2017-2023 Altova GmbH