Если в запросе с arrayJoin один из массивов пустой, то в результате получем пустой вывод. Можно как-то воспроизввести логику left join или full? select session_id, date...
так может запрос делать сразу к нужному шарду и не в дистрибутед таблицу, а обычную?
то есть между ними не будет конкуреции по данным? даже при engine=kafka?