array join на nested структуру, развернув эти массивы в строки, но с одним НО, хочу при этом не терять те ситуации, когда NESTED структура пустая… То есть некоторый left array join:
SELECT count()
FROM t
ARRAY JOIN a
WHERE dt = yesterday()
1 rows in set. Elapsed: 0.170 sec. Processed 2.05 billion rows, 20.81 GB (12.04 billion rows/s., 122.07 GB/s.)
SELECT count()
FROM t
LEFT ARRAY JOIN a
WHERE dt = yesterday()
↙ Progress: 115.28 million rows, 1.17 GB (22.54 million rows/s., 228.55 MB/s.)
Скорость падает больше чем на 2 порядка. Может я неправильно понимаю, что делает left array join и есть какая-то правильная функция для такой задачи?
а с emptyArrayToSingle тоже на два порядка? типа SELECT count() from (select a FROM t WHERE dt = yesterday()) ARRAY JOIN a SELECT count() FROM (select a FROM t WHERE dt = yesterday()) LEFT ARRAY JOIN a SELECT count() from (select emptyArrayToSingle(a) FROM t WHERE dt = yesterday()) ARRAY JOIN a
Обсуждают сегодня