будет джойн таблицы на саму себя, то это джойн будет между батчем и батчем или все таки в основную таблицу полезет?
Как я помню, левая таблица будет из вставки, правая будет генерить на каждую строчку селект ( это грубо говоря)
Нуда. Так для разных таблиц и работает. Ну т.е. нет возможности батч сам на себя заджойнить.
можно обмануть, сделать вью (create myview as select * from table) и это myview использовать в matview, но join-ы в mat.view это путь в никуда в любом случае.
Стоп. Таки джойн будет батча самого на себя, если без обмана? Мне не надо джойнить с основной, мне как раз надо разложить вставляемый ряд на разные столбцы.
да, все ссылки на таблицу видят вставляемый батч.
это проще можно сделать, без всякого джойн. покажите пример, что есть, что надо
Сейчас с телефона, вроде проще не сделать. И так мега просто. Есть временной ряд со значениями с датчиков на конвейере, надо разложить его относительно продукта идущего по конвейеру, если известно расстояние между датчиками и трекинг продукта. Потрекингу высчитываем назад значение времён и получаем значения датчиков по этому продукту. Проще сложно сделать. Спасибо! если батч джойнится сам на себя, то все получится.
ну например groupArray позволяет все строки с датчиком сложить в массив, дальше пробегаемся по массиву, считаем что надо, и array join разворачиваем назад.
В батче пару сотен тысяч строк. Каждый датчик в отдельном столбце. Предполагал несколько мв или несколько джойнов по точкам сбора (на одной точке много датчиков). Если весь батч в массивы загонять, как-то дороже выйдет, могу ошибаться, конечно.
чем джойны в mat view хуже джойнов в insert? И если они оба одинаковы ужасны, то как тогда строить ETL, денормализуя весь тот ад, который сделан в OLTP системах?
ETL строить вне в КХ. Делайте джойны в OLTP. в mat.view вы не контролируете сколько раз сделается join, т.е. вы делаете один insert, а мат.вью сработает 10 раз, из-за разбиения на блоки или на партиции, и 10 раз в памяти будет создаваться хеш-таблица
а известно как много данных должно влететь чтобы mv делила инсерт на блоки?
Обсуждают сегодня