Через тернии к Визам
593 subscribers
100 photos
19 videos
42 links
Про DWH, CH, BI и автоматизации рядом
Канал это место для дискуссий =D То есть не стесняемся задавать вопросы, уточнять и говорить свое фи.

Канал ведёт Юра, который любит данные, оптимизации в БД и визуализацию

Большие посты тут
https://датавиз.рф
Download Telegram
Header NY Edition
А еще, ближе к новому году, чтобы поднять немного пользователям настроение, уже несколько лет подряд внутри Яндекса включаем на дашбордах гирлянды Деда Мороза, он выглядывает из-за лого соответствующего бизнеса =)

Так как чарт централизованный, это делается по флагу, удобно, быстро, все дэши получают новогодний вайб =)

Главное, не забыть убрать елку до марта отключить после праздников.
7👍5
How To. Make any DB function call
Давно ждал эту функциональность в DataLens и теперь она доступна во всех вариантах.
Набор формул из которых вы можете вызывать любые функции, которые нативно есть в базе данных.
Из того, что прям круто-круто и теперь можно проводить второй вебинар про ClickHouse - uniqMerge, а вообще, ниже примеры с комментами.

-- CH - читаем из словаря categories атрибут category_name по полю category_id, если не найден, проставляем константу other
DB_CALL_STRING('dictGetStringOrDefault','categories','category_name',[category_id],'other')

-- Работа с JSON
-- CH, взять из json поля json_field атрибут last_order_date из объекта category
DB_CALL_STRING('JSONExtractString',[json_field],'category','last_order_date')

-- PG - взять из json атрибут возвраст и возвращаемый тип будет int
DB_CALL_INT('JSON_VALUE',[json_field],'$.age')

-- CH посчитать hash с солью
DB_CALL_STRING('hex',DB_CALL_STRING('SHA1',[salt_param] + [some_id]))

-- CH оставить только уникальные значения в списке значений
DB_CALL_ARR('arrayCompact',[arr_field])

-- CH - использование bittest для проверки, проверяет, равна ли 1 четвертая цифра в int_field, удобно, когда в одном атрибуте зашито много значений
DB_CALL_BOOL('bitTest',[int_field],4)

-- CH, средневзвешенное
DB_CALL_AGG_FLOAT('avgWeighted',[amount],[weight_field])

-- CH, корреляция
DB_CALL_AGG_FLOAT('corr',[x],[y])

-- CH, работа с агрегациями uniqState
DB_CALL_AGG_INT('uniqMerge',[uniqStateField])
🔥103👍2
How to. Spend time during freeze
Сегодня в Москве на улице фриз (-14), возможно, у тебя в компании уже тоже =D
Если так - можно немного выдохнуть до нового года и побаловаться.
Виталий Лифанов прислал в Галерею работ DataLens игры, которые победили в фестивале. Можно покопаться в коде поиграть после планирования 1ого спринта '26 =)
😁75
Про цвета
Несколько месяцев ходим с сыном в кузницу на занятия по ковке. И тут недавно владельцы (они же наши учителя) показали один из своих заказов: Подсвечники, которые делают для ближайшей церкви (тут еще не до конца покраска проведена, патина будет "золотить"). И они не такие, как это "по классике" принято сейчас в ковке: покрашены различными цветами, прям рисунок, придающий совсем другой, живой образ изделию и помещению, где они будут установлены.
Очень приятно и необычно, свежо.
Оказалось, что кузнецы уговаривали сделать вот так, а не "как обычно", заказчика долго, ведь не "бохато" и "золотом" как в других церквях. А убедил его довод, что в Москвоском кремле тоже такая покраска присутствует, а не только золотом (второе фото, Теремной дворец, покрашено по эскизам 1670 года)

Оказалось, что кованые изделия красили таким образом 300 лет назад намного чаще, чем можно встретить сейчас: ковка была дорогим ремеслом, без покраски изделие быстрее ржавело, а покрашенным меньше старилось при этом выглядели наряднее.

Ах да, о чём это я! при чем тут визуализация
- Не бойтесь экспериментировать с цветом и искать палитры где-то в прошлом, ведь многие вещи уже были придуманы давно!
- Если есть разногласия с заказчиком по палитре / использованию чартов, попробуйте использовать аргумент авторитета

Всем побольше творческих моментов в BI, чтобы не только полезно, но и с душой =)
11👍6😁3🙏1
How to. Not to make FinDash for CFO
~2014 год (После 20 и 22 года предыдущие немного смешались, сорри). CIO приходит и говорит, блин, CFO хочет дэшик про наш финансовый портфель, все данные уже есть, ваще задача небольшая, давайте сделаем ему iPad красивый со всеми метриками по тому, где какие кредитные линии открыты, средние ставки, ну в общем прям чтобы было удобно! (Политика, все дела)
Я отвечаю - ну если с данными все ок, да, погрузимся в метрики, разберемся с сетевыми доступами, пусть будет 1 месяц. 🥲

