Хорошо, давайте начнем с командной строки, которую я использую:
curl --silent http://example.com/json.gz | pigz -dc | jq -r '[.name, .value] | @csv' > data.csv
CURL загрузит сжатый файл JSON размером 11,6 ГБ, pigz
распакует его и запишет весь обработанный вывод вstdout, jq
прочитает JSON и сохранит вывод как файл csv.
Проблема в том, что вывод, сохраненный как data.csv, чрезвычайно велик, и в конце концов мне все еще нужно проанализировать эти данные с помощьюPHP-скрипт и вставьте его в MYSQL в специальном формате (тогда размер данных будет очень маленьким)
Но на моем сервере осталось менее 60 ГБ свободного места, даже я не могу распаковатьполные данные и сохранить их в файл CSV.
Итак, у меня появилась идея, если я смогу сохранить выходные данные в отдельные файлы, которые имеют разные имена (скажем, имена являются текущей датой илиотметка времени), затем я могу запустить скрипт PHP, чтобы обработать каждый из них .csv-файл и сохранить данные в БД, а затем удалить файл, чтобы освободить место, не уверен, что это лучший способ, но, по крайней мере, я пытаюсь сделатьэто работает.
Итак, я изменил свою командную строку на:
curl --silent http://example.com/json.gz | pigz -dc | jq -r '[.name, .value] | @csv' > `date +"%S-%M-%d-%m-%Y"`_data.csv
Но он сохранил все это только в одном файле, я думал, что он сохранит его как несколько файлов, которые каждый изу них другое имя, так как дата будет продолжать меняться, пока записывается вывод.
Также приветствуются любые другие рабочие решения, спасибо!