• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Lettura file .json in php

p-diaz

Nuovo utente
Autore del topic
1 Agosto 2017
5
4
Miglior risposta
0
Buongiorno a tutti,

sono un programmatore alle prime armi e sto costruendo un sito web.
Da questo sito ho bisogno di estrarre dati da un unico file .json molto pesante (circa 30GB) e di inserirli nel database mySql del sito.
Ho trovato questo materiale (
Perfavore, Entra oppure Registrati per vedere i Link!
) che sembra poter funzionare, ma non ho ben capito come implementarlo nel sito.
Sapete inoltre come implementare nel sito il file composer.json e la creazione del file autoloader?

Grazie! :emoji_slight_smile:
 
Buongiorno a tutti,

sono un programmatore alle prime armi e sto costruendo un sito web.
Da questo sito ho bisogno di estrarre dati da un unico file .json molto pesante (circa 30GB) e di inserirli nel database mySql del sito.
Ho trovato questo materiale (
Perfavore, Entra oppure Registrati per vedere i Link!
) che sembra poter funzionare, ma non ho ben capito come implementarlo nel sito.
Sapete inoltre come implementare nel sito il file composer.json e la creazione del file autoloader?

Grazie! :emoji_slight_smile:

Personalmente, date le dimensioni del file, la soluzione tramite script PHP la scarterei in quanto andresti incontro a problemi di timeout e dimensioni.

Piuttosto, proverei ad effettuare una conversione del file da JSON a SQL e poi esportare/importare tutto tramite riga di comando/SSH.
 
  • Like
Reactions: p-diaz
Personalmente, date le dimensioni del file, la soluzione tramite script PHP la scarterei in quanto andresti incontro a problemi di timeout e dimensioni.

Piuttosto, proverei ad effettuare una conversione del file da JSON a SQL e poi esportare/importare tutto tramite riga di comando/SSH.


Potresti darmi maggiori dettagli sugli strumenti da utilizzare per la conversione di file così grandi e l'SSH?
Grazie della risposta :emoji_slight_smile:
 
Puoi utilizzare questo sito web che converte file JSON (e altri tipi) in script MySQL
Perfavore, Entra oppure Registrati per vedere i Link!
Una volta elaborato ti basta salvare il testo in un file .sql ed eseguirlo. Se usi PhpMyAdmin è facile :emoji_thumbsup:
 
  • Like
Reactions: p-diaz
Puoi utilizzare questo sito web che converte file JSON (e altri tipi) in script MySQL
Perfavore, Entra oppure Registrati per vedere i Link!
Una volta elaborato ti basta salvare il testo in un file .sql ed eseguirlo. Se usi PhpMyAdmin è facile :emoji_thumbsup:

Ho provato a caricare il file su
Perfavore, Entra oppure Registrati per vedere i Link!
, ma date le dimensioni del file (30GB) non mi è stato possibile concludere il processo (stime di tempi di caricamento superiore a qualche giorno). Vedo inoltre che è possibile dividere il file originario in file da massimo 10Mb, ma dovrei creare decine di migliaia di file non sembra essere la soluzione ottimale.
 
Perché usi json per trasferire un database così pesante? Copia la cartella data e zippala!
 
Perché usi json per trasferire un database così pesante? Copia la cartella data e zippala!

I dati mi vengono forniti in questo formato. Dovrei estrarne il contenuto e salvarlo in un database mySql. Lo streaming dei dati in phpè fattibile, ma per ora il timeout del server di hosting mi impedisce la lettura dell'intero file.
 
I dati mi vengono forniti in questo formato. Dovrei estrarne il contenuto e salvarlo in un database mySql. Lo streaming dei dati in phpè fattibile, ma per ora il timeout del server di hosting mi impedisce la lettura dell'intero file.
Parti dal presupposto che la mole di dati che stai tentando di trasferire è eccessivamente grande (hai parlato di circa 30GB), quindi un servizio di hosting semplice non è probabilmente il modo più adatto per conservarli.
Un server dedicato sarebbe più adatto (risolveresti anche il problema dei timeout, sempre se non puoi modificare il php.ini e le impostazioni del mysql del tuo hosting).
A parte questo, php non è l'unico modo per eseguire il parsing di un file json e probabilmente non è neanche il migliore in questo caso (anche se forse il più versatile).
Altrimenti penso che l'unico modo sia comprimere il file per il trasferimento e dividerlo per il parsing ma come hai ben detto non è proprio fattibile.
Prova a dare un'occhiata alla soluzione proposta in questa discussione, potrebbe esserti d'aiuto:
Perfavore, Entra oppure Registrati per vedere i Link!
 
  • Like
Reactions: p-diaz
Parti dal presupposto che la mole di dati che stai tentando di trasferire è eccessivamente grande (hai parlato di circa 30GB), quindi un servizio di hosting semplice non è probabilmente il modo più adatto per conservarli.
Un server dedicato sarebbe più adatto (risolveresti anche il problema dei timeout, sempre se non puoi modificare il php.ini e le impostazioni del mysql del tuo hosting).
A parte questo, php non è l'unico modo per eseguire il parsing di un file json e probabilmente non è neanche il migliore in questo caso (anche se forse il più versatile).
Altrimenti penso che l'unico modo sia comprimere il file per il trasferimento e dividerlo per il parsing ma come hai ben detto non è proprio fattibile.
Prova a dare un'occhiata alla soluzione proposta in questa discussione, potrebbe esserti d'aiuto:
Perfavore, Entra oppure Registrati per vedere i Link!

Procederò col server dedicato, così che il problema di timeout sarà risolvibile. :emoji_slight_smile:

Sapete inoltre quanta memoria possa occupare un file json di 30gb una volta trasferito nel database mySql? Secondo voi possono anche esserci problemi di limiti di memoria imposti dal database stesso? Ad esempio: è possibile che un database da 10Gb di capienza non sia sufficiente a contenere i dati di un file json di 30Gb? Se un database mySql da 10Gb non fosse sufficiente, qual è la soluzione migliore da adottare?