184 похожих чатов

Всем доброго дня! Подскажите, пожалуйста, является ли такой путь реализации

витрины данных на КХ оптимальным?


Имеется 3 шарда, на них созданы локальные таблицы:

CREATE TABLE datamart.trafficEdiEds (
billingRecID UUID,
...
shard UInt64
) ENGINE = MergeTree
PARTITION BY toDate(documentReceptionDate)
ORDER BY (documentReceptionDate, senderAccountID)


Есть DISTRIBUTED таблица, которая смотрит на них:

CREATE TABLE datamart.trafficEdiEds_distributed (
billingRecID UUID,
...
shard UInt64
) ENGINE = Distributed(click_3s, datamart, trafficEdiEds, shard - 1)

Над DISTRIBUTED таблицей имеется VIEW только на первом шарде:

CREATE VIEW datamart.trafficEdiEdsView AS
SELECT billingRecID,
dictGetUInt64('gln',
'glnevoid',
senderGlnID) AS senderGlnEvoID,
dictGetString('gln',
'glnname',
senderGlnID) AS senderGlnName,
...
shard
FROM datamart.trafficEdiEds_distributed

В общем, в финальной вьюшке используются 3 разных словаря, из которых тянется по 5-10 полей через dictGet*.
На эту вьюшку смотрит Tableau. Пользователи строят по ней отчеты. Группируют и фильтруют по полям, которые тянутся из словарей.

А вопрос такой: является ли такая конструкция оптимальной с точки зрения утилизации сети? И как будет исполняться запрос,
в котором группировка идет по полю, полученному из словаря, а сумма считается по полю из таблицы?

Идея: сделать так, чтобы не было лишней утилизации сети. Словари можем и на всех шардах разместить (пока только на первом),
если это нужно для оптимального исполнения запросов.

1 ответов

16 просмотров

а у вас такой запрос с вью и без вью работает без ошибки разве? Не верю. В таком виде как у вас к словарям уже на шардах будет обращение и частичный расчет сумм уже на шардах

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта