движком MergeTree обращаясь к распределенной таблице - почему мат вью может не обновляться? мне кажется я где то видел, что мат вью должны работать без проблем с распределенными таблицами как и с обычными, но у меня почему то данные не обновляются
вот DDL создания мат вью) буду признателен за помощь)
CREATE MATERIALIZED VIEW log.adv_spendings_view
ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_date)
ORDER BY event_time
SETTINGS index_granularity = 8192 POPULATE AS
SELECT
event_time,
event_date,
kiss__adv_spendings_justcontrolit__adv_plt AS adv_plt,
kiss__adv_spendings_justcontrolit__adset_name AS adset_name,
kiss__adv_spendings_justcontrolit__campaign AS campaign,
kiss__adv_spendings_justcontrolit__campaign_start AS campaign_start,
kiss__adv_spendings_justcontrolit__campaign_finish AS campaign_finish,
kiss__adv_spendings_justcontrolit__cost AS cost,
kiss__adv_spendings_justcontrolit__impressions AS impressions,
kiss__adv_spendings_justcontrolit__clicks AS clicks,
kiss__adv_spendings_justcontrolit__downloads AS downloads
FROM log.kiss
WHERE event = 'kiss__adv_spendings_justcontrolit'
AND event_date >= '2020-01-01'
в момент создания MV данные из log.kiss подтянулись в lo.adv.spending_view ? POPULATE отработал?
Обновление данных срабатывает только на insert, либо при создании с указанием populate
Populate да отработал без проблем - данных там прям немного
ок. вы вставляете в distributed таблицу?
у нас есть другая таблица log.events - вобще данные вставляются в нее, а log.kiss - дистрибьютед таблица и пока что запись не переключили в нее как я понял
более того log.kiss НИЧЕГО не знает про вставки в log.events, он вообще даже не знает есть ли такая таблица на самом деле и какая там у нее под капотом логика потому что при SELET из log.kiss просто происходит иницализация нескольких паралельных дочерних SELECT запросов читающих из log.events
а можете плз подсказать бест практис при создании мат вью если у нас распределенная таблица ? в таком случае надо отдельно на каждом сервере создавать мат вью ? а можем мы потом как то объединить эти данные в третью мат вью ?
сделайте MV на log.events на всех серверах сделайте обычную Distributed таблицу поверх этого MV и читайте из нее вставляйте в log.events нет best practice есть либо понимание того как движки таблиц работают либо отсутствие такового =)
Обсуждают сегодня