JSON такого объема в принципе идея плохая. Встроенная функция json_decode умрёт, придётся писать какой-то парсер.
Потому что эти 15 гигабайт должны будут целиком загрузиться в оперативную память, потом перестраиваться в объект. Итоговое потребление оперативной памяти пророчествую, не меньше 30 гигабайт и то считаю себя наивным.
Ключевая проблема - файл нельзя читать порциями по заранее известному разделителю, получая валидные фрагменты JSON.
Возможно добрые люди уже сделали из этого файла пачку JSON - просто дописывая построчно отдельные объекты, но тут лучше показать фрагмент файла, чтобы предлагать методы оптимизации.
Посмотрите такой вариант для командной строки, запускайте на сервере который не жалко, возможно придётся потом его ронять в перезагрузку -
https://stedolan.github.io/jq/
Более цивильный вариант - CSV, читать построчно, копить пакет запросов в БД, пачкой в несколько десятков запросов лить в базу.
UPD: гениальный вариант - а если залить это счастье напрямую в MongoDB, а потом по отдельным записям кромсать - получится?