ниже буквальный код. После создания вьюха не пишет новые данные, хотя похожая вьюха с другим запросом но по сути аналогичным начала писаться нормально и никаких проблем нет! В чем может быть дело ? или может быть все таки что то стоит поменять при создании ?? буду рад если накинете идей куда стоит копать и в чем могут быть причины такого поведения мат вьюх!
CREATE MATERIALIZED VIEW log.users_data_based_on_income_view
ENGINE = SummingMergeTree()
PARTITION BY round(user_id / 1000000)
ORDER BY user_id
SETTINGS index_granularity = 8192 POPULATE AS
SELECT
session__uid AS user_id,
install_date,
uniq(event_date) AS days_in_game,
max(event_date) AS last_session_date,
max(event_time) AS last_session_time,
argMax(event_date - install_date, event_date) AS last_session_days_ago,
argMax(session__payer_type, event_time) AS payer_type,
argMax(session__pay, event_time) AS payer,
argMax(session__league, event_time) AS last_league,
argMax(session__app, event_time) AS last_app,
argMax(session__plt, event_time) AS last_plt,
multiIf(last_plt='vk' AND last_app='1', 'vk',
last_plt='ok' AND last_app='1', 'ok',
last_plt='fb' AND last_app='1', 'fb',
last_app='6', 'android',
last_app='7', 'ios',
last_app='2', 'st',
last_app='12', 'luv',
last_plt='vk' AND last_app IN ('9','10','11'), 'vk_instant',
last_plt='ok' AND last_app IN ('9','10','11'), 'ok_instant',
'other') AS last_platform,
argMax(session__tag, event_time) AS last_tag,
argMax(session__rfm, event_time) AS last_rfm,
count() AS sessions_total,
countIf(event_date - install_date = 0) AS sessions_0,
countIf(event_date - install_date = 1) AS sessions_1,
countIf(event_date - install_date = 3) AS sessions_3,
countIf(event_date - install_date = 7) AS sessions_7,
countIf(event_date - install_date = 14) AS sessions_14,
countIf(event_date - install_date = 30) AS sessions_30,
countIf(event_date - install_date = 90) AS sessions_90,
countIf(event_date - install_date <= 1) AS sessions_cum_1,
countIf(event_date - install_date <= 3) AS sessions_cum_3,
countIf(event_date - install_date <= 7) AS sessions_cum_7,
countIf(event_date - install_date <= 14) AS sessions_cum_14,
countIf(event_date - install_date <= 30) AS sessions_cum_30,
countIf(event_date - install_date <= 90) AS sessions_cum_90,
uniqIf(user_id, event_date - install_date = 1) AS R1,
uniqIf(user_id, event_date - install_date = 3) AS R3,
uniqIf(user_id, event_date - install_date = 7) AS R7,
uniqIf(user_id, event_date - install_date = 14) AS R14,
uniqIf(user_id, event_date - install_date = 30) AS R30,
uniqIf(user_id, event_date - install_date = 90) AS R90,
uniqIf(user_id, event_date - install_date >= 1) AS R1_r,
uniqIf(user_id, event_date - install_date >= 3) AS R3_r,
uniqIf(user_id, event_date - install_date >= 7) AS R7_r,
uniqIf(user_id, event_date - install_date >= 14) AS R14_r,
uniqIf(user_id, event_date - install_date >= 30) AS R30_r,
uniqIf(user_id, event_date - install_date >= 90) AS R90_r
FROM log.events ALL INNER JOIN (
SELECT
DISTINCT
event_date AS install_date,
install__uid AS user_id
FROM log.events
WHERE event = 'install'
) AS r USING user_id
WHERE event = 'session'
GROUP BY
user_id, install_date
ALL INNER JOIN возвращает пустоту справа ?
извините, не совсем понял вопрос, вы имеете ввиду могут ли во внутреннем подзапросе быть такие user_id которых нет во внешнем ? если так то да, могут
а вообще в этом запросе в мат.вью log.events -- это не таблица на диске, это данные вставленные инсертом, вставляете одну строку, в log.events будет та самая одна строка
не совсем вас понял ) я не силен в администрировании CH и кажется не все догоняю ) log.events это таблица в данном случае, не вьюха. а я пытаюсь сагрегировать из этой таблицы мат вьюху с агрегатными данными в этой таблицу log.events у нас лежит буквально все и потому все долго грузится если напрямую оттуда брать данные или еще что-то дополнительно мерджить и потому создаю мат вьюху. В log.events 50 столбцов и на них завязано огромное число ивентов через алиасы
сначала сюда https://youtu.be/1LVJ_WcLgF8?list=PLO3lfQbpDVI-hyw4MyqxEk3rDHw95SzxJ&t=7597 https://den-crane.github.io/Everything_you_should_know_about_materialized_views_commented.pdf
сделайте закреп с вашим пдф, как работает MV в кликхаусе, много вопросов отпадет
Обсуждают сегодня