@@ -144,30 +144,40 @@ async function insertIntoES (modelName, dataset) {
144144 const chunked = _ . chunk ( dataset , config . get ( 'ES.MAX_BULK_SIZE' ) )
145145 for ( const ds of chunked ) {
146146 const body = _ . flatMap ( ds , doc => [ { index : { _id : doc . id } } , doc ] )
147- await client . bulk ( {
148- index : topResources [ esResourceName ] . index ,
149- type : topResources [ esResourceName ] . type ,
150- body,
151- pipeline : topResources [ esResourceName ] . ingest ? topResources [ esResourceName ] . ingest . pipeline . id : undefined ,
152- refresh : 'wait_for'
153- } )
147+ try {
148+ await client . bulk ( {
149+ index : topResources [ esResourceName ] . index ,
150+ type : topResources [ esResourceName ] . type ,
151+ body,
152+ pipeline : topResources [ esResourceName ] . ingest ? topResources [ esResourceName ] . ingest . pipeline . id : undefined ,
153+ refresh : 'wait_for'
154+ } )
155+ } catch ( e ) {
156+ logger . error ( 'ES, create mapping error.' )
157+ logger . error ( JSON . stringify ( e ) )
158+ }
154159 }
155160 } else if ( _ . includes ( _ . keys ( userResources ) , esResourceName ) ) {
156161 const userResource = userResources [ esResourceName ]
157162
158163 if ( userResource . nested === true && userResource . mappingCreated !== true ) {
159- await client . indices . putMapping ( {
160- index : topResources . user . index ,
161- type : topResources . user . type ,
162- include_type_name : true ,
163- body : {
164- properties : {
165- [ userResource . propertyName ] : {
166- type : 'nested'
164+ try {
165+ await client . indices . putMapping ( {
166+ index : topResources . user . index ,
167+ type : topResources . user . type ,
168+ include_type_name : true ,
169+ body : {
170+ properties : {
171+ [ userResource . propertyName ] : {
172+ type : 'nested'
173+ }
167174 }
168175 }
169- }
170- } )
176+ } )
177+ } catch ( e ) {
178+ logger . error ( 'ES, nexted mapping error.' )
179+ logger . error ( JSON . stringify ( e ) )
180+ }
171181 userResource . mappingCreated = true
172182 }
173183
@@ -391,14 +401,12 @@ async function main () {
391401
392402 for ( let i = 0 ; i < keys . length ; i ++ ) {
393403 const key = keys [ i ]
404+ const queryPage = { perPage : parseInt ( config . get ( 'ES.MAX_BATCH_SIZE' ) , 10 ) , page : 1 }
394405 try {
395- const allData = await dbHelper . find ( models [ key ] , { } )
396- let j = 0
397- const dataset = _ . chunk ( allData , config . get ( 'ES.MAX_BATCH_SIZE' ) )
398- for ( const data of dataset ) {
406+ while ( true ) {
407+ const data = await dbHelper . find ( models [ key ] , { ...queryPage } )
399408 for ( let i = 0 ; i < data . length ; i ++ ) {
400- j ++
401- logger . info ( `Inserting data ${ j } of ${ allData . length } ` )
409+ logger . info ( `Inserting data ${ ( i + 1 ) + ( queryPage . perPage * ( queryPage . page - 1 ) ) } ` )
402410 logger . info ( JSON . stringify ( data [ i ] ) )
403411 if ( ! _ . isString ( data [ i ] . created ) ) {
404412 data [ i ] . created = new Date ( )
@@ -414,27 +422,33 @@ async function main () {
414422 }
415423 }
416424 await insertIntoES ( key , data )
425+ if ( data . length < queryPage . perPage ) {
426+ logger . info ( 'import data for ' + key + ' done' )
427+ break
428+ } else {
429+ queryPage . page = queryPage . page + 1
430+ }
417431 }
418- logger . info ( 'import data for ' + key + ' done' )
419432 } catch ( e ) {
420- logger . error ( e )
433+ logger . error ( JSON . stringify ( _ . get ( e , 'meta.body' , '' ) , null , 4 ) )
434+ logger . error ( _ . get ( e , 'meta.meta.request.params.method' , '' ) )
435+ logger . error ( _ . get ( e , 'meta.meta.request.params.path' , '' ) )
421436 logger . warn ( 'import data for ' + key + ' failed' )
422437 continue
423438 }
424-
425439 try {
426440 await createAndExecuteEnrichPolicy ( key )
427441 logger . info ( 'create and execute enrich policy for ' + key + ' done' )
428442 } catch ( e ) {
429- logger . error ( e )
443+ logger . error ( JSON . stringify ( _ . get ( e , 'meta.body' , '' ) , null , 4 ) )
430444 logger . warn ( 'create and execute enrich policy for ' + key + ' failed' )
431445 }
432446
433447 try {
434448 await createEnrichProcessor ( key )
435449 logger . info ( 'create enrich processor (pipeline) for ' + key + ' done' )
436450 } catch ( e ) {
437- logger . error ( e )
451+ logger . error ( JSON . stringify ( _ . get ( e , 'meta.body' , '' ) , null , 4 ) )
438452 logger . warn ( 'create enrich processor (pipeline) for ' + key + ' failed' )
439453 }
440454 }
0 commit comments