BULK IMPORT


https://doc.nuxeo.com/nxdoc/nuxeo-bulk-document-importer/


Requiere la instalación del paquete de Nuxeo "nuxeo-plataform-importer".

Su funcionalidad es importar gran cantidad de información, ya sea metadatos y/o ficheros, a una instancia.

Este sistema usa dos funcionalidades diferentes:

FileWithMetadataSourceNode


La idea es asociar un fichero "metadata.properties" en cada carpeta. En ese fichero se encontrarán los metadatos que se vayan a usar en ese directorio.

├── CARPETA-A
   ├── file1.pdf
   ├── file2.pdf
   ├── metadata.properties
   ├── CARPETA-A1
   │   ├── file1.pdf
   │   ├── file2.pdf
   │   └── metadata.properties
   ├── CARPETA-A2
   │   ├── file1.pdf
   │   ├── file2.pdf
   │   └── metadata.properties
   └── CARPETA-A3
   ├── file1.pdf
   ├── file2.pdf
   └── metadata.properties

El formato de los ficheros "metadata.properties" será el siguiente:


dc\:description=some desscription
dc\:source=some source
dc\:subjects=subject4|subject5
ecm\:primaryType=DesignArt
dc\:description=Created by the bulk-importer
da\:batch_import_id=123456
da\:author=John Doe
Podemos observar que se usará "ecm\:primaryType" para asignar el tipo de tipo documental al que se hace referencia.

FileWithIndividualMetadasSourceNode

En este caso la tipología es la siguiente. Se añadirá un fichero "metadata.properties" por cada fichero que se añada al sistema.

├── DIRECTORIO-A
│   ├── DIRECTORIO-A1
│   │   ├── hello11.pdf
│   │   └── hello11.properties
│   ├── hello1.pdf
│   └── hello1.properties
├── hello.pdf
└── hello.properties

Para usar esta tipología se necesita redefinir ciertos ficheros de importación. Abría que crear "importer-config.xml" en "nxserver/config", o añadir en Nuxeo Studio un fichero XML.

  • Usando "importer-config.xml":


     <?xml version="1.0"?>
     <component name="customImporter">
     <require>org.nuxeo.ecm.platform.importer.service.jaxrs.contrib</require>
 
     <extension target="org.nuxeo.ecm.platform.importer.service.DefaultImporterComponent" point="importerConfiguration">
         <importerConfig sourceNodeClass ="org.nuxeo.ecm.platform.importer.source.FileWithIndividualMetadasSourceNode" >
             <documentModelFactory leafType="File" folderishType="Folder" documentModelFactoryClass="org.nuxeo.ecm.platform.importer.factories.DefaultDocumentModelFactory" />
         </importerConfig>
     </extension>
     </component>
  • A través de Studio:
  1. Advanced Settings> XML Extensions
  2. Nueva extension (Por ejemplo, "ConfigureBulkImporter")
  3. Añadir el código anterior excepto las etiquetas "<?xml version="1.0"> , <component ...> and </component>" que las añade Studio por defecto.


FUNCIONAMIENTO

Su funcionamiento se realizará a través de un REST Cliente. En los enlaces siguientes se activará el log y se añadirá la carpeta "/path/to/import" en el directorio "default-domain/workspaces/some-workspace" de la instancia de Nuxeo,



Se debe tener en cuenta la cantidad de memoria que se pretende transferir, que se controlará mediante el archivo "nuxeo.cont" con la variable JAVA_OPTS (por ejemplo, -Xmx4g pondrá un máximo de 4Gbytes).

REST API


Fuente URLDescripciónSalida
GET nuxeo/site/randomImporter/runGenerador de texto aleatorio para pruebastext/plain; charset=UTF-8
GET nuxeo/site/fileImporter/runImporta archivos por defectotext/plain; charset=UTF-8
GET nuxeo/site/fileImporter/logLog de contenidotext/plain; charset=UTF-8
GET nuxeo/site/fileImporter/logActivateActiva logtext/plain; charset=UTF-8
GET nuxeo/site/fileImporter/logDesactivateDesactiva logtext/plain; charset=UTF-8
GET nuxeo/site/fileImporter/statusEstado de importación (threads)

text/plain; charset=UTF-8

"Running" or "Not Running"

GET nuxeo/site/fileImporter/killParar la importacióntext/plain; charset=UTF-8
GET nuxeo/site/fileImporterInterfaz de usuario para para establecer parámetros(html)

fileImporter/run


ParámettrosValores por defectoDescripción
leafTypenullTipo leaf usado por documentModelFactory para importar
folderishTypenullTipo fichero usado por documentModelFactory para importar
inputPathN/ACamino raíz para importar (local a servidor)
targetPathN/ACamino destino en Nuxeo
skipRootContainerCreationfalseSi es verdadero el directorio no será creado
batchSize5Número de documentos que se creará antes de hacer un commit
nbThreads5Número máximo de thrads que pueden ser permitidas
interactivefalse
transactionTimeout600Timeout de transición (segundos)

N/A no es un valor por defecto, es un parámetro requerido.


randomImporter/run


ParámetrosValores por defectoDescripción
targetPathN/ACamino destino en Nuxeo
skipRootContainerCreation

batchSize
Número de documentos que se creará antes de hacer un commit
nbThreads
Número máximo de threads que se puede asignar
interactive

nbNodesN/ANúmero de nodos a crear
fileSizeKB

onlyTexttrue
blockSyncPostCommitProcessing

blockAsyncProcessing

bulkModetrue