Критично ли если база заполняется пустыми столбцами?
Пусть будут.
Только если не надо не берите их SELECTом.
А вообще правильно парсить строку и разбивать по столбцам. Либо все хранить в строках.
"Пустыми" в смысле NULL? Тогда в постгресе они места не занимают вообще ( в начале каждой строки таблицы есть битмап, в котором прописываются какие из полей равны NULL https://www.postgresql.org/docs/current/static/sto... ).
Если у вас там пустые строки, то, ну некрасиво, конечно, но на масштабах двух гигабайт некритично.