Какой формат данных выбрать для хранения сущностей (sql\nosql(json))?
Для миллиона записей совершенно неважно, какое именно решение вы используете.
Если начать с чистого реляционного SQL, то данные, где реляционность не нужна, потом можно сериализовать и хранить в бинарных полях реляционных таблиц.
Используя NoSQL, вы в некотором роде усложните себе работу, так как появится необходимость придумывать и накладывать на коллекции индексы, чтобы быстро делать выборки и считать агрегаты.
Однако, у NoSQL есть заметное преимущество — эти хранилища "из коробки" могут довольно неплохо объединяться в отказоустойчивые кластеры. Правда, отсутствие транзакций и eventually consistence не позволят вам гарантированно читать только что записанные в кластер данные.
Соответственно, комбинированное решение объединит достоинства и недостатки обоих миров.
Я бы выбирал что-то одно.