- Пошли в блок фин контроля. оказалось, с данными вообще все плохо в ERP, никто не вдет нормально, с платежами не закрывают вовремя. То есть, получить фин состояние T-1 нереально, а W-1 можно.... в Excel..
- Сделали первую версию-прототип, на данных Excel, пошли пару недель к CFO
- Он не дурак, состоялся диалог:
- А Завтра данные обновлятся, когда транш пройдет?
- Не, тут с данными плохо
- А как так? а как же ERP?
- Ну финики не вносят, бухгалтера выравнивают раз в месяц =/
- То есть не в IT дело?
- Не
- Идите, исправляйте процессы вместе


- Спустя пару месяцев - данные полились, поняли, что частично криво в экселе считали, пересобрали датасет
- Сделали классный дэшик, даже оффлайн еще работал, вообще супер!
- на встрече с CFO:
- Молодцы, жаль, что через квартал, но прям хорошо полезно, правда есть одно но...
- Что такое?
- А можно вместо графиков вот тут и тут и вообще везде -- таблички

Через месяц компания отказалась от одной из самых бессмысленных и дорогих кредитных линий, в тч благодаря правильно посчитанным в итоге метрикам, А iPad со средними ставками CFO носил на встречу с банками, чтобы "давить" цифровизацией =)

Выводы:
- Everybody Lies
- Узнавайте цель и проблематику на берегу, что на самом деле нужно ЛПР
- 90% времени это данные, процессы, люди, 10 - рисование
💯16🔥93
Friday cry.
Цвета. Интересно, почему они решили инверсию цветов суши и моря сделать?🤯

+ Upd. хехе, сверху масштаб, а снизу приписка, что масштаб не соблюдён =)
😁5🤯5
Наконец! =)
Если честно, пока не выкатили API во внешний (по отношению к Yandex) мир, не мог с чистым сердцем сказать, что DataLens подойдет всем, раз уж Яндекс только на нем сидит 4 года. Вот теперь прямо могу сказать: в DataLens можно поднимать аналитику для любой компании с любым уровнем зрелости Data.

А Маша из Маркета в прошлом году тизерно уже рассказывала, сколько у нас внутри всяких автоматизаций вокруг API уже есть.
12🔥10
How to. Manipulate
Не видел такого еще =) Классика из серии "Не читайте советских газет"

Спасибо Паше, коллеге из Маркета!
😁14🍾1
ClickHouse What's New
Относительно регулярная рубрика - что нового в версиях ClickHouse для Использования в BI-read продуктах =)

25.12
- В проекциях можно задавать размер гранул! Это полезно, если проекции имеют большой размер строки(частый кейс с Agg полями)
(WITH SETTINGS index_granularity = 64)
- Минимизация чтения записей диска по скип индексу, если нужно ORDER BY LIMIN N по полю, по которому есть скип индекс - -60% времени
- Улучшение ленивого чтения с диска "когда нужно"
- Скип индексы поддерживают микс AND / OR логику
- НЕ ВЫДЕЛЯЕТСЯ память на колонки, которые есть только в WHERE/PREWHERE, но нет в колонках к использованию
- Из пункта вышел следует -> Улучшение скорости JOIN, так как ненужные блоки не читаются в JOIN табличку
- Новый способ изменения порядка JOIN - dpsize - такой же, как в Postges, перебирает все возможные комбинации и выбирает наилучший способ соединения.
-
26.1
- DISTINCT на LowCardinality работают х2 быстрее!

Блин, я же так и не провел вторую часть вебинара по оптимизации ClickHouse внутри BI, надо запланировать
9
This media is not supported in your browser
VIEW IN TELEGRAM
How to. Make Mass Entering

В Tableau было из коробки: можно было встать в любой селектор и там cmd+v нажать - автоматом выбрал бы все значения из буфера. У нас пока не так, но есть вариант решения.

Массовый ввод из экселя большого количества значений нужен, чтобы SELECT был корректный в виде field in (a,b,c), для ClickHouse это влияет на производительность.
Пример
👍41🔥1
Friday Joke
Самое сложное в обосновании - это маркетинговые траты и реклама. Там прям сложно доказуема причинно-следственная связь.

Очень просто с онлайном и моделью CPC ( cost per click) и в целом с цифровым следом..

А что сделать с ТВ? Там адские бюджеты и сложно осязаемый эффект.

Знаю одну FMCG компанию, в которой есть правило: никогда не выключать в сезон рекламу. Несмотря на высочайшую узнаваемость бренда, постоянная подпитка нейронок потребителя требует постоянной рекламы. Но посчитать математикой косты на товар практически нереально, только размазать валово. 🤷‍♂
👍21