витрины данных на КХ оптимальным?
                  
                  
                  
                  
                  
                  
                  
                  
                  Имеется 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. Пользователи строят по ней отчеты. Группируют и фильтруют по полям, которые тянутся из словарей.
                  
                  
                   
                  
                  
                   А вопрос такой: является ли такая конструкция оптимальной с точки зрения утилизации сети? И как будет исполняться запрос, 
                  
                  
                   в котором группировка идет по полю, полученному из словаря, а сумма считается по полю из таблицы? 
                  
                  
                   
                  
                  
                   Идея: сделать так, чтобы не было лишней утилизации сети. Словари можем и на всех шардах разместить (пока только на первом), 
                  
                  
                   если это нужно для оптимального исполнения запросов.
                  
                  
                
а у вас такой запрос с вью и без вью работает без ошибки разве? Не верю. В таком виде как у вас к словарям уже на шардах будет обращение и частичный расчет сумм уже на шардах
Обсуждают сегодня