Desempenho lento / fraco JSON Parsing with JQ

0

Atualmente, estou construindo um script que analisa os arquivos json e faz algumas operações ao analisá-lo.

Aqui está o começo do meu script:

for folder in 'ls -d $path' 
do 


mag='basename $folder'


for file in 'ls $folder' # pour chaque fichier présent dans le dossier spécifé
do 

    receivedCustomer='jq ".receivedCustomer" $folder/$file'  
    invoiceCustomer='jq ".invoiceCustomer" $folder/$file'   
    anotherCustomer='jq ".anotherCustomer" $folder/$file'  
    etc...'

    if [ \( "$view" == "\"healthCheck\"" \) ]
    then
        healthCheckCpt='expr $healthCheckCpt + 1'
    fi

    if [ \( "$terminal" == "\"01\"" \) ]
    then
        terminal01='expr $terminal01 + 1'
    fi

Etc ...

Em seguida, algumas operações são um pouco mais "complexas":

if [ "$sameClientFacture" -gt 0 ]
    then
        sameClient='echo $sameClientFacture $anotherCustomerTrue $rattachementClientBorne $factureSansClientRattache | awk '{printf"%.2f",$1/($2+$1+$3+$4)*100}''
#         echo sameClient : $sameClient
    fi

    if [ "$anotherCustomerTrue" -gt 0 ]
    then
        differentClient='echo $sameClientFacture $anotherCustomerTrue $rattachementClientBorne $factureSansClientRattache | awk '{printf"%.2f",$2/($2+$1+$3+$4)*100}''
#         echo differentClient : $differentClient
    fi

Por fim, apenas construo outro arquivo JSON contendo os resultados das operações com um "echo":

echo "{" "x :" value ", y :" value etc... "}" > out_file 

Eu certamente estou fazendo algo errado, já que sou muito novo em programação shell.

Eu estou analisando cerca de 30.000 arquivos em um tempo de poucos KB cada (de 50 a 150 linhas por arquivo), a última tentativa demorou 2070 segundos, comparado a uma análise Java. Acho muito lento ..

Vocês têm uma pista sobre como posso melhorar meu roteiro?

    
por Matieu 21.03.2017 / 15:53

0 respostas